Compare commits

...
2576 Commits
Author SHA1 Message Date
Brad Parker dd2e73d664 Qt: add fallback path for older versions 2018-09-17 23:12:08 -04:00
Twinaphex 132faf3bf2 Merge pull request #7237 from fr500/master
update assets
2018-09-18 04:05:03 +02:00
radius 2ff8bdc14a update assets 2018-09-17 21:03:09 -05:00
twinaphex e9a25e3022 Fix relative path includes 2018-09-17 21:47:12 +02:00
twinaphex fa30f49e16 Buildfix 2018-09-17 20:00:54 +02:00
Twinaphex 9a6a797f90 Merge pull request #7232 from alfrix/master
Update spanish and add discord sublabel
2018-09-17 19:43:12 +02:00
Twinaphex 448520ead2 Merge pull request #7231 from fr500/master
[recording] hook up the options properly
2018-09-17 19:37:01 +02:00
Alfrix 4ab61c3f7d Add discord sublabel and fix cheat apply after load 2018-09-17 14:31:47 -03:00
Alfrix 63f5281b67 Update english 2018-09-17 14:31:04 -03:00
Alfrix 74350ee184 Update Spanish 2018-09-17 14:30:31 -03:00
radius 0d7a169ea0 [recording] toggle menu when the options are used 2018-09-17 09:19:06 -05:00
radius ef9258449c [recording] hook up the options properly 2018-09-17 09:08:54 -05:00
twinaphex eb9e8c97d6 (Menu) Cleanups 2018-09-17 10:09:52 +02:00
twinaphex 6d0409b6bd (Menu) More cleanups 2018-09-17 10:07:15 +02:00
twinaphex 2d8eb9322a Cleanups 2018-09-17 10:02:31 +02:00
twinaphex 3aec8abca9 Get rid of some void pointers 2018-09-17 09:57:30 +02:00
twinaphex c40700e51b Add Start Streaming / Start Recording - implementation will need
to be properly done though
2018-09-17 09:18:44 +02:00
twinaphex 3c8ee6f26a Add 'Start Streaming/Start Recording' to Quick Menu 2018-09-17 09:06:24 +02:00
Twinaphex 4f85ca5f9a Merge pull request #7225 from fr500/master
WIP: [record] start whipping some sense into this feature
2018-09-17 06:16:13 +02:00
twinaphex 0fe713eb5f Fix error: initializer element is not constant 2018-09-17 03:50:37 +02:00
Twinaphex 8c10abf8bb Update CHANGES.md 2018-09-17 03:41:45 +02:00
Twinaphex 2dcc6ae046 Merge pull request #7230 from bparker06/qt_labeledit
Qt: edit playlist entry labels by clicking on them a second time
2018-09-17 03:41:01 +02:00
twinaphex 2c959d8ff1 (Display server) Add get_output 2018-09-17 03:40:17 +02:00
Brad Parker 5fbf841fb2 Qt: edit playlist entry labels by clicking on them a second time, or with the platform's edit key (usually F2) 2018-09-16 21:34:28 -04:00
twinaphex 9c88c6e3c5 Add msg_hash OUTPUT_DISPLAY_ID 2018-09-17 03:25:34 +02:00
twinaphex 04211662cf Add 'Use Custom Refresh Rate' setting 2018-09-17 01:56:18 +02:00
twinaphex cb7d15bc2b Update 2018-09-17 01:31:51 +02:00
twinaphex b5c6586b12 Change CRT switch resolution - add options 'Off/15 Khz/31Khz' 2018-09-17 01:30:49 +02:00
twinaphex 369f8206d1 Add 'X-Axis Centering' - https://github.com/libretro/RetroArch/issues/6988 2018-09-16 21:00:34 +02:00
Twinaphex 5d4a8f4497 Merge pull request #7226 from theheroGAC/patch-35
Update msg_hash_it.h
2018-09-16 16:35:26 +02:00
theheroGAC 71e8f00b27 Update msg_hash_it.h 2018-09-16 12:39:11 +02:00
twinaphex 07fd28b351 Change CRT Super Resolution 'OFF' to 'Native' 2018-09-16 09:06:55 +02:00
twinaphex 92b6854315 CRT SwitchRes - step 3 - https://github.com/libretro/RetroArch/issues/6988 2018-09-16 08:57:27 +02:00
twinaphex ac81ef680d Update sublabels 2018-09-16 08:29:13 +02:00
twinaphex 004a2e335f (CRT SwitchRes) Step 1- https://github.com/libretro/RetroArch/issues/6988 2018-09-16 08:06:06 +02:00
twinaphex 60437f07fd Update CHANGES.md 2018-09-16 07:38:15 +02:00
Twinaphex 394136f368 Merge pull request #7224 from alfrix/master
Update spanish and fix some indentation mishaps in us
2018-09-16 06:20:13 +02:00
Alfrix f24715ac1e Update spanish and fix some indentation mishaps in us 2018-09-16 00:27:40 -03:00
radius efa62af78b [recording] use a different config for streaming 2018-09-15 22:02:57 -05:00
radius 1c85058e72 [recording] rename bsv recording from movie to input replay 2018-09-15 21:47:23 -05:00
radius 16bd85b118 [recording] refactor recording_is_enabled no need to use a pointer for all of this 2018-09-15 21:09:41 -05:00
radius 9d490ace3b [record] deinit before init 2018-09-15 17:54:00 -05:00
radius 49214de125 [record] start whipping some sense into this feature 2018-09-15 17:49:39 -05:00
twinaphex 50398c2a35 Bump version up to 1.7.5 2018-09-15 20:24:04 +02:00
Brad Parker 055eff653a android: add text to xhdpi banner per TV app quality guidelines 2018-09-15 12:39:35 -04:00
twinaphex 13223c2225 Update switch_thread_audio.c 2018-09-15 17:44:27 +02:00
twinaphex f21493947d vim - add RetroArch style conventions 2018-09-15 17:43:34 +02:00
twinaphex 2fc08ce394 (switch_nx_gx.c) Some style nits 2018-09-15 17:39:03 +02:00
twinaphex 6ff2c96d03 - Rename switch_nx_thread_audio.c to switch_thread_audio.c
- Change code to C89-comformant
- Some small formatting/style nits
- Cleanup Makefile.common object listings
2018-09-15 17:31:56 +02:00
twinaphex db43033f9a Some minor cleanups - switch_audio_compat.h 2018-09-15 17:21:21 +02:00
Twinaphex c614cb05ec Merge pull request #7223 from m4xw/audio_thr_fixes
[NSW] Fix Threaded audio driver
2018-09-15 16:58:04 +02:00
M4xw ea066625ba [NSW] Fix Threaded audio driver (fifoSize init) and use a slightly higher Prio. 2018-09-15 16:46:17 +02:00
Twinaphex 13c22c47b9 Merge pull request #7220 from reswitched/master
[NSW] SDK Compat Fixups
2018-09-15 16:33:52 +02:00
misson20000 abd86058c6 fix attribution (it's a common mistake) 2018-09-15 03:28:08 -07:00
misson20000 8ed254f0c0 small platform_switch indentation fixups 2018-09-15 03:27:29 -07:00
misson20000 7072bbb829 [NSW] SDK compat fixups 2018-09-15 03:27:29 -07:00
misson20000 fa76a3cb60 CRLF -> LF 2018-09-15 03:27:05 -07:00
twinaphex bde5905eba Cleanup 2018-09-15 08:12:18 +02:00
twinaphex 7bd705983e Convert strcmp to string_is_equal 2018-09-15 07:47:44 +02:00
twinaphex ec5d046f4c Cleanups - get rid of strcmp references 2018-09-15 07:44:21 +02:00
twinaphex eac56c4382 Try to avoid strcpy and strcmp in midi_driver.c 2018-09-15 07:32:48 +02:00
Brad Parker 19329fe7c7 prevent out of bound array access for unmapped input binds 2018-09-15 01:21:10 -04:00
twinaphex 09d27fc591 Silence some warnings 2018-09-15 07:19:51 +02:00
twinaphex 73e01b64ba Should fix non-HAVE_DISCORD path 2018-09-15 07:17:29 +02:00
twinaphex 3d611a2673 Update runahead - get rid of FREE macro 2018-09-15 06:41:37 +02:00
Twinaphex df5476f0c0 Merge pull request #7210 from fr500/master
WIP: Discord "ask to join"
2018-09-15 06:37:32 +02:00
Twinaphex 77923df4c1 Merge pull request #7218 from m4xw/libnx_updates
[LIBNX] Implement threading, adapt libnx 1.4.0 changes, add Core extension
2018-09-15 04:36:02 +02:00
M4xw 0ff014c1ac [LIBNX] Add Core extension 2018-09-15 02:29:40 +02:00
M4xw 3a6e410833 [LIBNX] Add pthreads wrapper 2018-09-15 02:28:52 +02:00
radius e567b3847c [discord] use the upstream application ID 2018-09-14 19:03:26 -05:00
M4xw 424d169cd9 [LIBNX] Fix Audio and Platform for updated libnx 2018-09-15 01:29:42 +02:00
Twinaphex 7ed367c49b Merge pull request #7214 from RobLoach/emscripten-chailove
(Emscripten) Add ChaiLove selection to web player
2018-09-14 23:33:50 +02:00
Twinaphex d41f41c5d0 Merge pull request #7216 from DEX357/patch-19
Update msg_hash_pl.h
2018-09-14 23:33:36 +02:00
DEX357 e37bd41e86 Update msg_hash_pl.h 2018-09-14 23:20:09 +02:00
Twinaphex 899e35451a Merge pull request #7215 from m4xw/libnx_fixes
[LIBNX] Add platform_switch, Fix switch_audio.
2018-09-14 20:46:33 +02:00
M4xw 64edf5f879 [LIBNX] Fixups and bare minimum to function 2018-09-14 20:38:42 +02:00
M4xw 3566171ea1 Essential .gitignore rules 2018-09-14 19:35:31 +02:00
M4xw 932b4c5ce1 [LIBNX] Fix switch_audio 2018-09-14 19:35:21 +02:00
Rob Loach 2ff87fd663 emscripten: Add ChaiLove selection to web player 2018-09-14 09:39:20 -04:00
twinaphex 7428fef4bc Cleanups 2018-09-12 21:50:11 +02:00
twinaphex 0158bbe4aa Add switch_nx_gfx.c 2018-09-12 21:44:53 +02:00
twinaphex 8f9dc13aa7 Add copyrights 2018-09-12 21:28:54 +02:00
twinaphex 19b4ef3b2c Add conv rgb565 to ABGR8888 by m4xw 2018-09-12 20:04:52 +02:00
twinaphex cc8b458ee3 Add menu_display_switch.c 2018-09-12 20:01:56 +02:00
twinaphex 517b1b9089 Add HAVE_LIBNX ifdefs to switch_input.c/switch_joypad.c, and
features_cpu.c
2018-09-12 19:54:51 +02:00
twinaphex 6139f8846a (NSW) We now have only one non-threaded audio driver for both SDKs instead of
two
2018-09-12 19:37:38 +02:00
twinaphex 213a56c59f Get rid of RESULT_OK usage 2018-09-12 18:58:12 +02:00
twinaphex 677cb30982 (NSW) Start unifying both libtransistor and libnx switch audio drivers 2018-09-12 18:29:25 +02:00
radius fed74b9e70 [discord] populate data correctly 2018-09-12 01:45:28 -05:00
radius 4d0729187f [discord] start getting ready for ask-to-join functionality, cleanup some of the mess 2018-09-12 01:45:27 -05:00
twinaphex 2a7a2e7dee (LIBNX) Start backporting libnx code; beginning with audio drivers 2018-09-12 08:14:17 +02:00
twinaphex 9cbd7ec6f3 (RGUI) Add some Switch ifdefs to RGUI 2018-09-12 08:01:19 +02:00
twinaphex bf75e6b9d7 video_context_driver_swap_interval - add in safeguard 2018-09-12 07:16:33 +02:00
Twinaphex 9017e209e8 Update CHANGES.md 2018-09-12 06:44:53 +02:00
Twinaphex d52f5cc0d4 Update CHANGES.md 2018-09-12 06:43:33 +02:00
twinaphex 650c173125 Turn public functions into static functions 2018-09-12 06:39:07 +02:00
twinaphex 3c160a6eb4 Create video_driver_get_all_flags 2018-09-12 06:31:41 +02:00
twinaphex 3f8e3547f4 (GLX) swap_control_tear should now be implemented and working 2018-09-12 04:17:41 +02:00
twinaphex 58472cb696 Silence some warnings 2018-09-12 04:09:19 +02:00
twinaphex 914df58d2e (WGL) Adaptive Vsync should work now for WGL 2018-09-12 03:59:25 +02:00
twinaphex 98b20d4e5d (GLX/WGL) Start implementing adaptive VSync (swap_control_tear) for GLX/WGL pt. 1 2018-09-12 02:42:24 +02:00
Twinaphex 9bf2fb8f79 Merge pull request #7209 from RetroSven/master
provide a means for cores to coordinate with the frontend when shutting down multiple threads gracefully
2018-09-12 00:54:04 +02:00
Sven 3c0eadbdf2 per request 2018-09-11 18:52:51 -04:00
Sven b771a3e0f5 move libretro.h defines to retroarch.h 2018-09-11 18:45:01 -04:00
twinaphex 4738ef545c Change interval type to signed int 2018-09-12 00:08:13 +02:00
Sven d8796732aa provide a means for cores to coordinate with the frontend when shutting down multiple threads gracefully 2018-09-11 13:29:20 -04:00
Twinaphex 5d8c268afc Update CHANGES.md 2018-09-11 06:39:07 +02:00
Twinaphex c876342057 Update CHANGES.md 2018-09-11 06:38:22 +02:00
Twinaphex 91b945e529 Update CHANGES.md 2018-09-11 06:37:56 +02:00
Twinaphex f96db78b3d Update CHANGES.md 2018-09-11 06:36:45 +02:00
Twinaphex 83c3bd31c6 Update CHANGES.md 2018-09-11 06:36:12 +02:00
Twinaphex 21684a80ad Update CHANGES.md 2018-09-11 06:35:43 +02:00
Twinaphex a0d87dd68d Merge pull request #7207 from altiereslima/master
Update brazilian portuguese translation
2018-09-11 06:26:13 +02:00
altiereslima 3a6290887a Update brazilian portuguese translation 2018-09-11 01:21:42 -03:00
Twinaphex ae3a53185b Merge pull request #7206 from bparker06/lobby_host_room
netplay: save lobby details received back from server after first announcement
2018-09-11 03:30:09 +02:00
Brad Parker 7a76c6a4da netplay: save lobby details received back from server after first announcement 2018-09-10 21:01:46 -04:00
Twinaphex 90580d2ae1 Merge pull request #7204 from alphanu1/master
Multiple fixes
2018-09-10 21:02:14 +02:00
alphanu1 f576266ace Update dispserv_x11.c 2018-09-10 19:36:57 +01:00
twinaphex e403b8fb1e C89 buildfixes 2018-09-10 20:35:30 +02:00
Twinaphex 7e4d0b3b41 Merge pull request #7205 from Themaister/master
Vulkan: Fix race condition in threaded mailbox emulation.
2018-09-10 20:01:20 +02:00
Themaister a1989afba9 Vulkan: Fix race condition in threaded mailbox emulation. 2018-09-10 19:35:13 +02:00
alphanu1 d32993411e Merge pull request #90 from alphanu1/alphanu1-patch-83
fixes
2018-09-10 18:25:44 +01:00
alphanu1 4328c075e8 fixes 2018-09-10 18:25:32 +01:00
alphanu1 c1e6de96a6 Merge pull request #89 from alphanu1/alphanu1-patch-82
re introduced snprintf
2018-09-10 18:13:10 +01:00
alphanu1 6c2d11b414 re introduced snprintf 2018-09-10 18:12:44 +01:00
alphanu1 d4e43b15c1 Merge pull request #88 from alphanu1/alphanu1-patch-81
xrandr spamming fix
2018-09-10 18:10:06 +01:00
alphanu1 7c05922d36 xrandr spamming fix
also re introduced snprintf
2018-09-10 18:09:42 +01:00
alphanu1 340515a9fa Update dispserv_x11.c 2018-09-10 18:08:49 +01:00
alphanu1 522d30d52d Merge pull request #86 from alphanu1/alphanu1-patch-79
xrandr spamming fix
2018-09-10 17:42:44 +01:00
alphanu1 d8c36e5bb8 xrandr spamming fix 2018-09-10 17:42:33 +01:00
alphanu1 7e7f95f2fe Merge pull request #85 from alphanu1/alphanu1-patch-78
Xrandr sapmming fix
2018-09-10 17:40:09 +01:00
alphanu1 30d7ef898d Xrandr sapmming fix 2018-09-10 17:39:52 +01:00
alphanu1 adb0542748 Merge pull request #84 from libretro/master
update
2018-09-10 17:35:58 +01:00
bparker06 d8b4d1fdff Update CHANGES.md 2018-09-10 10:15:06 -04:00
Raphael Zumer ab384b8afb Update msg_hash_ja.h (#7203)
* Fix some incorrect labels
* Word some labels more naturally
* Use RetroAchievements instead of レトロ実績
2018-09-10 10:14:14 -04:00
Twinaphex 523ee65125 Merge pull request #7201 from rzumer/master
Support headerless NES hashing in cheevos.c
2018-09-10 06:33:54 +02:00
Raphaël Zumer 3a0c450e70 Support headerless NES hashing in cheevos.c 2018-09-10 00:15:52 -04:00
Twinaphex d96117533c Merge pull request #7197 from endrift/master
camera: Fix v4l2 driver that broke years ago
2018-09-10 02:55:38 +02:00
Vicki Pfau 0576c516c4 camera: Fix v4l2 driver that broke years ago 2018-09-09 17:44:03 -07:00
Twinaphex 99debae18e Merge pull request #7193 from QuarkTheAwesome/master
WiiU: Add missing "#include <sys/iosupport.h>" to required files (buildfix)
2018-09-09 18:01:15 +02:00
alphanu1 1b4439413c Update dispserv_x11.c 2018-09-09 12:50:28 +01:00
alphanu1 557fe10bac Merge pull request #83 from alphanu1/alphanu1-patch-77
snprintf broke switching
2018-09-09 11:52:36 +01:00
alphanu1 cf4fff8d31 snprintf broke switching 2018-09-09 11:51:37 +01:00
Ash 751ad68c50 deps/libiosuhax: Fix missing "#include <sys/iosupport.h>" 2018-09-09 18:29:42 +10:00
Ash 9344391bfa WiiU: Fix missing "#include <sys/iosupport.h>" in sd_fat_devoptab 2018-09-09 18:22:48 +10:00
twinaphex bfdb75a30e Add ifdef 2018-09-09 01:28:09 +02:00
Twinaphex 4750342b33 Merge pull request #7192 from alphanu1/master
New porches and interlaced bug fix.
2018-09-08 23:57:23 +02:00
alphanu1 5632ac9f72 Merge pull request #82 from alphanu1/alphanu1-patch-76
New Porch Calc, Matched against an oscilloscope
2018-09-08 22:12:07 +01:00
alphanu1 5c6fc6db7e New Porch Calc, Matched against an oscilloscope 2018-09-08 22:11:31 +01:00
alphanu1 12e2fe9ca0 Merge pull request #81 from alphanu1/alphanu1-patch-75
Fix for crt interlaced bug
2018-09-08 22:09:52 +01:00
alphanu1 952b46f2c1 Fix for crt interlaced bug 2018-09-08 22:09:30 +01:00
alphanu1 719cb86bc0 Merge pull request #79 from libretro/master
Update
2018-09-08 21:12:29 +01:00
Twinaphex 6ea292f2f5 Merge pull request #7191 from Themaister/master
Vulkan: Maintenance fixes
2018-09-08 21:50:28 +02:00
bparker06 18e249e85e travis: install Qt for OSX 2018-09-08 12:04:05 -04:00
Themaister d338dac277 Only do mailbox emulation for fullscreen.
Too large impact on performance in Windowed mode.
2018-09-08 16:27:25 +02:00
Themaister d39f66a738 Emulate mailbox by wrapping acquire in a thread.
Needed on nVidia Windows since they don't support timeout == 0 ...
2018-09-08 15:56:49 +02:00
Themaister 157d1e7e63 Only use mailbox emulation on AMD. 2018-09-08 11:47:58 +02:00
Themaister 66c4f8fd35 Make sure to always clear out swapchain_fence_signalled. 2018-09-08 11:47:58 +02:00
Themaister 9ebac87638 Vulkan: Emulate mailbox on Windows. 2018-09-08 11:47:58 +02:00
Themaister af534f0fa8 Vulkan maintenance fixes.
- Use VkBuffer instead of linear VkImage for staging uploads.
  Not guaranteed to be supported, and desktop IHVs recommend using
  buffers.

- Fix validation error where swapchain recreation with reuse of the old
  VkSwapchainKHR does not create a fence properly, leading to validation
  error next time that swapchain index is observed.
2018-09-08 11:47:58 +02:00
Twinaphex 1155e11cfc Merge pull request #7189 from stuartcarnie/sgc-qt-embedded
chore: Call Makefile.apple to generate Qt moc files
2018-09-08 05:52:59 +02:00
Stuart Carnie 1de3aaadeb chore: Call Makefile.app to generate Qt moc files 2018-09-07 20:32:57 -07:00
twinaphex 61d56e07fa Don't excessively log 2018-09-08 03:15:32 +02:00
Twinaphex fb4f8ff550 Merge pull request #7188 from stuartcarnie/sgc-qt-embedded
feat(macOS): Embed Qt frameworks and frameworks to @executable_path
2018-09-08 02:49:42 +02:00
Stuart Carnie 4d7fe0e96c feat(macOS): Embed Qt frameworks and frameworks to @executable_path
* note that install_name_tool is used to update the frameworks via
  a post-build script
2018-09-07 17:38:46 -07:00
twinaphex df059c585f Implement RETRO_ENVIRONMENT_GET_FASTFORWARDING 2018-09-08 02:19:05 +02:00
twinaphex 7c2da36af9 Prevent warning 2018-09-08 02:11:18 +02:00
Twinaphex 27edbb58e3 Merge pull request #7187 from RetroSven/master
implement libretro private def to allow cores to tell RA to save states in background
2018-09-08 01:41:20 +02:00
Sven b4081d9347 implement libretro private def to allow cores to tell RA to save states in background 2018-09-07 19:09:56 -04:00
Twinaphex 3e27a504ed Merge pull request #7185 from stuartcarnie/sgc-macos-qt
feat(macOS): Initial Desktop UI (Qt) support
2018-09-06 05:37:55 +02:00
Stuart Carnie 428f895b6f feat(macOS): Initial Desktop UI (Qt) support
* Adds new RetroArchQT build target to RetroArch_Metal.xcodeproj

Prerequisites:

* Install Qt Frameworks

    $ brew install qt

* Build `moc` files using

    $ make -f Makefile.apple HAVE_QT=1 Q=/usr/local/opt/qt/bin/moc generate

Limitations:

* Qt frameworks are not embedded in bundle, therefore Qt must be
  installed via the `brew` command
2018-09-05 20:10:54 -07:00
Brad Parker c60fdf0b2e Qt: fix duplicate function name with griffin 2018-09-05 00:07:24 -04:00
Twinaphex 5d529f4ce4 Merge pull request #7178 from RobLoach/config
Update config entries pointer to the new beginning of the list
2018-09-04 14:30:32 +02:00
Brad Parker a48cc2f9b5 travis: unzip quietly so build log is not truncated 2018-09-03 20:00:03 -04:00
Brad Parker c64a75c58a travis: clean up OSX Metal image and add assets 2018-09-03 19:50:04 -04:00
Rob Loach 9da261c6d9 Update config entries pointer to the new beginning of the list after sorting 2018-09-03 13:31:46 -04:00
Brad Parker 9214f6079f travis: go to correct folder to deploy Metal 2018-09-03 09:37:59 -04:00
Brad Parker 511dcb0d56 travis: build Metal with libretro-super instead 2018-09-03 09:07:04 -04:00
Brad Parker b2c704862a travis: deploy OSX Metal build 2018-09-02 21:57:06 -04:00
Twinaphex c57e259fa7 Update CHANGES.md 2018-09-03 03:11:23 +02:00
Twinaphex 4409c61730 Update CHANGES.md 2018-09-03 03:10:36 +02:00
Twinaphex e224d1cd04 Update CHANGES.md 2018-09-03 03:10:08 +02:00
Twinaphex 96d27b6ac6 Update CHANGES.md 2018-09-03 03:09:37 +02:00
Twinaphex 9c53dc3797 Merge pull request #7176 from stuartcarnie/sgc-metal
Metal: Add support for screen shots
2018-09-03 03:00:36 +02:00
Stuart Carnie 99f497de85 feat(Metal): Add support for screen shots 2018-09-02 17:55:02 -07:00
Stuart Carnie 9d22aacaa7 refactor: Add vertex buffer struct to ShaderTypes and remove global 2018-09-02 17:53:18 -07:00
Twinaphex c41f331e2a Merge pull request #7175 from stuartcarnie/sgc-revert-config
Revert "fix(gfx): Move enum to end to avoid breaking existing config
2018-09-02 22:05:47 +02:00
Stuart Carnie 8a63ace201 Revert "fix(gfx): Move enum to end to avoid breaking existing configurations"
This reverts commit 93b79fa
2018-09-02 13:03:16 -07:00
Twinaphex 6463f7005b Merge pull request #7174 from stuartcarnie/sgc-metal
Fix crashes for metal; buffer overflow in xmb; Metal fullscreen issue
2018-09-02 21:55:10 +02:00
Stuart Carnie f1ad1ff444 fix(Metal): Fix invalid selector
Removed selector logic and wrapped in HAVE_METAL, given this is only
called when Metal is enabled.
2018-09-02 12:51:34 -07:00
Stuart Carnie 611e484633 fix(xmb): Fix buffer overflow 2018-09-02 12:49:44 -07:00
Twinaphex 4d12eaf685 Merge pull request #7173 from hiddenasbestos/oem102
Support for "OEM-102" key (usually '\' on Euro keyboards)
2018-09-02 19:40:31 +02:00
David Walters b592f254b9 Support for "OEM-102" key (usually '\' on Euro keyboards) 2018-09-02 18:24:51 +01:00
Twinaphex d4cb24f8d1 Merge pull request #7148 from alfrix/master
Add neoactive and retroactive to menu icons
2018-09-02 03:42:03 +02:00
Brad Parker a86454d30c Qt: fix file browser downloads button not scrolling correctly on first click 2018-09-01 21:25:07 -04:00
Stuart Carnie eadc3f4a91 fix(Metal): Fix SIGFAULT if any attribute is 0 2018-09-01 16:13:23 -07:00
Stuart Carnie 6b7572d166 fix(macOS): Fix stack overflow when raising Metal shader load event 2018-09-01 16:12:43 -07:00
Twinaphex 4f4b1c182f Merge pull request #7167 from Themaister/master
Fix glslang_format LUT.
2018-09-01 22:51:29 +02:00
Themaister 1d7dfc5f47 Fix glslang_format LUT.
Was logging wrong format names.
2018-09-01 22:46:47 +02:00
Stuart Carnie 802697fdec fix(Metal): Use textures for pixel conversion 2018-09-01 11:58:37 -07:00
Stuart Carnie 577d81071e fix(Metal): Cleanup shader logging messages 2018-09-01 11:58:37 -07:00
Stuart Carnie 1264e9c533 fix(Metal): Use ifdef syntax; add correct default for Metal build 2018-09-01 11:58:37 -07:00
Stuart Carnie 93b79fac90 fix(gfx): Move enum to end to avoid breaking existing configurations
* `aspect_ratio_index` relies on the ordinal values not changing
2018-09-01 11:58:37 -07:00
Twinaphex 4457bad631 Merge pull request #7165 from kwyxz/haiku-mbedtls-fix
mbedtls in 1.7.4 broke Haiku build
2018-09-01 13:58:09 +02:00
Benjamin FRANCOIS c723f13753 This allows building on Haiku after disabling Discord 2018-09-01 07:25:06 +00:00
Twinaphex 4e0c2314d9 Define HAVE_SSL for OSX 2018-09-01 04:22:57 +02:00
twinaphex 34e295ec51 Add net_socket_ssl.cto griffin 2018-09-01 04:20:23 +02:00
twinaphex 2fb8831dcc Uniquely name functions 2018-09-01 04:18:01 +02:00
twinaphex 31df00d52a Uniquely name functions 2018-09-01 04:14:36 +02:00
twinaphex fb047e4622 Uniquely name functions 2018-09-01 04:12:58 +02:00
twinaphex 18203f4d30 Cleanups 2018-09-01 04:11:16 +02:00
twinaphex 6d29cde453 (SSL) Name functions uniquely 2018-09-01 04:09:59 +02:00
twinaphex e83504002d (SSL) Make these functions unique 2018-09-01 04:08:27 +02:00
Twinaphex 93af9baf48 Remove warning 2018-09-01 04:04:15 +02:00
twinaphex 23eb1e981a Remove HAVE_STRIPES from OSX build 2018-09-01 04:01:03 +02:00
twinaphex d5fa379aa8 Update header 2018-09-01 03:54:47 +02:00
Twinaphex 1ad6291c79 Merge pull request #7163 from Tatsuya79/patch-5
fix task_save.c
2018-09-01 01:53:09 +02:00
Tatsuya79 dd9db41403 fix task_save.c 2018-09-01 01:50:30 +02:00
Twinaphex 09284dc6ce Merge pull request #7162 from Tatsuya79/patch-4
revert #7156
2018-09-01 01:46:41 +02:00
Tatsuya79 64459bda3a revert #7156
revert https://github.com/libretro/RetroArch/pull/7156
2018-09-01 01:41:21 +02:00
twinaphex 64cc28a487 Update 2018-09-01 01:14:26 +02:00
twinaphex c0c88173a0 (CocoaTouch) Fix some function callback signatures 2018-09-01 01:07:14 +02:00
Twinaphex 65535a1259 Cleanups 2018-09-01 01:03:58 +02:00
twinaphex 10f374182f Revert "Change these ifdefs"
This reverts commit 245f265098.
2018-08-31 21:49:16 +02:00
twinaphex 245f265098 Change these ifdefs 2018-08-31 21:48:58 +02:00
twinaphex 85f093e042 Change these to numbers 2018-08-31 21:25:33 +02:00
neville 8c3479f850 (OSX PowerPC) PowerPC Fixed 2018-08-31 21:22:37 +02:00
bparker06 ad15f76ff5 travis: add OSX Metal build 2018-08-31 13:49:44 -04:00
neville bd43682341 Use dynamic lookup code path 2018-08-31 19:37:40 +02:00
Twinaphex 832bf6d6e8 Get rid of this compile-time ifdef 2018-08-31 19:29:11 +02:00
twinaphex a58511ec00 Revert "Compatibility fixes for OSX PPC"
This reverts commit d7899c51aa.
2018-08-31 19:20:10 +02:00
twinaphex 70f9abe99f Revert "Add conditionals to maintain backwards compatibility with OSX 10.5"
This reverts commit 1222192afb.
2018-08-31 19:20:03 +02:00
twinaphex 0b069c4ee3 Revert "Use constant values instead of MAC_OS_X_VERSION_ - might not be available on earlier OSX versions/xcode"
This reverts commit f35b578c42.
2018-08-31 19:19:56 +02:00
twinaphex 1265d7546c Revert "Start using raw constants for OSX version detection"
This reverts commit ab34a70873.
2018-08-31 19:19:42 +02:00
twinaphex c7af7ae00d Revert "Add conditionals for OSX 10.6 and higher"
This reverts commit 7f7f23d08b.
2018-08-31 19:19:35 +02:00
twinaphex 91145e02c6 Revert "OSX PowerPC - gets it compiling and linking again but doesn't work -"
This reverts commit f16ec700a9.
2018-08-31 19:19:27 +02:00
Twinaphex e2a650cb26 Remove unused variable 2018-08-31 19:02:47 +02:00
Twinaphex 4a30ec5623 Update CHANGES.md 2018-08-31 18:44:24 +02:00
Twinaphex b86164cccb Merge pull request #7159 from bparker06/qt_filterarchives
Qt: add option to filter extensions inside archives when adding to a playlist
2018-08-31 17:50:59 +02:00
Brad Parker 230787808c Qt: fix playlist title when adding a folder with one item 2018-08-31 09:16:45 -04:00
Brad Parker faaf84aef3 Qt: do not show right-click menu for file browser contents 2018-08-31 09:05:22 -04:00
Twinaphex 41f7de72cd Merge pull request #7157 from RobLoach/configure
libretro-common: Restore libretro-common/audio/dsp_filters/configure
2018-08-31 05:48:47 +02:00
Brad Parker 30fb23ccbe Qt: add option to filter extensions inside archives when adding to a playlist 2018-08-30 23:06:34 -04:00
Rob Loach c7e6eda438 libretro-common: Restore libretro-common/audio/dsp_filters/configure 2018-08-30 22:23:05 -04:00
twinaphex 7c22f265b8 Update libretro-common 2018-08-31 02:28:20 +02:00
Twinaphex 02e23be127 Merge pull request #7156 from RetroSven/master
push save state into background for cores that need the emulator to be running during serialization
2018-08-30 18:15:29 +02:00
Sven 75abd1f36e Merge remote-tracking branch 'upstream/master' 2018-08-30 12:07:41 -04:00
neville f16ec700a9 OSX PowerPC - gets it compiling and linking again but doesn't work -
left a TODO/FIXME for aussiebloke
2018-08-30 17:45:22 +02:00
twinaphex 7f7f23d08b Add conditionals for OSX 10.6 and higher 2018-08-30 17:38:43 +02:00
Sven b8ab6c1e74 push save state into background for cores that need the emulator to be running to correctly save states 2018-08-30 11:21:31 -04:00
twinaphex ab34a70873 Start using raw constants for OSX version detection 2018-08-30 16:35:44 +02:00
neville f35b578c42 Use constant values instead of MAC_OS_X_VERSION_ - might not be available on earlier OSX versions/xcode 2018-08-30 16:29:58 +02:00
twinaphex 1222192afb Add conditionals to maintain backwards compatibility with OSX 10.5 2018-08-30 16:22:02 +02:00
neville d7899c51aa Compatibility fixes for OSX PPC 2018-08-30 16:18:51 +02:00
neville 5af0e58288 - Unset BOM
- remove non-latin characters - won't compile on OSX PPC otherwise
2018-08-30 16:05:51 +02:00
twinaphex dac4034954 Add PPC ifdefs; kIOHIDUniqueKey is not available on OSX 10.5 2018-08-30 15:56:02 +02:00
twinaphex b1643f9275 (AArch64) Needs to be set to SDK level 26 for Google Play 2018-08-30 01:47:15 +02:00
Brad Parker 2e8361970b Qt: buildfix for older Qt 2018-08-29 18:41:05 -04:00
twinaphex 9d43f7f036 Fix French 2018-08-29 21:25:47 +02:00
Twinaphex a157f2eedd Merge pull request #7152 from bparker06/qt_coreoptions
Qt: initial core options dialog
2018-08-29 17:43:31 +02:00
Brad Parker 5a0017a23e Update CHANGES.md 2018-08-29 11:42:14 -04:00
Brad Parker 56c9a37e5a Qt: initial core options dialog 2018-08-29 11:34:36 -04:00
Brad Parker 95ad8798ee Qt: scrub thumbnail titles according to No-Intro before downloading, fixes #7149 2018-08-29 00:42:34 -04:00
Brad Parker c746115bbd Qt: keep trying to download remaining thumbnails if any fail to open for writing (probably just illegal characters in filename) 2018-08-29 00:25:19 -04:00
twinaphex 7234544669 Update version 2018-08-29 01:48:37 +02:00
Alfrix 107cc364b5 Add neoactive and retroactive to menu icons 2018-08-28 19:43:02 -03:00
Twinaphex 945f57e3b4 Merge pull request #7147 from alfrix/master
Bind sublabel cheat apply after load
2018-08-28 22:13:06 +02:00
Alfrix 2d9f00f358 Bind sublabel cheat apply after load 2018-08-28 16:37:48 -03:00
Twinaphex d160775263 Merge pull request #7137 from alfrix/xmb_exp
Fallback to a default icon in if there is no playlist icon
2018-08-28 19:51:47 +02:00
Twinaphex 8f043d717c Merge pull request #7145 from alfrix/joselagem
Rebase and fix #6961
2018-08-28 19:39:31 +02:00
Joselagem 613ff650d0 Update languages files US and ES
Update languages files US and ES
Actualización de los archivos de idioma US y ES
2018-08-28 14:34:13 -03:00
Brad Parker 3010ef8775 Qt: do not create a new playlist if a name was not specified 2018-08-28 11:34:08 -04:00
Brad Parker 44eb97206a Qt: fix canceling of thumbnail downloads, use QDir comparison instead of string-based to honor case-insensitivity on Windows 2018-08-28 09:01:25 -04:00
Twinaphex 96e14c0b61 Merge pull request #7139 from bparker06/qt_playlist_thumbnail
Qt: add right-click for playlists to download thumbnails for the current entries
2018-08-28 05:31:51 +02:00
Brad Parker d8913d5d3a Qt: add right-click for playlists to download thumbnails for the current entries 2018-08-27 23:29:44 -04:00
Twinaphex 0c6eea5030 Merge pull request #7138 from altiereslima/master
Update brazilian portuguese translation
2018-08-28 00:19:54 +02:00
Brad Parker 38f3d06d08 Qt: use C locale for numbers, otherwise slang shaders can break 2018-08-27 17:56:53 -04:00
altiereslima 0116f675b9 Update brazilian portuguese translation 2018-08-27 17:21:56 -03:00
Twinaphex fa110c5bb2 Merge pull request #7124 from orbea/clang
Silence -Wunknown-warning-option warnings with clang.
2018-08-27 20:49:02 +02:00
Brad Parker 23836bfba9 use_thread option for screenshot was backwards 2018-08-27 13:38:43 -04:00
Twinaphex ea87bb5a1d Merge pull request #7122 from orbea/vulkan
Fix segfaults when starting vulkan without a working vulkan driver.
2018-08-27 18:59:00 +02:00
twinaphex 8a5d092e5b (dispserv_x11.c) Make variable bigger to avoid all the warnings and use snprintf 2018-08-27 16:09:12 +02:00
Alfrix 6d1e04dd9c Cleanup 2018-08-27 10:45:07 -03:00
Alfrix aa0889ec29 Fallback to default icon in custom playlists 2018-08-27 10:43:31 -03:00
Twinaphex 503b42d161 Merge pull request #7134 from Dwedit/runahead-input-fix
Deterministic input for RunAhead, guaranteed to match the last polled input
2018-08-27 13:52:36 +02:00
Twinaphex d2d9989ef1 Merge pull request #7135 from bparker06/qt_thumbnailpack
Qt: add right-click option for playlists to download their thumbnail packs
2018-08-27 13:51:57 +02:00
Brad Parker 21f99b9965 Qt: add right-click for playlists to download their thumbnail packs 2018-08-26 23:24:43 -04:00
Brad Parker 98fadf9b1f Qt: remove partially downloaded thumbnail if transfer is canceled 2018-08-26 23:24:22 -04:00
Twinaphex 4a951cb369 Merge pull request #7133 from alfrix/xmb_exp
Fix themes without menu icons
2018-08-27 01:04:51 +02:00
Alfrix 461dbf39ba Fix themes without menu icons 2018-08-26 20:00:36 -03:00
Brad Parker 32345e37f8 Qt: OPENSSL_VERSION_AT_LEAST was reverted in openssl git because it is in fact broken 2018-08-26 18:14:08 -04:00
Brad Parker 9638005332 Qt: add UI option to set startup playlist, fixes #7103 2018-08-26 17:17:45 -04:00
Brad Parker 12f1d003bb Qt: openssl 1.1.0 broke their ABI 2018-08-26 16:04:01 -04:00
Brad Parker 1d6a69d198 Qt: remove partially downloaded files on failure 2018-08-26 12:04:18 -04:00
Brad Parker 49e5fcd0cc Qt: only use openssl if we have it 2018-08-26 10:44:55 -04:00
Brad Parker 7731db9ed8 Qt: link to openssl so Qt will have it for later 2018-08-26 10:40:33 -04:00
Brad Parker 78f5aba04b Qt: fix filename used for thumbnail download 2018-08-26 10:40:08 -04:00
Dwedit 821462409e Deterministic input for RunAhead, guaranteed to match the last polled input. 2018-08-26 00:22:19 -05:00
Twinaphex adb72755e1 Merge pull request #7127 from altiereslima/master
Update brazilian portuguese translation
2018-08-25 21:52:57 +02:00
Twinaphex 6093a56919 Merge pull request #7123 from bparker06/qt_thumbnail
Qt: add right-click option to download thumbnail for playlist entries
2018-08-25 21:52:44 +02:00
altiereslima 8c7526d8ef como sempre... 2018-08-25 16:38:26 -03:00
altiereslima 3d056bc8c4 Update brazilian portuguese translation 2018-08-25 16:24:17 -03:00
orbea 3c6e42ccf6 Silence -Wunknown-warning-option warnings with clang.
When building CXX code with clang it will print many warnings.

warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]

However removing this flag does not introduce any warnings so it
should be safe to remove.
2018-08-25 06:37:33 -07:00
Brad Parker e9e424ec82 Qt: add right-click option to download thumbnail for playlist entries 2018-08-25 01:00:18 -04:00
orbea 260ce526c2 Fix segfaults when starting vulkan without a working vulkan driver.
RetroArch will crash in several places when running vulkan in an
environment that does not have working vulkan drivers.

This should guard against those crashes and allow RetroArch to fail
safely in those cases.
2018-08-24 19:36:03 -07:00
Twinaphex a6d5931412 Merge pull request #7120 from alfrix/xmb_exp
Add automatic and systematic to menu icons
2018-08-25 00:22:37 +02:00
Twinaphex 07509a8ec8 Merge pull request #7121 from orbea/video_driver
Default to gl instead of vulkan.
2018-08-25 00:22:18 +02:00
orbea d8ea30881d Default to gl instead of vulkan.
If the video_driver is set incorrectly it will default to vulkan
instead of gl. However its possible to have RetroArch built with
vulkan even with no working vulkan drivers and this will cause a
segfault.

Defaulting to gl again should be a safer default which should crash
for fewer users.

Fixes https://github.com/libretro/RetroArch/issues/5568.
2018-08-24 13:55:09 -07:00
Alfrix 8dfeaba30b Add automatic and systematic to menu themes 2018-08-24 16:10:19 -03:00
Twinaphex b095511e97 Merge pull request #7117 from alfrix/xmb_exp
Add Automatic theme
2018-08-23 21:57:52 +02:00
Alfrix c39ce0e04b Add Automatic theme
It has been in the assets folder a long time by now
2018-08-23 16:41:07 -03:00
Twinaphex f357526a57 Merge pull request #7116 from altiereslima/master
Update brazilian portuguese translation
2018-08-23 18:46:33 +02:00
altiereslima 6e9a8a9dd9 fix 2018-08-23 13:23:03 -03:00
altiereslima 49b785b9dc Update brazilian portuguese translation
Added some missing strings.
Aligned with msg_hash_us.h
2018-08-23 13:03:36 -03:00
Brad Parker 6464003d5f Qt: use id instead of array index for shader params, fix empty window on vulkan 2018-08-23 11:42:31 -04:00
Twinaphex ea35fe85f6 Merge pull request #7114 from hyarsan/master
Make the Show Desktop Menu sublabel sound better
2018-08-23 15:38:32 +02:00
Yarsan Hoessain 27147226a0 Make the Show Desktop Menu sublabel sound better 2018-08-23 15:27:09 +02:00
Brad Parker 88cecc521a Qt: hopefully parameters are fixed now part 2 2018-08-22 22:51:50 -04:00
Twinaphex da3888dd68 Merge pull request #7111 from alfrix/xmb_exp
Add Retrosystem to the support list of menu icons
2018-08-23 02:19:59 +02:00
Alfrix fb15edebc3 Add Retrosystem to the support list of menu icons 2018-08-22 19:52:27 -03:00
Twinaphex 376dd85715 Merge pull request #7110 from alfrix/xmb_exp
Change start core icon
2018-08-22 22:46:22 +02:00
Alfrix 947113d007 Change start core icon 2018-08-22 16:31:02 -03:00
Twinaphex c93cf0f362 Merge pull request #7108 from alfrix/xmb_exp
Don't show the pipeline option it was disabled in the build
2018-08-22 17:59:41 +02:00
Alfrix b118e45d49 Don't show the pipeline option it was disabled in the build 2018-08-22 12:51:59 -03:00
Brad Parker 8ff257290c Qt: hopefully parameters are fixed now 2018-08-21 21:20:25 -04:00
Brad Parker 67653ba5f0 Qt: try to fix wrong parameter being set in a different way 2018-08-21 21:01:56 -04:00
Brad Parker 0b9adb3938 Qt: fix pass parameters switched around on context reset if move up/down buttons were used 2018-08-21 19:16:18 -04:00
Brad Parker 498ed160bb Qt: fix shader passes disappearing on context reset 2018-08-21 18:25:25 -04:00
Twinaphex 0300e8a544 Merge pull request #7107 from TheMrIron2/master
PSP: Slightly more aggressive optimisation
2018-08-22 00:20:01 +02:00
Twinaphex 9740ede4da Merge pull request #7089 from winneon/discord_improvements
wip - discord: added new discord-rpc statuses & updated discord-rpc calls to stay more consistent
2018-08-21 22:48:59 +02:00
TheMrIron2 96023ea469 PSP: Slightly more aggressive optimisation
- O3 flag replacing O2 for higher level of optimisation. Potentially unstable, but works for Wii U RetroArch along with other PSP emulators. I don't see why not.
- fsingle-precision-constant to simplify some operations. Should be safe while being more performant due to using less memory traffic and may lessen load on the CPU because of the simplification.
2018-08-21 20:48:55 +00:00
Jesse Bryan 5bda0b3a61 general: fixed the merge conflict 2018-08-21 14:57:59 -05:00
Twinaphex dfe0a81206 Merge pull request #7106 from alfrix/spanish
Update Spanish
2018-08-21 20:35:13 +02:00
Alfrix fad5569d99 Cleanup styling 2018-08-21 15:30:02 -03:00
Alfrix 052424ffd2 Update Spanish 2018-08-21 15:30:02 -03:00
Twinaphex 8e76145278 Merge pull request #7105 from alfrix/xmb_exp
Change Reset core association icon to undo
2018-08-21 19:43:44 +02:00
Brad Parker 06daa1f9ef Qt: start on history playlist by default, UI option to change it will come later 2018-08-21 13:39:22 -04:00
Twinaphex 94ec9233f6 Merge pull request #7104 from Tatsuya79/patch-3
rename vrr runloop option
2018-08-21 19:19:46 +02:00
Alfrix 8984162e0f Change Reset core association icon to undo 2018-08-21 14:19:35 -03:00
Tatsuya79 1c8f2beca3 update vrr runloop help 2018-08-21 18:47:06 +02:00
Tatsuya79 45bcd62f34 rename vrr runloop option 2018-08-21 18:45:22 +02:00
Brad Parker cc16c45069 Qt: keep size of shader window when reloading if user has changed it 2018-08-21 11:14:42 -04:00
Jesse Bryan f6a0b09e7d general: renamed rpcname to systemid 2018-08-21 09:41:16 -05:00
Brad Parker 281966a14c Qt: make sure video_shader exists 2018-08-21 10:15:00 -04:00
Jesse Bryan c276f9349a discord: remove hardcoded values and use new attribute 2018-08-20 20:55:44 -05:00
Brad Parker 6a4584e301 Update CHANGES.md 2018-08-20 21:49:50 -04:00
Brad Parker ff09503ac1 Qt: add right-click options to reset shader parameters back to defaults 2018-08-20 21:48:59 -04:00
Brad Parker 4d09ddde1c Qt: limit shader preset/pass selection to the appropriate extensions 2018-08-20 20:26:50 -04:00
Brad Parker e9c68597ff Qt: try to work around layout crashing issues on Windows 2018-08-20 18:47:18 -04:00
Jesse Bryan ea561c8dfe discord: see the previous commit message 2018-08-20 14:16:52 -05:00
Jesse Bryan f507905345 discord: fixed the corename comparison statement 2018-08-20 14:14:35 -05:00
Jesse Bryan bb451d59e8 discord: hardcoded non-essential cores into discord.c 2018-08-20 14:03:06 -05:00
Brad Parker 0ed43eb908 Qt: fix tool button handling on shader window 2018-08-20 12:57:05 -04:00
Jesse Bryan 44180e55b1 Merge branch 'master' of https://github.com/libretro/RetroArch into discord_improvements 2018-08-20 08:30:57 -05:00
Jesse Bryan 7568d35086 discord: replace forward slashes with underscores 2018-08-20 08:30:54 -05:00
Brad Parker 3ad54bc9ca Qt: revert paintEvent changes, only keep one for ShaderParamsDialog 2018-08-19 19:27:06 -04:00
Brad Parker 8380ad61f9 Qt: add missing paintEvent overrides for stylesheet correctness 2018-08-19 18:54:13 -04:00
Brad Parker b60df44b59 Qt: add load/save/remove/apply buttons to top of shaders dialog 2018-08-19 16:26:23 -04:00
Twinaphex d9f7afbf77 Merge pull request #7098 from RobLoach/pkg-mame2003plus
ctr: Add MAME 2003 Plus
2018-08-19 18:55:09 +02:00
Rob Loach 5ba4103f6e pkg: Add MAME 2003 Plus 2018-08-19 12:49:47 -04:00
Brad Parker d571bfaf17 Qt: use native path separators for file browser content 2018-08-19 11:46:33 -04:00
Brad Parker f6dc3345e9 Qt: use native path separators for folder scan from file browser, fixes #7084 2018-08-19 11:05:25 -04:00
twinaphex 821ffc9962 Clang scan-build error fix 2018-08-19 16:13:13 +02:00
Twinaphex b0f21e7c2e Merge pull request #7097 from Tatsuya79/patch-2
[Desktop Menu] update dark theme
2018-08-19 16:03:23 +02:00
Tatsuya79 9e9fb5803e Update ui_qt_themes.h 2018-08-19 16:00:19 +02:00
Tatsuya79 c051bae1bd Update ui_qt_themes.h 2018-08-19 15:56:19 +02:00
Twinaphex e6576c8239 Merge pull request #7088 from alfrix/xmb_exp
XMB add an option to show desktop ui aka WIMP
2018-08-19 15:55:38 +02:00
Tatsuya79 a309400305 name gridLayoutWidget 2018-08-19 15:54:56 +02:00
Twinaphex e35623d492 Merge pull request #7093 from bparker06/max_frames_ss
command-line parameters for screenshotting after max_frames is reached
2018-08-19 06:23:31 +02:00
Brad Parker b1dde87ce5 add --max-frames-ss and --max-frames-ss-path parameters for taking a screenshot after max_frames is reached 2018-08-18 23:09:40 -04:00
Brad Parker b0146abd11 add fullpath and use_thread parameters to take_screenshot() 2018-08-18 23:08:55 -04:00
Jesse Bryan 7755c9ae55 discord: removed the icon warning and uncommented the necessary line 2018-08-18 21:21:56 -05:00
Jesse Bryan cdbe19e213 discord: fix merge conflicts 2018-08-18 21:16:12 -05:00
alfrix e0d99d7da2 Change UI to menu 2018-08-18 22:22:40 -03:00
Brad Parker c00fd41b93 Qt: style fixup for filter/scale/move shader options 2018-08-18 19:07:58 -04:00
Brad Parker 380cd7ac53 Qt: add move up/down button for shader passes 2018-08-18 18:03:51 -04:00
alfrix 70d0458180 Add sublabel for 'Show desktop ui' 2018-08-18 18:16:19 -03:00
Twinaphex ea946b5c97 Merge pull request #7092 from Dwedit/attach_console
Attach console before displaying Version information, Help, or Features.
2018-08-18 21:06:15 +02:00
alfrix b915fd095d Fix focus for windows platforms (Tatsuya) 2018-08-18 15:14:41 -03:00
alfrix d2e4832ebe QT fix focus (bparker) 2018-08-18 15:10:41 -03:00
alfrix 105fba6abe XMB add an option to show desktop ui aka WIMP 2018-08-18 15:10:40 -03:00
Dwedit f01894ebe4 Attach console before displaying Version information, Help, or Features. 2018-08-18 12:43:49 -05:00
Brad Parker 894d460821 Qt: add "current shader" prefix to window title 2018-08-18 13:04:53 -04:00
Brad Parker 0a9891def1 Qt: fix checkbox setting of shader parameters 2018-08-18 13:00:39 -04:00
Brad Parker e78f2f63f7 Qt: fix changing of double spinbox values 2018-08-18 12:39:28 -04:00
Brad Parker e4834250b9 Qt: set shader dialog title to current preset/shader name 2018-08-18 12:39:17 -04:00
twinaphex 90efa02718 Fix more scan-build issues 2018-08-18 16:16:17 +02:00
Twinaphex f07b8b1965 Merge pull request #7090 from Dwedit/fix_missing_content
Fix console mode loading core without content
2018-08-18 16:06:41 +02:00
twinaphex 646e64c28c Fix some clang scan-build warnings/errors 2018-08-18 15:56:44 +02:00
Dwedit 0e34c12d5c Fixed bug that let Retroarch proceed to retro_run without loading content
Removed unlocalized and redundant error message
2018-08-18 08:40:19 -05:00
Jesse Bryan ea6541b90f discord: remove test rpc client ID 2018-08-18 02:17:08 -05:00
Jesse Bryan fd7d8d9424 Merge branch 'master' of https://github.com/libretro/RetroArch into discord_improvements 2018-08-18 02:12:56 -05:00
Jesse Bryan a0cf6b6b5e discord: added additional discord events and other improvements 2018-08-18 02:12:51 -05:00
Brad Parker 849792dc2c fix memory leaks 2018-08-18 01:15:50 -04:00
Brad Parker dfd85125ad fix null deref 2018-08-18 01:10:05 -04:00
Brad Parker c59cbfc4e8 fix memory leaks 2018-08-18 01:07:57 -04:00
Brad Parker 077ef86bab fix null pointer dereferences 2018-08-18 01:07:51 -04:00
Brad Parker 2f87f669f1 fix null dereference (but scan-build still warns with "Assigned value is garbage or undefined") 2018-08-18 01:00:53 -04:00
Brad Parker 23d7fbcaf3 fix memory leaks 2018-08-18 00:56:10 -04:00
Brad Parker fbe08aa0c5 fix double free 2018-08-18 00:51:07 -04:00
Brad Parker 1d4cb967f0 fix scan-build error "branch condition evaluates to garbage" 2018-08-18 00:48:40 -04:00
Brad Parker 16459bfa91 Qt: add filter/scale to shader window 2018-08-18 00:33:59 -04:00
Brad Parker b76f3abfbc android: use current package name for external storage 2018-08-17 20:38:56 -04:00
Brad Parker 819e930b89 Qt: move drag&drop context menu into FileDropWidget source 2018-08-17 11:57:47 -04:00
twinaphex 566d0fc0d9 Remove this 2018-08-17 17:43:28 +02:00
twinaphex ae0d9fd60d (Wayland) Buildfixes 2018-08-17 17:42:14 +02:00
Brad Parker 1fba7df859 use existing src folder for android64 instead of duplicating it 2018-08-17 09:40:13 -04:00
twinaphex 7250181319 Add some __WINRT__ ifdefs 2018-08-17 14:51:27 +02:00
Brad Parker e2ff7478ca don't return uninitialized data 2018-08-17 07:49:25 -04:00
Brad Parker f130b261f4 Qt: Linux buildfix 2018-08-16 23:14:52 -04:00
Brad Parker 1966b04832 Qt: windows buildfix 2018-08-16 22:58:35 -04:00
Brad Parker 648705154e Qt: split functions into separate files 2018-08-16 22:48:31 -04:00
Brad Parker 6ef3567ea5 Qt: reset shader params window when passes are set to 0 2018-08-16 22:48:07 -04:00
twinaphex cfd15687d1 Buildfix 2018-08-16 22:01:24 +02:00
twinaphex f9e8737476 Remove libui - we don't need it anymore now that we have the Qt desktop
UI
2018-08-16 21:34:20 +02:00
twinaphex 35991f5feb Don't use == NULL 2018-08-16 21:32:14 +02:00
twinaphex b28af7734f MSVC 2012 solution works now 2018-08-16 21:18:37 +02:00
twinaphex 4a54826d9b Remove unused variable 2018-08-16 21:14:56 +02:00
twinaphex a1d5b0fd03 Update MSVC 2012 solution 2018-08-16 20:49:31 +02:00
Brad Parker 12539f310d use strl functions 2018-08-16 13:51:44 -04:00
twinaphex d3c6fc1601 Add initial MSVC 2012 solution 2018-08-16 19:29:31 +02:00
Brad Parker 9221e4e845 Discord integration requires a C++ linker 2018-08-16 13:10:22 -04:00
twinaphex 220c84c7a3 Fix strlcat size arguments 2018-08-16 18:53:19 +02:00
twinaphex 6cd6bf993f Fix strlcpy call 2018-08-16 18:30:53 +02:00
twinaphex 0175effb00 Revert "(Menu) change strncpy to strlcpy"
This reverts commit ba67623961.
2018-08-16 16:40:28 +02:00
Brad Parker f8521a5580 Qt: use string literal for themes 2018-08-16 10:20:37 -04:00
Brad Parker 34e48bcbc9 Update AUTHORS.h 2018-08-16 09:29:39 -04:00
Twinaphex e43462cc3e Merge pull request #7048 from alfrix/xmb_exp
(Menu) Add more XMB Icons
2018-08-16 14:45:10 +02:00
Brad Parker 18a6467d4f Qt: update success is not an error 2018-08-16 08:42:40 -04:00
Twinaphex f37898dd01 Merge pull request #7079 from Tatsuya79/patch-1
Desktop UI dark theme updates
2018-08-16 13:31:19 +02:00
Tatsuya79 f750229693 Desktop UI dark theme updates 2018-08-16 13:12:34 +02:00
twinaphex 6001c7f030 (MSVC 2008) Add HAVE_OVERLAY 2018-08-16 11:53:46 +02:00
twinaphex c699889f0c Update MSVC2008 2018-08-16 11:50:51 +02:00
twinaphex 145d4d66f5 Update MSVC 2008 solution 2018-08-16 11:44:51 +02:00
twinaphex d2de72bfb7 Update MSVC 2008 solution 2018-08-16 11:18:56 +02:00
twinaphex a8826c766b (MSVC2008) Update solution 2018-08-16 11:06:22 +02:00
twinaphex fd532414f0 (DSound) Add fallback when we are not building with HAVE_THREADS support 2018-08-16 10:57:33 +02:00
twinaphex 3f4cd71aa3 Cleanups 2018-08-16 10:42:26 +02:00
twinaphex de8c98fdef Remove ID_M_SHADER_PARAMETERS 2018-08-16 10:18:56 +02:00
twinaphex 3fb039f9f0 Update menu_display_metal.m 2018-08-16 10:18:00 +02:00
twinaphex ba67623961 (Menu) change strncpy to strlcpy 2018-08-16 10:15:51 +02:00
twinaphex 75a388cd67 Use strlcpy instead of strncpy in slang_process.cpp 2018-08-16 10:14:42 +02:00
twinaphex c12baad087 Fixup compat_snprintf.c for MSVC 2008 2018-08-16 10:12:17 +02:00
twinaphex 6266065384 Fix more code when compiling without menu support 2018-08-16 09:59:51 +02:00
twinaphex e2e43e6ade Update - make sure non-HAVE_MENU targets can compile 2018-08-16 09:51:03 +02:00
Brad Parker c74c3c9536 Qt: set object names 2018-08-15 21:41:44 -04:00
Brad Parker c663b0f87b Qt: make shader parameter window scrollable if there are too many items to show 2018-08-15 21:40:39 -04:00
twinaphex 921e52e64f Remove old leftover buggy Win32 driver 2018-08-16 00:05:09 +02:00
Brad Parker 9f60a6d17c fix Core Information not appearing after 73f2710 2018-08-15 16:11:05 -04:00
Twinaphex 32d1769968 Merge pull request #7076 from winneon/discord_improvements
discord: use playlist & platform titles when launching content
2018-08-15 21:48:26 +02:00
Twinaphex eee287074c Merge pull request #7077 from bparker06/wimp_shader_param
Qt: Initial shader parameters window
2018-08-15 21:36:34 +02:00
Twinaphex 4d96fddf5e Merge pull request #7061 from wiktorek140/sailfishos-touch
Sailfish OS  device build configuration connected with touch screen support required for device with this OS
2018-08-15 13:30:04 +02:00
twinaphex 1b544d6879 (AArch64) Add separate android phoenix dir 2018-08-15 13:08:06 +02:00
twinaphex c540d83850 (MSVC 2017 Android) Update library name 2018-08-15 12:30:11 +02:00
twinaphex f53349e3dd Move MSVC 2017 files to android/phoenix 2018-08-15 10:46:24 +02:00
Jesse Bryan 2d7cb40537 discord: moved core_info changes to separate PR 2018-08-14 23:40:51 -05:00
Jesse Bryan 010412c895 discord: simplified some lines 2018-08-14 23:26:48 -05:00
Jesse Bryan bf9a8ac4a0 discord: general discord-rpc improvements
Now, if the content was loaded from a playlist, the content name will be the playlist entry's title instead of the filename of the content.

Also, `state` was modified to show the display name of the core, not the
library name. The difference is that the display name shows the platform
as well, not just the core name (i.e. "NEC - PC Engine SuperGrafx (Beetle SGX)" instead of "Mednafen SuperGrafx").
2018-08-14 23:12:47 -05:00
Brad Parker 341cf63399 Qt: show shader pass in parameters window, reload shader params when shader is reloaded 2018-08-14 21:38:52 -04:00
Brad Parker 553394c266 Qt: fix setting of spinbox values when modifying shader parameter sliders 2018-08-14 21:38:45 -04:00
Brad Parker 560149857b shaders: track the pass for each parameter 2018-08-14 18:46:32 -04:00
Brad Parker 4a86d29810 shaders: fix memory leak 2018-08-14 18:44:19 -04:00
Brad Parker 6de4384350 glsl: don't clear the shader source 2018-08-14 18:42:23 -04:00
Brad Parker 572c1ea2d3 Qt: initial shader parameter support 2018-08-14 16:04:48 -04:00
Brad Parker 4a9ef99759 Qt: fix core loading after 73f2710 2018-08-14 16:04:11 -04:00
Twinaphex 135000a5f3 Merge pull request #7074 from RetroSven/master
bugfix: code and state not swapped
2018-08-14 20:04:56 +02:00
Sven 977eac2601 bugfix: code and state not swapped 2018-08-14 13:29:58 -04:00
twinaphex 801bae65e3 Rename files 2018-08-14 17:55:26 +02:00
twinaphex 4fc0d4a194 Rename dir 2018-08-14 17:30:05 +02:00
twinaphex 5ebe5de1b9 Add resource files 2018-08-14 17:24:35 +02:00
twinaphex 00c6fcde84 Add initial VS2017 Android solution - not working yet 2018-08-14 16:04:58 +02:00
twinaphex a6941fb4ed Initial work done on VS2017 solution for Android 2018-08-14 16:02:31 +02:00
twinaphex 48956f3fe4 (MSVC 2008) Add initial MSVC 2008 solution files 2018-08-14 12:18:33 +02:00
twinaphex 16ab69285b (Griffin) Cleanup 2018-08-14 11:45:20 +02:00
twinaphex 6a64e27e3d (D3D8) Add HAVE_MENU ifdefs 2018-08-14 11:41:43 +02:00
twinaphex db9f4697f6 Add HAVE_MENU ifdefs 2018-08-14 11:40:42 +02:00
twinaphex 8c084c70b7 Add HAVE_MENU ifdefs 2018-08-14 11:18:24 +02:00
alfrix b35914fcc0 Fix Stop Netplay Host 2018-08-13 19:41:18 -03:00
Twinaphex 1b542a157d Merge pull request #7073 from flyinghead/fh/stop-audio-after-unload
Close the audio driver after unload_game to avoid threads deadlocks
2018-08-13 15:27:29 -07:00
Flyinghead e52f90926d Close the audio driver after unloading the game to avoid blocking threads that are pushing audio 2018-08-14 00:16:08 +02:00
alfrix ae562614c4 Add dot-art to the supported list in the new XMB icons 2018-08-13 18:42:46 -03:00
twinaphex 66367d41a3 Update libretro-common 2018-08-13 19:56:02 +02:00
alfrix 6e64a39044 Add icons to XMB (limited to Monochrome for now)
Add monochrome inverted to the menu icons
Allow the extra XMB icons in custom theme
Add subsettings
2018-08-13 12:37:45 -03:00
alfrix 8bbc0cb115 Cleanup 2018-08-13 12:37:45 -03:00
Brad Parker b93974faea Qt: update "About RetroArch" logo 2018-08-13 08:42:47 -04:00
twinaphex f657391b2a mbedtls does not support C89 so don't use HAVE_SSL for C89_BUILD 2018-08-13 03:21:08 -07:00
twinaphex 116390b3e8 We should use strlcpy instead of strncpy - this usage of strncpy
was also showing warnings with GCC 8.2
2018-08-13 03:10:02 -07:00
twinaphex 02eb650273 We should use strlcpy instead of strncpy 2018-08-13 03:07:12 -07:00
Brad Parker 0c658debbf update Japanese translation 2018-08-12 22:42:34 -04:00
twinaphex f37ffb7a65 Fix relative path includes 2018-08-12 18:38:05 +02:00
twinaphex be4f592e9e Fix crash at startup when Enable Discord is enabled 2018-08-12 16:33:52 +02:00
twinaphex 356c829f81 Revert "Revert "fix heap-use-after-free""
This reverts commit 6b4cfdc043.
2018-08-12 16:33:24 +02:00
twinaphex 6b4cfdc043 Revert "fix heap-use-after-free"
This reverts commit 73f271021a.
2018-08-12 09:22:32 +02:00
Brad Parker 5fd0664277 fix heap buffer overflow 2018-08-11 21:20:05 -04:00
Brad Parker 73f271021a fix heap-use-after-free 2018-08-11 21:19:56 -04:00
Twinaphex a36442d72d Merge pull request #7069 from bparker06/msvc_version
xmb: show MSVC version next to RetroArch version in lower-left corner
2018-08-11 22:22:01 +02:00
Brad Parker 7b24f884d6 xmb: show MSVC version next to RetroArch version in lower-left corner 2018-08-11 16:20:06 -04:00
Twinaphex 23fe638add Merge pull request #7067 from gouchi/patch-1
Update README.md
2018-08-11 19:04:07 +02:00
gouchi 07b4aed245 Update README.md
fix typo
2018-08-11 18:44:28 +02:00
Brad Parker 325d30f062 Qt: sort core association list case-insensitively 2018-08-10 19:39:04 -04:00
Brad Parker 3d9e7f2c60 Qt: make contributor list static 2018-08-10 19:28:13 -04:00
Twinaphex d352de8133 Merge pull request #7065 from bparker06/contrib
Qt: Add list of contributors to about box
2018-08-11 01:25:40 +02:00
Brad Parker 376608aea0 Qt: cleanup 2018-08-10 19:23:52 -04:00
Brad Parker 177642ac2f add script to fetch list of github contributors 2018-08-10 19:20:13 -04:00
Brad Parker e91c18f556 Qt: Add list of contributors to about box 2018-08-10 19:10:23 -04:00
twinaphex 2cfae2a6e7 C89 buildfix 2018-08-11 00:15:32 +02:00
Twinaphex 91a5b09627 Merge pull request #7042 from Tatsuya79/master
VRR runloop Option.
2018-08-10 21:15:58 +02:00
Brad Parker 8d5f2ad1de Qt: use core display name if regular name is empty 2018-08-10 15:10:18 -04:00
Brad Parker 51f968c557 Qt: fix core association not showing up when clicking on playlists while in grid view 2018-08-10 09:58:22 -04:00
Brad Parker fe6dda917a word_wrap: hack to workaround long lines without spaces 2018-08-09 23:54:16 -04:00
Wiktor Strzębała 45799ee034 Bring up touch support for wayland subsystem for sailfish os devices
Touch code cleanup
Make variabled static as suggest bparker06
C89 compilation error fix (at least for loops)
More C89 fixes

Signed-off-by: Wiktor Strzębała <[email protected]>
2018-08-09 20:49:27 +02:00
Brad Parker e235a0991c Qt: updates 2018-08-09 11:55:42 -04:00
Twinaphex a8dc7209b7 Merge pull request #7060 from RetroSven/master
reverse code/state display so that users can see at a glance which codes are active
2018-08-09 14:59:05 +02:00
Sven 1af96360a5 reverse code/state display so that users can see at a glance which codes are enabled 2018-08-09 08:52:35 -04:00
Wiktor Strzębała ca769b0006 Wayland have EGL libs
Signed-off-by: Wiktor Strzębała <[email protected]>
2018-08-09 14:42:19 +02:00
Wiktor Strzębała 599fd8abe0 Spec file for building under MERSDK (sailfishos)
Signed-off-by: Wiktor Strzębała <[email protected]>
2018-08-09 14:41:55 +02:00
Tatsuya79 e48b9011bf Don't adjust audio for VRR. Silence log message about it. 2018-08-09 12:29:40 +02:00
Brad Parker 50b23d6572 Qt: use yes/no buttons for question dialogs to allow canceling even if checkbox is clicked, return checkbox status separately from yes/no buttons 2018-08-08 12:49:35 -04:00
twinaphex 2a68b6e691 Update 2018-08-08 07:40:33 +02:00
twinaphex e74e306947 Relative path include bugfix 2018-08-08 07:38:48 +02:00
twinaphex fc176c1fa6 Put this around HAVE_DISCORD ifdefs 2018-08-08 07:35:11 +02:00
twinaphex 27c2c6c6d7 Add Discord integration 2018-08-08 07:32:37 +02:00
twinaphex a3847ed656 Not available on PSP either 2018-08-08 06:03:01 +02:00
twinaphex c59b054ef2 Comment this out 2018-08-08 05:01:22 +02:00
twinaphex f14ae31e93 Uncomment this too 2018-08-08 04:54:11 +02:00
twinaphex 1becd89699 Remove DEBUG ifdef 2018-08-08 04:51:03 +02:00
twinaphex e6e35805a6 Enable this 2018-08-08 04:50:16 +02:00
Twinaphex 499fdc7e22 Merge pull request #7053 from RetroSven/master
add option to auto-apply cheat codes when a game loads ; fix some misc cheat module bugs
2018-08-08 03:17:44 +02:00
twinaphex 80227bfcdb Vita doesn't have ftruncate it seems 2018-08-08 01:46:32 +02:00
Sven b48321737d Merge remote-tracking branch 'upstream/master' 2018-08-07 17:35:16 -04:00
Sven b648d70f27 add option to auto-apply cheat codes when a game loads ; fix some misc bugs in cheat engine 2018-08-07 17:34:46 -04:00
Twinaphex 59b620a1a6 Merge pull request #7051 from greso/master
(macOS) Fix input issues
2018-08-07 20:22:55 +02:00
greso 2c9fda1798 (macOS) Fix input issues
For my Xbox One Controller the min input for the hat is 1 and not 0. 0
points to the default state that is called after each button press.

On top of that the two axis for the trigger buttons were ignored. I
added some additional axis that are not present on my controller but
will probably help for other input devices.
2018-08-07 19:51:50 +02:00
twinaphex 137a39c705 Update 2018-08-07 06:22:56 +02:00
twinaphex 7fdc516d8d Update 2018-08-07 06:19:27 +02:00
twinaphex 653bcba2e0 Update libretro-common 2018-08-07 06:17:48 +02:00
twinaphex f52708e205 Update filestream_transforms.h 2018-08-07 06:00:16 +02:00
twinaphex c563eedb32 Hopefully the VFS interface can now remain stable 2018-08-07 05:53:32 +02:00
twinaphex 1bda6ba204 Update libretro-common 2018-08-07 05:43:19 +02:00
twinaphex 0fb7d6a9e4 (SSL) Re-enable drbg 2018-08-07 04:57:33 +02:00
twinaphex 9403489f2e try to bake out debug parts of mbedtls 2018-08-07 04:51:26 +02:00
twinaphex 79f87cbaee More C89_BUILD fixes for mbedtls 2018-08-07 04:48:05 +02:00
twinaphex 6155772c5e mbedtls is not C89_BUILD compatible for now 2018-08-07 03:54:09 +02:00
twinaphex f523fec4d2 C89_BUILD fixes 2018-08-07 03:50:10 +02:00
twinaphex 2bf3ec2000 C89_BUILD fixes 2018-08-07 03:37:56 +02:00
Twinaphex d4ab18c188 Merge pull request #7049 from bparker06/wimp_update
Qt: add option to update RetroArch (Windows only for now)
2018-08-07 03:10:32 +02:00
Brad Parker 4baecf84ca Qt: add option to update RetroArch (Windows only for now) 2018-08-06 20:52:47 -04:00
Brad Parker a1b831abdb allow 7z archives to have multiple files extracted at once 2018-08-06 20:44:59 -04:00
twinaphex 00f252ad2d configuration.c - cleanups:
- use string_is_equal instead of strcmp
- use calloc instead of malloc
2018-08-06 06:59:50 +02:00
twinaphex 68f5c907fe Don't leak 4096 bytes in config_load_remap 2018-08-06 06:55:13 +02:00
Twinaphex 5a727ce522 Merge pull request #7046 from DEX357/patch-18
Update msg_hash_pl.h
2018-08-06 02:41:08 +02:00
DEX357 046ce64250 Update msg_hash_pl.h 2018-08-06 00:27:26 +02:00
Twinaphex c19e26ebf6 Merge pull request #7045 from dor3k/patch-1
Update Polish
2018-08-06 00:15:16 +02:00
dor3k dcc642876a Update msg_hash_pl.h 2018-08-05 23:30:41 +02:00
twinaphex d9f4675a51 menu_settings_free - prevent null pointer indirections 2018-08-05 16:59:59 +02:00
dor3k 54074f5c53 Update msg_hash_pl.h 2018-08-05 02:36:54 +02:00
twinaphex 3f959637f2 Update application ID 2018-08-05 02:14:21 +02:00
twinaphex ae69bf9d7b More changes needed for mbedtls/griffin 2018-08-05 01:10:05 +02:00
Twinaphex dae393d519 Merge pull request #7043 from fr500/master
Discord: Show game name and a core icon
2018-08-05 01:08:55 +02:00
radius 605565e87e Discord: Show game name and a core icon 2018-08-04 17:41:07 -05:00
Tatsuya79 bd4d462170 VRR runloop Option. 2018-08-05 00:34:10 +02:00
twinaphex a1e338827c (mbedtls) Changes to make it compatible with Griffin, pt. 1 2018-08-04 21:16:12 +02:00
twinaphex d2613d6e89 (mbedtls) Global variables need to be uniquely namespaced for Griffin 2018-08-04 20:57:23 +02:00
twinaphex 3019748b17 (mbedtls) Use arc4_alt.h 2018-08-04 20:54:11 +02:00
twinaphex ad87ec871d (mbedtls) update asn1parse.c 2018-08-04 20:10:19 +02:00
twinaphex 5b3b3b4a89 (mbedtls) Add arc4_alt.h 2018-08-04 20:09:07 +02:00
Twinaphex 01103dcd23 Cleanups 2018-08-04 20:02:33 +02:00
twinaphex 564c7805b0 Add HAVE_SSL ifdef to griffin.c 2018-08-04 19:51:55 +02:00
Brad Parker c71b4ccca3 only set mbedtls debug if we are building in debug mode 2018-08-04 13:24:36 -04:00
twinaphex 7b147a40ae Update 2018-08-04 19:23:42 +02:00
Twinaphex b0e8775b55 Merge pull request #7041 from RetroSven/master
bugfix for very long code values - allow for any length
2018-08-04 19:10:46 +02:00
Sven 0f634d563b Merge remote-tracking branch 'upstream/master' 2018-08-04 13:05:40 -04:00
Sven 2fb5d54130 bugfix for very long code values - allow for any length 2018-08-04 13:05:05 -04:00
Brad Parker 93aed2bc87 Update CHANGES.md 2018-08-04 12:56:48 -04:00
twinaphex 2f1dd78a77 Set HAVE_SSL=yes by default for Windows/Linux 2018-08-04 18:50:53 +02:00
Twinaphex 00ff8b59aa Merge pull request #7040 from alfrix/spanish
Update Spanish
2018-08-04 16:10:10 +02:00
Sven deff1de2b7 Merge remote-tracking branch 'upstream/master' 2018-08-04 08:29:07 -04:00
Sven a82ea4dcc8 bump size for long one-line multi-codes 2018-08-04 08:28:39 -04:00
Alfredo Monclus ce20a9acdf Add Onscreen Notifications and Overlays Sublabels 2018-08-04 00:33:51 -03:00
Alfredo Monclus 8fe519365c Update Spanish 2018-08-03 23:20:32 -03:00
Brad Parker 75d161e0bd Qt: make links in Help->About clickable, add documentation link 2018-08-03 21:38:38 -04:00
twinaphex 5773f7071d C89 buildfixes 2018-08-04 00:47:52 +02:00
Twinaphex 421e6fe0f7 Merge pull request #7039 from RetroSven/master
add some options to the cheat system to browse emulator memory
2018-08-03 23:55:12 +02:00
Sven e5bc567765 Merge remote-tracking branch 'upstream/master' 2018-08-03 14:59:44 -04:00
Sven 36d16a9c94 add some options to the cheat system to browse emulator memory 2018-08-03 14:59:33 -04:00
Brad Parker 43492c5fbd Qt: add Help->About dialogs 2018-08-02 23:21:39 -04:00
Twinaphex af4438406d Merge pull request #7038 from joel16/vita-clockrates
Set max bus & gpu clock rates for PS VITA
2018-08-02 19:36:59 +02:00
Joel16 b606572bce Set max bus & gpu clock rates 2018-08-02 12:19:16 -05:00
Twinaphex 03854a0da1 Merge pull request #7037 from RetroSven/master
add an option to auto-apply cheats whenever they are toggled on/off
2018-08-02 17:18:21 +02:00
Sven c1bba50567 Merge remote-tracking branch 'upstream/master' 2018-08-02 11:00:02 -04:00
Sven 3bba9aeeaf add an option to auto-apply cheats whenever they are toggled on/off 2018-08-02 10:59:37 -04:00
twinaphex 5b9115c848 C89_BUILD fixes 2018-08-01 01:27:30 +02:00
twinaphex aec7ed40da This crashed Wayland 2018-08-01 01:15:58 +02:00
Brad Parker bdf5efd4ab Qt: fix thumbnail display in file browser when name has dots in it 2018-07-31 11:34:25 -04:00
Brad Parker b60e35ce48 Update CHANGES.md 2018-07-31 00:16:48 -04:00
Brad Parker ea05b0f3cb Qt: "add entry" option for starting a new custom playlist entry 2018-07-31 00:15:59 -04:00
Brad Parker d5ae00f3d8 Qt: fix loading of content from grid view with core set to "ask me" 2018-07-30 22:52:14 -04:00
Brad Parker e63edfa6d2 Qt: add button to playlist entry dialog to change the path to the content 2018-07-30 21:18:34 -04:00
Brad Parker e1b2d752ab Qt: use complete base name in case file has periods in it 2018-07-30 19:41:31 -04:00
Twinaphex 3e330bed7c Merge pull request #7034 from Tatsuya79/patch-3
Update ui_qt_themes.h
2018-07-31 01:32:08 +02:00
Tatsuya79 1ceac715b3 Update ui_qt_themes.h 2018-07-31 01:07:00 +02:00
Brad Parker 50381a0463 Qt: allow FileDropWidget to be styleable 2018-07-30 18:22:18 -04:00
Twinaphex b5d5fb4940 Merge pull request #7032 from Tatsuya79/patch-2
Update ui_qt_themes.h
2018-07-30 17:36:04 +02:00
Tatsuya79 20a66e468e Update ui_qt_themes.h 2018-07-30 17:26:58 +02:00
Brad Parker 5273aa2861 Qt: use native separators for playlist paths 2018-07-30 10:02:38 -04:00
Twinaphex 157fbe07b6 Merge pull request #7031 from RetroSven/master
fix strncat size warnings ; only consume additional cheat memory when performing searching - no need to alloc additional memory when applying cheats ; bugfix address mask max value
2018-07-30 14:00:44 +02:00
Sven ba8ceb8f84 Merge remote-tracking branch 'upstream/master' 2018-07-30 04:12:46 -04:00
Sven c2825cb7c5 fix strncat size warnings ; only consume additional cheat memory when performing searching - no need to alloc additional memory when applying cheats ; bugfix address mask max value 2018-07-30 04:08:50 -04:00
Brad Parker 558a732330 Qt: add right-click option to edit playlist entries, fix bug with extra .lpl extension in playlists 2018-07-29 23:51:23 -04:00
Twinaphex 0d157bc09f Merge pull request #7030 from RetroSven/master
add "reload game-specific cheats" option to cheats menu
2018-07-29 23:56:08 +02:00
Sven 3d862bbdb4 Merge remote-tracking branch 'upstream/master' 2018-07-29 16:08:12 -04:00
Sven 565e916ef9 add "reload game-specific cheats" option to cheats menu 2018-07-29 15:55:40 -04:00
Twinaphex 58dd8a1917 Merge pull request #7029 from alfrix/spanish
Spanish terminology changes
2018-07-29 20:31:25 +02:00
Alfredo Monclus 7426701b2f Anulaciones a Personalizaciones 2018-07-29 15:06:01 -03:00
Alfredo Monclus 2516b7ad1e Ranura a Posición 2018-07-29 14:07:49 -03:00
twinaphex 7131b969d8 (Android) Buildfixes 2018-07-29 19:04:53 +02:00
Twinaphex 9b79d150b4 Merge pull request #7028 from Skarsnik/master
Fix a bug in the READ_CORE_RAM command of the network interface and add a VERSION command
2018-07-29 18:23:43 +02:00
Twinaphex 77095247cc Merge pull request #7027 from RetroSven/master
save/load from cheat_dir/core_name/game_name.cht ; only save to cheat…
2018-07-29 17:14:05 +02:00
Twinaphex 7ea94f57f6 Merge pull request #7026 from alfrix/spanish
Update Spanish
2018-07-29 17:12:47 +02:00
Sven 0442aa5a31 save/load from cheat_dir/core_name/game_name.cht ; only save to cheat file when there are >0 cheats 2018-07-29 10:48:41 -04:00
Alfredo Monclus 18646e3af0 Update Spanish 2018-07-29 11:20:46 -03:00
Sylvain Colinet 011cb61782 Added a version command 2018-07-29 15:15:29 +02:00
Sylvain Colinet ef43e171ce Network command interface : Fix the READ_CORE_RAM command to not crash when asking for size over 78 2018-07-29 14:49:31 +02:00
Brad Parker 2faa250174 Qt: throttle status bar messages 2018-07-28 23:15:00 -04:00
Brad Parker fea09f7382 Qt: add right-click menu to delete playlist items 2018-07-28 22:34:00 -04:00
Brad Parker 978edc7acf Qt: always set the current tab on startup 2018-07-28 18:46:51 -04:00
Twinaphex e579842620 Merge pull request #7023 from RetroSven/master
fix bug when accessing memory address cheat setting before cheat syst…
2018-07-29 00:08:38 +02:00
Sven 3c0a8c0c10 fix bug when accessing memory address cheat setting before cheat system initialized ; clean up code in some areas 2018-07-28 17:45:33 -04:00
twinaphex d08f0f1234 CXX_BUILD cleanups 2018-07-28 23:18:44 +02:00
twinaphex 89083fd093 C89 buildfixes 2018-07-28 22:11:56 +02:00
Twinaphex 367d6e7480 Merge pull request #7017 from RetroSven/cheater
Implement robust cheat searching interface with rumble features
2018-07-28 19:01:40 +02:00
bparker06 7c06e6f620 Update CHANGES.md 2018-07-28 13:00:26 -04:00
Twinaphex fb3b5df350 Merge pull request #7022 from bparker06/qt_playlist
Qt: ability to add/delete playlists and drag&drop files into a playlist
2018-07-28 18:29:07 +02:00
Brad Parker 8835e2d9a2 Qt: add delete key option to list/grid view to remove playlist items 2018-07-28 11:48:24 -04:00
Brad Parker c883a81c42 Qt: only allow dropping files onto center list/grid view 2018-07-28 10:39:21 -04:00
Tatsuya79 963e19b42b Update ui_qt_themes.h (#7021)
* Update ui_qt_themes.h

* Update ui_qt_window.cpp
2018-07-28 07:54:25 -04:00
Brad Parker 489601fadb Qt: allow right-click in empty portion of playlist widget 2018-07-27 23:52:27 -04:00
Brad Parker 45d38dcccf Qt: add dialog to choose core/database for new playlist entries 2018-07-27 23:45:48 -04:00
twinaphex 20335cd2b9 Add Hakchi files 2018-07-27 19:26:15 +02:00
Twinaphex d802a7eaab Merge pull request #7018 from altiereslima/master
Update portuguese translation
2018-07-27 14:37:06 +02:00
altiereslima 0f63d1f851 Update portuguese translation 2018-07-27 04:54:07 -03:00
Brad Parker fcdeebe672 Qt: initial drag&drop to add playlist entries. no scanning or filtering yet 2018-07-26 23:35:17 -04:00
Sven c750235414 Merge branch 'master' into cheater 2018-07-26 19:40:20 -04:00
Brad Parker be952a9d14 Qt: add options for new/delete playlist 2018-07-26 11:23:51 -04:00
Brad Parker e9c4192e9b Qt: fix grid label text getting cut off on Windows, do not change size of grid items when selected 2018-07-26 11:14:01 -04:00
Brad Parker 0e86c664ce Qt: add tooltips to show entire grid label text 2018-07-25 19:52:08 -04:00
Brad Parker 4b712fa750 Qt: elide grid label text 2018-07-25 19:41:54 -04:00
Sven 5f35249216 Implement robust cheat searching interface with rumble features 2018-07-25 19:19:14 -04:00
Brad Parker 665628e6c0 Qt: add separate settings for max list/grid entries 2018-07-25 15:24:26 -04:00
Brad Parker 065318eb39 Qt: set default limit for "all playlists" to 5000, use retro_assert instead of assert 2018-07-25 08:44:25 -04:00
twinaphex d6b273f60e Add retro_assert.h 2018-07-25 12:24:07 +02:00
Brad Parker 5ff77d1833 Qt: better border drawing across styles, add option for max entries in "all playlists" 2018-07-25 01:43:57 -04:00
Brad Parker f0b0be898a Qt: draw border around selected grid item 2018-07-25 00:29:48 -04:00
Brad Parker d17c17085c Qt: hook up search box to grid view 2018-07-24 17:07:17 -04:00
Brad Parker c7052f67df update CHANGES.md 2018-07-24 15:10:29 -04:00
Brad Parker baa709632d Qt: sort grid entries by name 2018-07-24 15:10:29 -04:00
hizzlekizzle b4cae22396 Merge pull request #7013 from hizzlekizzle/master
update info.plist to v1.7.3
2018-07-24 11:55:59 -05:00
hizzlekizzle ab03c1818a update info.plist to v1.7.3
must have been missed in the previous update
2018-07-24 11:15:03 -05:00
Twinaphex 8535fe11da Merge pull request #7003 from gvbr/runahead
Runahead: ensure prefixed second-instance temp directory on linux
2018-07-24 15:57:47 +02:00
Twinaphex ccb87f3a96 Update CHANGES.md 2018-07-24 15:02:42 +02:00
Twinaphex 70a24ae421 Merge pull request #7012 from TheOfficialFloW/patch-1
Use sceCtrlIsMultiControllerSupported to detect
2018-07-24 15:02:20 +02:00
TheOfficialFloW ef10b7897d Use sceCtrlIsMultiControllerSupported to detect 2018-07-24 10:12:15 +02:00
Twinaphex 6150bd9772 Merge pull request #7010 from bparker06/qt_grid
Qt: initial working grid view
2018-07-23 17:45:43 +02:00
Twinaphex 3aac9a1693 Update CHANGES.md 2018-07-23 17:45:30 +02:00
twinaphex 6cee45ab99 Don't bake in HAVE_STRIPES by default 2018-07-23 17:42:57 +02:00
twinaphex a740d73d21 Don't set MENU_STRIPES as default 2018-07-23 17:42:15 +02:00
Brad Parker b52995dd30 Merge branch 'master' into qt_grid 2018-07-23 11:18:26 -04:00
Brad Parker c8a814ae40 Qt: hook up grid view click/doubleclick events 2018-07-23 11:17:58 -04:00
Twinaphex 48a722f4bc Merge pull request #7009 from kurumushi/patch-1
Add imc0: mount for ps vita
2018-07-23 16:53:12 +02:00
kurumushi bbe1dcd48f Add imc0: mount for ps vita
This allows using the internal storage of the ps vita 2000 model when it's mounted on imc0: instead of ux0:
2018-07-23 23:11:54 +09:00
Brad Parker 1293447aab Qt: hide progress properly when done showing "all playlists" if user only has a single playlist 2018-07-23 09:44:24 -04:00
Twinaphex e5741eb9b2 Merge pull request #7008 from yoshisuga/issue-6751
issue 6751: read input of overlay for remapped keyboard keys
2018-07-23 04:32:21 +02:00
Brad Parker f78337e02e Qt: add progress bar for grid view loading 2018-07-22 22:05:57 -04:00
Brad Parker 75ce796c34 Merge branch 'master' into qt_grid 2018-07-22 20:03:55 -04:00
twinaphex bea736865b Add some logs 2018-07-23 00:10:35 +02:00
Yoshi Sugawara 0a710564e1 issue 6751: read input of overlay for remapped keyboard keys 2018-07-22 11:32:52 -10:00
twinaphex 6ae4350883 (XMB) Add back XMB ribbon - was probably not meant to be removed 2018-07-22 21:18:11 +02:00
twinaphex 454dbc6185 Change this to MENU_STRIPES 2018-07-22 21:14:30 +02:00
twinaphex 7403cfad99 (Stripes) Buildfix 2018-07-22 20:54:59 +02:00
Twinaphex c2d3727c09 Merge pull request #7007 from libretro/stripes
[WIP] Stripes menu
2018-07-22 20:14:50 +02:00
Rob Loach aba179a910 Merge branch 'master' into stripes 2018-07-22 13:30:47 -04:00
twinaphex 9c0ed0f2c4 Don't use core profile GLSL shaders for OpenGLES 2018-07-18 10:06:30 +02:00
gvbr 0addd1aca4 Runahead: ensure prefixed second-instance temp directory on linux 2018-07-17 20:06:18 -07:00
Brad Parker 7e609d6a05 fix some config entries not being saved 2018-07-16 23:01:21 -04:00
Twinaphex b878a94f76 Merge pull request #6998 from bparker06/config_sort
sort config file variables
2018-07-16 06:47:53 +02:00
Brad Parker 62e89974af sort config file variables 2018-07-16 00:15:49 -04:00
twinaphex eb345019c2 Don't implement bind_block/flush_block for drivers that
don't implement it
2018-07-15 20:16:40 +02:00
Twinaphex 5159f71cf5 Update CHANGES.md 2018-07-15 14:43:31 +02:00
twinaphex ea09c29e04 Update implementations for other input drivers - not all input
drivers support this yet
2018-07-15 14:34:02 +02:00
twinaphex 9a1ac6d77b (rwebinput) Fix game focus toggle 2018-07-15 14:22:16 +02:00
twinaphex 13431c7cbf (udev) Fix game focus toggle for udev input driver 2018-07-15 14:20:26 +02:00
twinaphex 98190294db (winraw_input) Fix game focus toggle for winraw_input 2018-07-15 14:18:35 +02:00
twinaphex d50850762b Fix game focus toggling for DInput driver 2018-07-15 14:17:10 +02:00
twinaphex 311b454a2c Change return value to true instead for command_event_save_core_config 2018-07-15 05:58:01 +02:00
twinaphex 675b8bb9e2 Cleanup some code in command_event 2018-07-15 05:50:08 +02:00
Twinaphex a34e29c037 Merge pull request #6990 from stuartcarnie/sgc-metal
fix(Cocoa): Fix blank screen after full screen toggle; window focus
2018-07-15 04:46:59 +02:00
Stuart Carnie 0291c41afa fix(Metal): Fix blank screen after full screen toggle; window focus 2018-07-14 11:18:21 -07:00
Twinaphex a68a22081c Merge pull request #6989 from Dwedit/win32_message_loop_threaded_video_fix
Move win32 message loop, now compatible with threaded video
2018-07-14 06:12:07 +02:00
Dwedit fa00eda625 Relocation of Win32 Message Loop Fix is now tied to whether threaded video is enabled or not
Menu bar is removed if threaded video is enabled, due to code currently being unsafe when using threaded video.
2018-07-13 22:34:03 -05:00
twinaphex d6c5c7f208 Pre-MSVC 2013 did not support PRIu32, add workaround 2018-07-14 05:29:17 +02:00
twinaphex 0df98a53a6 Use video_driver_is_threaded_internal from within gfx/video_driver.c 2018-07-14 05:24:28 +02:00
twinaphex cc473a25b9 Add video_driver_is_threaded 2018-07-14 05:23:03 +02:00
twinaphex 0d39701145 Get rid of double void argument 2018-07-14 00:54:14 +02:00
twinaphex 5ba2a621c0 Silence warnings 2018-07-14 00:45:16 +02:00
twinaphex 600c2c1ca1 Simplify menu_display_font 2018-07-14 00:39:46 +02:00
twinaphex abc6eb7d8c Revert "Re-revert this - causes issues with toggling fullscreen with threaded"
This reverts commit 52a55695ce.
2018-07-14 00:22:52 +02:00
twinaphex 4758caea74 Commenting this out for now - this causes crashes with
toggling fullscreen in threaded video mode with the GL driver
2018-07-14 00:21:27 +02:00
twinaphex 52a55695ce Re-revert this - causes issues with toggling fullscreen with threaded
video mode and GL driver
2018-07-14 00:10:21 +02:00
twinaphex 76cbd54420 Merge branch 'master' of https://github.com/libretro/RetroArch 2018-07-14 00:02:14 +02:00
twinaphex 38a35e53fd Revert "Move Message loop call to right before video_driver_get_status call"
This reverts commit 838dcc8a5a.
2018-07-14 00:01:25 +02:00
Twinaphex 308b053fee Merge pull request #6982 from meleu/patch-2
CHANGES: added cheevos related stuff
2018-07-14 00:00:50 +02:00
Twinaphex 279c635b91 Merge pull request #6985 from RetroSven/rewind_buffer_size_ui
implement a way to set rewind_buffer_size via the UI
2018-07-13 22:38:11 +02:00
Sven 83da70586e implement a way to set rewind_buffer_size via the UI 2018-07-13 16:12:09 -04:00
Brad Parker 367689a3f9 add enum for 21:9 aspect 2018-07-13 15:30:48 -04:00
Brad Parker 637ded4ef1 add 21:9 aspect ratio 2018-07-13 15:29:07 -04:00
meleu e160c70950 CHANGES: added cheevos related stuff 2018-07-13 08:12:01 -03:00
Twinaphex 7dcc99980a Update CHANGES.md 2018-07-13 12:20:55 +02:00
Twinaphex 11244d78b0 Merge pull request #6981 from casdevel/dinput
Add dinput rumble support
2018-07-13 12:20:28 +02:00
Twinaphex 06318e3dd9 Merge pull request #6980 from stuartcarnie/sgc-metal
fix(Metal): Render search box correctly
2018-07-13 10:27:42 +02:00
Stuart Carnie 13a9aca88a fix(Metal): Render search box correctly 2018-07-12 23:15:24 -07:00
Twinaphex 36494d622a Merge pull request #6979 from stuartcarnie/sgc-metal
fix(Metal): Various Metal fixes
2018-07-13 06:36:28 +02:00
Stuart Carnie 167ad3b57d fix(Metal): Various Metal fixes
* OSD message background
* clear glui background
* add Metal to configuration
* added optional config to compile Metal build without OpenGL
* fixed fill_pathname_join_delim; if out_path and dir are same, don't
  strlcpy, as the results are undefined.
2018-07-12 21:33:18 -07:00
Brad Parker dbfccb25dd sixel: fix context init 2018-07-12 22:59:05 -04:00
Twinaphex 42c4e8c687 Merge pull request #6978 from webgeek1234/android_url
Fix android armeabi and x86_64 core updater urls
2018-07-13 04:22:12 +02:00
Aaron Kling dc807f25cf Fix android armeabi and x86_64 core updater urls 2018-07-12 20:06:03 -05:00
Brad Parker f8ea5cfd8d update CHANGES.md 2018-07-12 17:24:52 -04:00
Brad Parker 7e1074c40a sixel: add missing menu display driver 2018-07-12 17:24:52 -04:00
Twinaphex 44859fc06e Merge pull request #6977 from bparker06/sixel_new
initial SIXEL video driver
2018-07-12 23:06:59 +02:00
Brad Parker ab27b7c85f initial SIXEL video driver 2018-07-12 16:55:08 -04:00
twinaphex 6b5ade4ac3 Should be no more deprecated warnings with core context GL for menu
shaders
2018-07-12 22:03:37 +02:00
twinaphex fab08c9cfb Only load Xinput DLL once 2018-07-12 21:39:18 +02:00
twinaphex 60d7d1c793 Add xmb ribbon simple core shader 2018-07-12 21:34:17 +02:00
twinaphex 140e657d51 (GLSL) Add logging for compiling menu shaders 2018-07-12 21:25:39 +02:00
Twinaphex 7f7493d751 Merge pull request #6975 from yoshisuga/ios11_files
[iOS] Support viewing/opening files in Files app
2018-07-12 06:00:40 +02:00
Yoshi Sugawara 14e79e0a43 support viewing/opening files in Files app 2018-07-11 15:52:11 -10:00
Twinaphex 8a683c1626 Merge pull request #6973 from bearoso/fix-rr
Win32: Fix monitor-reported refresh rate.
2018-07-12 00:39:17 +02:00
Brandon Wright c81aab345c Lock sizes of enum fields at 32 bits. 2018-07-11 16:37:37 -05:00
Twinaphex 7adce0050e Update CHANGES.md 2018-07-11 11:23:21 +02:00
Twinaphex cb137954f9 Update wiiu_audio.c - audio should no longer clip 2018-07-11 11:22:43 +02:00
twinaphex dc55bd13aa Add HAVE_METAL 2018-07-11 03:42:42 +02:00
Twinaphex fd86140514 Merge pull request #6963 from alphanu1/master
casting int to float
2018-07-08 20:24:46 +02:00
alphanu1 f25ef05d52 Merge pull request #78 from alphanu1/alphanu1-patch-73
cast float
2018-07-08 19:19:40 +01:00
alphanu1 755a128d95 cast float 2018-07-08 19:15:24 +01:00
Twinaphex e4a8ef409a Merge pull request #6962 from alphanu1/master
Resolution refresh rate restore bugfix for windows.
2018-07-08 19:29:59 +02:00
alphanu1 46d74971fd Merge pull request #77 from alphanu1/alphanu1-patch-72
Restore refresh fix for windows
2018-07-08 18:18:07 +01:00
alphanu1 045606ce44 Restore refresh fix for windows
The refresh rate is now detect to restore the original desktop resolution.
2018-07-08 18:17:23 +01:00
alphanu1 74eacd5a33 Merge pull request #76 from libretro/master
update
2018-07-08 18:13:05 +01:00
Twinaphex 7fb147e8b3 Merge pull request #6959 from stuartcarnie/sgc-metal
feat(Metal): Full screen support
2018-07-07 17:55:42 +02:00
Stuart Carnie 40a1446c95 feat(Metal): Reload shader preset when Metal driver reinitialized 2018-07-07 07:31:43 -07:00
Stuart Carnie 74e1f24e90 feat(Metal): Full screen support
* I believe there is a race condition where the viewport is not set
  correctly on launch
2018-07-06 23:38:34 -07:00
Stuart Carnie 01df2c5e88 fix(Metal): Check for nil drawable 2018-07-06 23:37:15 -07:00
Twinaphex dc161a1cb3 Merge pull request #6958 from RobLoach/defaced
code: Replace hexspeak code
2018-07-07 06:09:59 +02:00
Rob Loach 0f39ef4247 [#6955] Update hexspeak magic pointer code
Fixes #6955
2018-07-06 23:03:15 -04:00
Twinaphex e8fb22ba47 Merge pull request #6953 from Dwedit/cached_frame_hack2
Invalidate `frame_cache_data` pointer to prevent crash if first frame is paused
2018-07-06 20:36:32 +02:00
Dwedit 41ce61974d A hack to invalidate the frame_cache_data pointer during the following events:
Load Game, Reset, Init, Unload, Unload Game, Video Driver Destroy, Video Driver Free, Video Driver Init

This prevents an invalid pointer from being read if the first frame starts out paused.
2018-07-06 09:53:31 -05:00
twinaphex ceaa0259e5 Merge commit 'c8366b0b0f6ab996adcbcf1ee09a3ed6298e7d4e' 2018-07-06 05:17:39 +02:00
twinaphex c8366b0b0f Squashed 'deps/SPIRV-Cross/' changes from f96c9f9fb4..0f59016635
0f59016635 Merge pull request #636 from KhronosGroup/cfg-refactor
2bf57d6dff Deal with composite constants in variable initializer.
dcddd5326e Add LUT test cases for OpVariable with initializer.
af290ede87 Remove some redundant spvArrayCopy declarations.
8c314112b4 Run format_all.sh.
5582523d9a Add some tests for LUT promotion.
5143695080 Don't need to enclose expression for arrays.
d29f48ef06 Deduce constant LUTs from read-write variables.
b5ed706860 Hoist out variable scope analysis.
c26c41b26b Make the CFGs for all active functions available.
6fdadb9218 Track partial writes as well.
7216129377 Hoist out the inline VariableAccessHandler class.

git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: 0f590166359f4ee35d80040f0965417f482cd6b1
2018-07-06 05:17:39 +02:00
twinaphex 22d6930488 Some MSVC 2010 360 buildfixes 2018-07-06 04:45:52 +02:00
Twinaphex 974aa3c8ac Merge pull request #6951 from Dwedit/message_loop_fix
Move Message loop call to right before `video_driver_get_status` call
2018-07-06 04:42:35 +02:00
Dwedit 838dcc8a5a Move Message loop call to right before video_driver_get_status call 2018-07-05 20:07:01 -05:00
Zoran Vuckovic 544802e1a8 Add dinput rumble support 2018-07-05 20:01:23 +02:00
twinaphex c3d469dd8e Revert "Moved WIN32 message loop out of win32_check_window, and into just before the call to runloop_iterate"
This reverts commit 7108628369.
2018-07-05 02:42:16 +02:00
twinaphex 31e76458f7 Merge commit 'aa9ebf5f29e1a22a5050572353b122915db1451d' 2018-07-05 02:10:00 +02:00
twinaphex aa9ebf5f29 Squashed 'libretro-common/' changes from 1548bee835..b857ce7fc5
b857ce7fc5 Cleanups

git-subtree-dir: libretro-common
git-subtree-split: b857ce7fc55d725246a095f766e2bb82bb1d4ce6
2018-07-05 02:10:00 +02:00
Twinaphex c54532d77d Merge pull request #6950 from stuartcarnie/sgc-macos
fix(macOS): Fix older targets
2018-07-05 01:14:54 +02:00
Stuart Carnie d1712d7c5a fix(macOS): Fix older targets 2018-07-04 15:26:49 -07:00
Twinaphex a96b482d78 Merge pull request #6949 from stuartcarnie/sgc-macos
fix(macOS): Use correct availability macro check
2018-07-04 23:42:00 +02:00
Stuart Carnie d8061ac0e9 fix(macOS): Use correct availability macro check 2018-07-04 14:19:05 -07:00
Twinaphex 95500f5631 Merge pull request #6948 from stuartcarnie/sgc-metal
feat(Metal): Add support for overlays
2018-07-04 22:52:29 +02:00
twinaphex 155f797ccb Merge commit '2da12dca5803c3dcde920a1cff838fd98aecb36f' 2018-07-04 22:51:43 +02:00
twinaphex 2da12dca58 Squashed 'deps/SPIRV-Cross/' changes from e59cc24495..f96c9f9fb4
f96c9f9fb4 Merge pull request #635 from KhronosGroup/fix-631
e044732896 Support OpTypeImage with depth == 2 (unknown) properly.
a6814a405a Merge pull request #630 from KhronosGroup/fix-628
af2d3abd03 Fail more gracefully with some unsupported opcodes.
26107ba200 Fix os.errno issues on Travis.
ee44f6027b Changed OpTypeImage to only flag depth if the op is 1
c863f53cac Merge pull request #627 from KhronosGroup/macro-namespace-fix
9ddbd5aff6 Run format_all.sh.
f1752e58e1 Add basic namespace to internal macros.
d67e586b2e Merge pull request #626 from billhollings/master
9bf226cb05 Fixes for code review of PR 626.
4c5142b9d3 CompilerMSL support larger texel buffers by using 2D Metal textures.
314f39a7c4 Merge pull request #621 from billhollings/master
4beefe756c Fixes from PR 621 code review.
f66507a701 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
0ea5e0549e Merge pull request #615 from JustSid/master
5ac55ee735 Fixed emission of some legacy texture ops without requiring the appropriate extensions
ceec708b89 Added better fallbacks for legacy textureProjLod() and textureProjLodOffset() generation
994f789465 Merge pull request #624 from KhronosGroup/fix-619
33c61d2abe Support branch/loop hints in HLSL.
327fb03677 Merge pull request #623 from KhronosGroup/fix-618
2077478651 Merge pull request #622 from KhronosGroup/fix-620
10dfaf79d5 Support globallycoherent in HLSL.
ffa9133d77 Support ternary expressions in OpSpecConstantOp.
e091031613 CompilerMSL pass builtin struct members into functions.
7607eb6923 Merge pull request #617 from KhronosGroup/fix-612
d94d20f4f3 Deal with some builtins being declared with wrong signedness.
0f62b5dc1e Moved check for depth texture and shadowXY emission completely to legacy_tex_op()
447a253ce7 Simplified check for depth texture
76c8e3c1c4 Merge pull request #616 from KhronosGroup/fix-614
b29629fd46 Add support to remove SPIRV_Cross_BaseInstance uniform.
809631ce21 Mention JSON backend in README.
040204d65c Fix warnings and run format_all.sh.
b4c8c3b9b2 Merge branch 'reflection' of git://github.com/jherico/SPIRV-Cross
f6dad78c99 Added support for shadowXY() sample instructions in legacy GLSL
9ad432463c Prefix integer types with underscore
0ad0f948e1 More PR feedback
3b30202bee Add reflection specific test cases, add reflection testing to test_shaders.sh
8d84a541ac Add specialization constant output in reflection
762040084d More feedback
d0a67ba6a7 Code consolidation, const correctness, faster regression testing
3a825349bc More cleanup
6c88b0048b PR feedback
ee86000529 Cleanup code
709d3c60f2 Working on reflection output
0039cb86fc Merge pull request #613 from KhronosGroup/fix-609
9d31154917 Deal with switch case labels which share a block.

git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: f96c9f9fb4fc7d17991cecb2b2294dce06d08d9c
2018-07-04 22:50:02 +02:00
Stuart Carnie c7b21d5bd6 feat(Metal): Add support to disable display sleep (no screen saver) 2018-07-04 13:13:03 -07:00
Stuart Carnie a19ea2ed07 feat(Metal): Add support for overlays 2018-07-04 13:12:40 -07:00
Twinaphex 4b6d6dd421 Merge pull request #6946 from Dwedit/bom_fix
Fix missing BOM on msg_hash_pl.h
2018-07-04 21:32:45 +02:00
Twinaphex a0b1937584 Merge pull request #6947 from Dwedit/message_loop_fix
Moved WIN32 message loop from win32_check_window to before runloop_iterate
2018-07-04 21:30:11 +02:00
Dwedit 7108628369 Moved WIN32 message loop out of win32_check_window, and into just before the call to runloop_iterate 2018-07-04 14:20:38 -05:00
Dwedit 3deb56690a Fix missing BOM on msg_hash_pl.h 2018-07-04 14:14:01 -05:00
Twinaphex 63a071b85a Merge pull request #6945 from Themaister/master
Vulkan: WSI stability fixes
2018-07-04 21:04:08 +02:00
Hans-Kristian Arntzen 52cb0fe375 Vulkan: Fix crash when we get two create_swapchain errors in a row. 2018-07-04 20:25:03 +02:00
Hans-Kristian Arntzen f1d2dac213 Vulkan: Fix various stability issues with WSI.
Added an ifdef to trigger "hardening" which will return spurious errors
for critical WSI things like acquire next image, queue submit and
surface dimension queries.
2018-07-04 19:45:54 +02:00
Twinaphex c8fc27099d Merge pull request #6944 from stuartcarnie/sgc-metal
feat(Metal): Support vsync enable / disable
2018-07-04 19:08:01 +02:00
Stuart Carnie 048aa16599 feat(Metal): Support vsync enable / disable 2018-07-04 09:50:09 -07:00
Twinaphex 2752651de9 Merge pull request #6941 from stuartcarnie/sgc-metal
fix(Metal): fix XRGBA rendering; no nil texture; undefined stuff bad
2018-07-04 18:08:04 +02:00
Stuart Carnie 844e5e15d0 fix(Metal): fix XRGBA rendering; no nil texture; undefined stuff bad 2018-07-04 08:50:46 -07:00
Twinaphex c0dba89d43 Update CHANGES.md 2018-07-04 15:30:07 +02:00
Twinaphex 5552838e34 Merge pull request #6940 from DEX357/patch-17
Update msg_hash_pl.h
2018-07-04 15:05:02 +02:00
Twinaphex 06d8b1fbaa Merge pull request #6939 from theheroGAC/patch-34
Update msg_hash_it.h
2018-07-04 15:04:54 +02:00
Twinaphex 5575bdb449 Merge pull request #6938 from stuartcarnie/sgc-metal
feat(metal): xmb menus and shader pipeline support
2018-07-04 15:04:44 +02:00
DEX357 17f0ef7dd8 Update msg_hash_pl.h 2018-07-04 12:10:39 +02:00
Stuart Carnie 8a298616aa chore(cocoa): reformat (3 spaces, etc) 2018-07-04 00:24:47 -07:00
Stuart Carnie 5240efc857 chore(Metal): fix compiler warnings when targeting newer macOS versions 2018-07-04 00:24:04 -07:00
Stuart Carnie 30d2192338 fix(Metal): Fix release build crash for misaligned read 2018-07-04 00:16:14 -07:00
theheroGAC 905e9e83c0 Update msg_hash_it.h 2018-07-04 08:27:33 +02:00
Stuart Carnie 44ca1062b0 formatting 2018-07-03 22:32:12 -07:00
Stuart Carnie a0900ec433 feat(Metal): full xmb pipeline support
Menu TODOs:

* understand why ribbon does not look the same as GL
* add clear support to `MenuDisplay` for glui
2018-07-03 22:32:12 -07:00
Stuart Carnie 4a101734a1 More cleanup
* use single render command encoder for display for better performance
* Context handles all rendering and presentation
2018-07-03 22:32:12 -07:00
Stuart Carnie 1c5d94aca1 Improve performance; don't care about previous state ofcolor attachment
Color attachment is being completely overwritten.
2018-07-03 22:32:12 -07:00
Stuart Carnie 5e1f991e32 feat(Metal): initial xmb and glui menu support
TODOs

* menu shader pipeline effects
* refactor / optimize graphics rendering
2018-07-03 22:32:12 -07:00
Stuart Carnie 4135300b04 fix(materialui): Assign scale_factor and rotation to draw 2018-07-03 22:32:12 -07:00
Twinaphex 149f5b73a1 Merge pull request #6937 from DEX357/patch-16
Update msg_hash_pl.h
2018-07-04 00:59:04 +02:00
Twinaphex e0b71de5df Merge pull request #6936 from DEX357/patch-15
Update msg_hash_pl.h
2018-07-04 00:58:56 +02:00
DEX357 7a001a07aa Update msg_hash_pl.h 2018-07-02 20:13:19 +02:00
DEX357 f8f620f268 Update msg_hash_pl.h 2018-07-02 20:01:03 +02:00
Brad Parker 04d5e6368e Merge branch 'master' into qt_grid 2018-07-02 11:52:04 -04:00
Brad Parker c4f34f3c6f update JP translation 2018-07-02 11:51:00 -04:00
twinaphex 30f97ebe52 Add this 2018-07-01 22:22:17 +02:00
Twinaphex 4eb4c7b97d Create internal_cores.h 2018-07-01 21:19:40 +02:00
Twinaphex 39a1e494c5 Update CHANGES.md 2018-07-01 17:00:58 +02:00
Twinaphex 121ff2d4a5 Merge pull request #6931 from DEX357/patch-14
Update msg_hash_pl.h
2018-07-01 16:58:58 +02:00
Twinaphex 9cdf477c59 Merge pull request #6933 from Themaister/master
Vulkan: Try to avoid creating swapchains redundantly.
2018-07-01 16:58:30 +02:00
Themaister f2cae17021 Vulkan: Try to avoid creating swapchains redundantly.
Win32: Only make resize events when needed.
Do not create swapchain unless necessary.
Deal better with Windows WSI workarounds.
2018-07-01 16:21:09 +02:00
twinaphex efe9fc7339 Buildfix 2018-07-01 16:19:10 +02:00
DEX357 bf8e5c2e90 Update msg_hash_pl.h 2018-07-01 13:40:35 +02:00
Twinaphex 928cfacb11 Merge pull request #6930 from DEX357/patch-13
Update msg_hash_pl.h
2018-07-01 13:39:11 +02:00
DEX357 ebabd9486b Update msg_hash_pl.h 2018-07-01 13:34:16 +02:00
Twinaphex c4611f6379 Merge pull request #6928 from Themaister/master
Vulkan: Support multiple displays in VK_KHR_display.
2018-07-01 01:58:28 +02:00
Themaister c4ba8d26a0 Support multiple displays in VK_KHR_display. 2018-07-01 01:21:51 +02:00
Twinaphex a3ae537c02 Merge pull request #6862 from gblues/master
WIIU: cleanups to wiiu bootstrap code
2018-06-30 14:31:22 +02:00
Twinaphex 5366fc1f29 Merge pull request #6926 from fr500/staging
Android fixes
2018-06-30 14:31:06 +02:00
radius 717e45dc52 Add mouse wheel support
enable hold to bind on android

cleanup
2018-06-29 21:12:47 -05:00
radius fef9b63bc0 Revert "Disable ENABLE_TOUCH_SCREEN_MOUSE for now until issues are resolved"
This reverts commit 2b02616512.
2018-06-29 21:12:47 -05:00
David Walters 91dd569a73 fix: keep resetting bind during the hold period 2018-06-29 21:12:46 -05:00
David Walters d73954085a Hold to bind function (disabled with #if 0) 2018-06-29 21:12:46 -05:00
David Walters 70eda90d03 more accurate rarch_timer 2018-06-29 21:12:46 -05:00
David Walters 8a2b23de34 new setting "input_bind_hold" 2018-06-29 21:12:45 -05:00
Brad Parker 04311695aa netplay: always use configured port instead of hardcoding, and don't ask for IP address if one is already set. fixes #6626 2018-06-27 23:03:27 -04:00
Brad Parker 15924e5d9b fix "runtime error: member call on null pointer of type 'struct AppHandler'" 2018-06-27 13:25:13 -04:00
Twinaphex e786afe481 Update config.def.h 2018-06-27 00:25:52 +02:00
twinaphex 8a1c0be83c (Android) Another potential buildfix; define ENABLE_HLSL
(slang_process) Put HLSL/Cg code around ENABLE_HLSL ifdef
(SPIRV-Cross) Make sure macros no longer need to be redefined; make them
unique in both glsl and hlsl files; needed for Griffin builds
2018-06-26 13:18:17 +02:00
twinaphex 3bbf34aa58 Merge branch 'master' of https://github.com/libretro/RetroArch 2018-06-25 23:55:53 +02:00
twinaphex 0230c2f4d8 Merge commit 'a078d40b80103ba083ad04eab625084279e930b3' 2018-06-25 23:55:41 +02:00
twinaphex a078d40b80 Squashed 'libretro-common/' changes from edffe4d147..1548bee835
1548bee835 Update glsm
df7c8aebea Update glsm

git-subtree-dir: libretro-common
git-subtree-split: 1548bee835ab5fa2d120a4859ff653a5f128de1f
2018-06-25 23:55:40 +02:00
Twinaphex f88f7419d7 Merge pull request #6923 from libretro/revert-6922-revert-6882-patch-3
Revert "Revert "(wiiu) Use portlibs zlib and libpng""
2018-06-25 23:26:51 +02:00
Twinaphex 893dbc6bee Revert "Revert "(wiiu) Use portlibs zlib and libpng"" 2018-06-25 23:26:43 +02:00
Twinaphex 7bdf0fd9a6 Merge pull request #6922 from libretro/revert-6882-patch-3
Revert "(wiiu) Use portlibs zlib and libpng"
2018-06-25 22:33:53 +02:00
Twinaphex 3c6c9a8b08 Revert "(wiiu) Use portlibs zlib and libpng" 2018-06-25 22:33:45 +02:00
twinaphex 2ef56e906c Don't define this unless necessary 2018-06-25 21:52:24 +02:00
twinaphex d967cbc879 Add another ENABLE_HLSL ifdef 2018-06-25 21:51:23 +02:00
Twinaphex 0f4744bed7 Merge pull request #6921 from theheroGAC/patch-33
Update msg_hash_it.h
2018-06-25 21:40:39 +02:00
theheroGAC 8017f706d8 Update msg_hash_it.h 2018-06-25 21:38:22 +02:00
twinaphex 9d6de6b60d Buildfix for MSVC 2010 2018-06-25 19:49:41 +02:00
Twinaphex 07d226a76d Merge pull request #6882 from opendata26/patch-3
(wiiu) Use portlibs zlib and libpng
2018-06-25 18:16:59 +02:00
twinaphex 234102d475 (glslang) Buildfix for Android 2018-06-25 16:52:15 +02:00
Twinaphex e10d7d93df Merge pull request #6906 from meleu/patch-1
cheevos: support for ResetIf/PauseIf HitCount - closes #6817
2018-06-24 19:45:07 +02:00
Twinaphex 3bdc7ca352 Merge pull request #6915 from RobLoach/osd-font
freetype: Allow getting OSD Font from Assets Directory
2018-06-24 18:13:18 +02:00
Rob Loach e4fe33f437 freetype: Add comment about assets:// 2018-06-24 12:02:28 -04:00
Twinaphex 8585617f69 Merge pull request #6916 from stuartcarnie/sgc-metal
feat(Metal): font rendering
2018-06-24 17:54:37 +02:00
Rob Loach 8a96062ed0 freetype: Rename to osd-font.tff 2018-06-24 11:19:40 -04:00
Rob Loach da6b7987f1 freetype: Get DejaVuSansMono.ttf from the assets directory 2018-06-24 11:00:21 -04:00
Twinaphex 1504a9ed2d Merge pull request #6914 from DEX357/patch-12
Update msg_hash_pl.h
2018-06-24 16:20:57 +02:00
Stuart Carnie 367c15f488 feat(Metal): font rendering
* FPS and other OSD messages render correctly
* add autoreleasepool around entire render loop to avoid memory leaks
2018-06-23 23:54:23 -07:00
DEX357 e8e6f20f6c Update msg_hash_pl.h 2018-06-24 00:53:52 +02:00
Twinaphex c10aab9830 Merge pull request #6912 from stuartcarnie/sgc-metal
More metal resize, stability improvements
2018-06-24 00:28:22 +02:00
Stuart Carnie eacd52f009 fix(Metal): improve shader stability
* use MTKView, which handles layer and scaling changes automatically
  between displays
2018-06-23 13:33:27 -07:00
Stuart Carnie ee8d82dcfe add additional project files 2018-06-23 13:33:27 -07:00
meleu 536638eaf6 support for ResetIf/PauseIf HitCount 2018-06-23 17:25:16 -03:00
Jean-André Santoni 2a2e732a79 (Menu) Add a setting to hide the shutdown option 2018-06-23 12:01:13 +07:00
Jean-André Santoni ab3d8979ea (Menu) Hide overlays, rewind and latency in kiosk mode 2018-06-23 11:18:37 +07:00
twinaphex 7566e09970 Squashed 'libretro-common/' changes from c3c0facc97..edffe4d147
edffe4d147 Buildfix for 3DS - implicit declaration of isspace et al.

git-subtree-dir: libretro-common
git-subtree-split: edffe4d1470ae6b846e420392d324c1b2b14281a
2018-06-22 17:43:11 +02:00
Jean-André Santoni 6868670136 (XMB) Code cleaning 2018-06-22 22:31:06 +07:00
Jean-André Santoni 1ff15fd071 (Lakka) Flag MIDI menu as advanced 2018-06-22 22:25:07 +07:00
Jean-André Santoni bea3822331 (Lakka) Flag more settings groups with SD_FLAG_LAKKA_ADVANCED 2018-06-22 22:22:46 +07:00
Jean-André Santoni cfa53dd694 Update vscode includePath 2018-06-22 22:14:52 +07:00
twinaphex e8b0d6974d Merge commit '48cb38619ff8bbc5ff3c0df93704b3297047a8fe' 2018-06-22 15:00:02 +02:00
twinaphex 48cb38619f Squashed 'libretro-common/' changes from 999e69a9f1..c3c0facc97
c3c0facc97 whoops, cute bug
fc2866b999 no real point leaving these unimplemented, they're easy
bd1d5800db Add filestream_scanf

git-subtree-dir: libretro-common
git-subtree-split: c3c0facc97d3a4c065c72961b5ab165b99d3153c
2018-06-22 15:00:02 +02:00
twinaphex e3d406808f Merge branch 'master' of https://github.com/libretro/RetroArch 2018-06-21 21:54:34 +02:00
twinaphex 8baffb3fdf OPtionally compile hlsl files 2018-06-21 21:53:44 +02:00
Twinaphex 3df1fd7993 Update CHANGES.md 2018-06-21 10:20:31 +02:00
Twinaphex ad593a1eae Update CHANGES.md 2018-06-21 08:43:49 +02:00
Twinaphex 58351230d8 Update CHANGES.md 2018-06-21 08:39:41 +02:00
Twinaphex 511044270b Fix iOS build 2018-06-21 08:37:08 +02:00
twinaphex 3799a33efa Silence warnings 2018-06-21 08:31:08 +02:00
twinaphex 837cf84fc8 Put this around an ifdef 2018-06-21 08:26:27 +02:00
Twinaphex c0beef8365 Merge pull request #6905 from stuartcarnie/sgc-metal
fix(Metal): fix project file to include .metal resources
2018-06-21 08:25:43 +02:00
twinaphex 863204b343 Merge commit 'c68f2796b95838412610023611398d7c9968a3f3' 2018-06-21 08:22:10 +02:00
twinaphex c68f2796b9 Squashed 'libretro-common/' changes from c9b117d5b8..999e69a9f1
999e69a9f1 More warning fixes

git-subtree-dir: libretro-common
git-subtree-split: 999e69a9f1c3818b6018f39579421e7e52c6bb1b
2018-06-21 08:22:09 +02:00
twinaphex d14a3f0d1f Merge commit '5c25cc90765cbf6ad7f01c0b635c72595bc7f457' 2018-06-21 08:18:08 +02:00
twinaphex 5c25cc9076 Squashed 'libretro-common/' changes from 3d989dc968..c9b117d5b8
c9b117d5b8 Silence more warnings

git-subtree-dir: libretro-common
git-subtree-split: c9b117d5b8135acd6c175e93931f39067e7d0ec4
2018-06-21 08:18:07 +02:00
twinaphex 0d8729daa6 FIx warning 2018-06-21 08:12:02 +02:00
twinaphex 944cac8352 Squashed 'libretro-common/' changes from 156677b98e..3d989dc968
3d989dc968 Cleanups
dabdf7c539 Updates

git-subtree-dir: libretro-common
git-subtree-split: 3d989dc968fa529e91d8e8e4f42f8909451aa7a3
2018-06-21 08:07:19 +02:00
twinaphex 697531dbdd Merge commit '944cac83520c99e1ddf3d8cd3bf25990c8746d14' 2018-06-21 08:07:19 +02:00
Stuart Carnie 3462fd248c fix(Metal): fix project file to include .metal resources 2018-06-20 22:58:36 -07:00
twinaphex b05026b69f Buildfix 2018-06-21 07:56:40 +02:00
Twinaphex fd11b205da Silence bunch of warnings 2018-06-21 07:52:01 +02:00
Twinaphex 2bdffff435 Silence more warnings 2018-06-21 07:34:27 +02:00
Twinaphex 467aa30131 Cleanups 2018-06-21 07:26:05 +02:00
Twinaphex cede1e38f2 Update CHANGES.md 2018-06-21 07:09:46 +02:00
Twinaphex cd174c899a Merge pull request #6904 from stuartcarnie/sgc-apple-metal
feat(apple): Metal support for macOS
2018-06-21 06:44:03 +02:00
Stuart Carnie 411bcf8bdd feat(apple): Metal support for macOS
* includes rgui
* shader support

This is a work-in-progress and there are some bugs and visual artifacts
still to be fixed.
2018-06-20 21:33:45 -07:00
Twinaphex 1a091a83af Merge pull request #6902 from DEX357/patch-11
Update msg_hash_pl.h
2018-06-21 05:47:40 +02:00
DEX357 05464a469e Update msg_hash_pl.h 2018-06-20 19:57:44 +02:00
twinaphex b10f1faf7a Updates 2018-06-20 16:29:14 +02:00
twinaphex 8232265c8f Change MIDI submenu 2018-06-20 16:27:00 +02:00
twinaphex fb2d27931d Fix some warnings 2018-06-20 16:21:53 +02:00
twinaphex f8cad6f565 Update glslang 2018-06-20 10:47:08 +02:00
twinaphex 1f571be61d Fix warning 2018-06-20 10:24:10 +02:00
twinaphex 684b2f5722 Get rid of glslang-old 2018-06-20 10:23:00 +02:00
twinaphex abf7bf877e (glslang) Buildfix #1 2018-06-20 10:22:08 +02:00
twinaphex c15950a80c Merge commit 'db3f820301d386847befd1f43da650b2748e3e57' as 'deps/glslang-new' 2018-06-20 10:07:00 +02:00
twinaphex db3f820301 Squashed 'deps/glslang-new/' content from commit 5fe506a8ba
git-subtree-dir: deps/glslang-new
git-subtree-split: 5fe506a8ba0ce5629004d593da16db7f3f57c58b
2018-06-20 10:07:00 +02:00
twinaphex 0328298474 Squashed 'deps/SPIRV-Cross/' changes from c9516fa917..e59cc24495
e59cc24495 Merge pull request #607 from billhollings/master
ac57a30ad6 Regenerate MSL shaders to fix conflicts from merge.
ab2ea93e35 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
9b4defe202 CompilerMSL support matrices & arrays in stage-in & stage-out.
285f214071 Merge pull request #605 from KhronosGroup/unpack-regular-operations-msl
58fab58e5e Do not unpack transposed matrices.
192a882df3 Also unpack regular unary/binary operations on MSL.
dc565136fb Merge pull request #604 from KhronosGroup/fix-603
b86bd0a265 Unpack expressions when used in functions on MSL.
c5b6ba239c Merge pull request #599 from KhronosGroup/fix-295
f1e8555801 Emit matrix layouts in structs directly.
b1196f2ace Merge pull request #598 from KhronosGroup/fix-594
6bcc890e63 Sanitize underscores in general, not just for members.
6fea07f2fd Merge pull request #597 from KhronosGroup/fix-595-596-592
3a9b045dc3 Various maintenance fixes.
0a83bacf3e Merge pull request #593 from KhronosGroup/old-clang-compile
2a1ab4108b Fix compile on older clang.
6ef1c49ec0 Merge pull request #591 from KhronosGroup/fix-578
04b149feb0 Fix image load/store on cube arrays in MSL.
8bac5c09f3 Merge pull request #590 from KhronosGroup/fix-581
f65120c147 Deal with packed expressions in more scenarios.
db1ed375b0 Merge pull request #589 from KhronosGroup/fix-580
280fb93204 Add test for reading SSBO from fragment shader on MSL.
a1b3964cbd Run format_all.sh.
6b3da831be Declare read-only SSBOs as const device in MSL.
08336e7bbb Merge pull request #588 from KhronosGroup/pr-583
46bf17c5d3 Add SREM tests for HLSL/MSL.
7cba89b4a5 Add reference files for SREM.
6b144cc609 handle OpSRem
e792cd6160 no expression type for OpSRem
f1eacba244 Merge pull request #587 from zeux/master
91fd41816f Fix textureGrad compilation for legacy targets
8cc1fdbb30 Merge pull request #586 from KhronosGroup/fix-584
ba15daee33 Add support for inheriting bindings for combined image samplers.
f929c361c5 Merge pull request #577 from KhronosGroup/fix-575
bcaae84c76 Deal with scoping for Private variables.
26b887ec99 Fix atomic_compare_exchange_weak_explicit.
62c6d2d498 Merge pull request #576 from KhronosGroup/fix-574
fb7181bff1 Run format_all.sh.
c643addacd Only reflect spec constant if it actually has a constant ID.
991b655c72 Declare OpSpecConstantOp up-front on relevant targets.
0617b98613 Run format_all.sh.
3951b9456f Fix SpecConstantComposite if input is SpecConstantOp.
c74dc4578a Merge pull request #572 from KhronosGroup/vulkan-glsl-sampler-mediump
01080365fa Use mediump on images in --vulkan-semantics as well.
9d370aca58 Merge pull request #571 from KhronosGroup/fix-570
7eba247864 Handle inout properly with split access chains.
97e38bcd38 Merge pull request #569 from KhronosGroup/fix-566
b71f5dfc0c Fix split access chains for builtin arrays.
e4694a8403 Merge pull request #568 from KhronosGroup/fix-567
903b798da7 Fix GCC 8.1 build.
d3b966322d Merge pull request #565 from pmuetschard/master
aced6058b4 Don't limit GLSL identifiers with HLSL keywords.
2792f8f3f2 Merge pull request #564 from KhronosGroup/fix-563
85a8f066f4 Do not use RMW rewrite for matrices.
04f0a08cfc Merge pull request #562 from KhronosGroup/fix-561
d2df067dd4 Force recompile if we add row-major transpose functions in MSL.
7b95168c3d Do not clear spv_function_implementations on MSL.
9279750a1d Merge pull request #560 from KhronosGroup/fix-557
17be3c652f Deal with fake overloads when using combined image samplers.
e80d6e0142 Merge pull request #559 from KhronosGroup/fix-558
3187d89c31 Reduce test case ... MSL can't deal with certain unusual cases yet.
f3e810b8b3 Fix OpCompositeConstruct with arrays in MSL.
9d43e9c02a Merge pull request #556 from billhollings/master
ba1026b899 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
57213cb7ca Compiler MSL default gather offset when component specified.
1ebccb4466 Mention Wiki in README.
8f07df016b Merge pull request #555 from KhronosGroup/fix-553
7e23e69f2a Run format_all.sh.
47081f810a Fix GatherDref on GLSL.
6b478c928d Merge pull request #554 from KhronosGroup/query-fixes
40bbf6be7a Build combined dummy samplers for Query functions without sampler as well.
d93807a625 Deal with OpImageFetch without explicit LOD.
454691f434 Merge pull request #547 from KhronosGroup/op-image-usage-tracking
aaf397cd1f Fix usage tracking issue for OpImage.
bbf6b60350 Merge pull request #546 from KhronosGroup/fix-545
893ed379d5 Remove some stale test files.
cd442b9c2f Clean and fix some issues with test_shaders.py.
18958ecccb Add test for combined-sampler-reuse on GLSL.
0280800a8f Fix case where SampledImage would get flushed to temporary.
a090907607 Merge pull request #543 from KhronosGroup/fix-542
8b75e46433 Fix some formatting issues.
f56433b802 Add new tests for combined arrays of sampler + image.
a39eb4826b Combined array of images is starting to work ...
1478847122 Change AppVeyor badge link to the correct one.
d559a8df39 Add AppVeyor status badge.
dd39d36726 Merge pull request #540 from KhronosGroup/appveyor
cc82d14ee8 Add appveyor script.
d0c829b580 Add no-opt to CTest, make test_shaders.py faster when FXC is missing.
2804d9acd7 Merge pull request #539 from KhronosGroup/fix-533
e351e5c565 Use convert_to_string for lod clamp.
e30a94225f Complete MSL constexpr samplers.
64f9461d72 Check for array of samplers.
df58debf7a Add support for constexpr samplers in MSL.
3a8335eee0 Merge pull request #537 from KhronosGroup/fix-535
b9cd3dcd7f Run format_all.sh.
e930f79e2e Be a bit smarter about uint on legacy targets.
2684054bbd Merge pull request #538 from KhronosGroup/fix-io-block-location
b06c1af9b3 Distinguish between enhanced_layouts and SSO requirements.
28c9be8a23 Unsigned integers are disallowed on legacy targets.
7796a9f3ec Merge pull request #531 from KhronosGroup/subgroup
c266429be9 Partially implement subgroup ops for HLSL SM 6.0.
146ea76f52 Add test shader for subgroup.
e1ccfd5dbb Implement all of subgroup.
f6c0e53f58 Start adding Vulkan 1.1 subgroup support to GLSL.
489e04e09e Merge pull request #530 from KhronosGroup/fix-529
9c2761f69a Run format_all.sh.
8175e2e200 Fix depth compare textures when used in functions without argument.
edac731360 Merge pull request #528 from msiglreith/fix_root_constants_name
6bdd775936 Merge pull request #526 from taisei-project/strip-uniform-location
f260c452f7 Fix naming of root constants
4a43024dba Strip uniform locations for ESSL < 3.00 and GLSL < 430
9b8c2c4654 Merge pull request #524 from KhronosGroup/fix-512-523
694b314f87 Support empty structs.
31a3fdf4ee Decouple public require_extension and the internal use of the function.
d0133c5dd9 Merge pull request #509 from KhronosGroup/hlsl-semantic-counter-buffer
d8cdab2f57 Add test shader for semantic decoration.
05c66f9cac Add test shader which uses counter buffer extension.
215d3ca0a4 Add support for new HLSL semantic/counter buffer decorations.
7f84537350 Merge pull request #519 from KhronosGroup/fix-507
ac81a0ce68 Use declared binding in SPIR-V as a fallback for explicit MSL binds.
e8ca39b7b5 Add test for sampler image arrays.
382101bd05 Run format_all.sh.
1d082e9b79 Fix passing arrays of combined image samplers in HLSL.
5827dd54ea Support array of images and samplers in MSL.
81eb72a9a0 Ignore LOD when sampling 1D textures in MSL.
69ffd918a6 Merge pull request #522 from KhronosGroup/fix-515
938040be0b Only disable binding layout for UBOs.
fe697a80f5 Emit classic uniform for UBO in GLSL 1.30.
65be63fd04 Merge pull request #521 from KhronosGroup/fix-516
a6e211e00b Support dual-source blending on GLSL and MSL.
a1e30c8c2b Merge pull request #520 from KhronosGroup/fix-517
3229e6efb6 Add more illegal name replacement in MSL.
761b06bc73 Merge pull request #514 from KhronosGroup/fix-510
a901b4c814 Remove redundant temporary sort.
c1947aa447 Update glslang/SPIRV-Tools on Travis.
35f64d03bb Fix name aliasing for temporary variables.
5161d5ed3b Merge pull request #505 from KhronosGroup/msl-array-mrt
719cf9d42f Run format_all.sh.
8e90382675 Properly flatten MRT outputs in MSL.
6e6ca0b237 Attempt MRT-as-array in MSL.
fbfe13657a Merge pull request #502 from KhronosGroup/update-glslang-spirv-tools
4f348a9807 Update README and update_test_shaders.sh.
b46910e9f5 Access chain into packed vectors as arrays.
a6afda650f Add newly moved reference files.
cdbd376c42 Try building debug on Travis.
e7bf8d2f48 Refactor out noopt shaders to their own folders.
1a4a36b6cd Experiment a bit more with Travis.
5a746ba941 Split checkout and build on Travis CI.
4979d10b54 Implement packHalf2x16/unpackHalf2x16 on MSL.
ae2680c898 Make sure ballotARB inherits expression dependencies.
938c7debed Handle control-dependent temporaries.
012377f811 Refactor block IO emission to use bitset.
955eac522b Make use of the handy scripts for Travis as well.
9fbd8b789e Update tests for latest SPIRV-Tools and glslang.
e8e58844d4 Rewrite everything to use Bitset rather than uint64_t.
29315f3b3f Merge pull request #498 from JustSid/master
e66fd6c2a0 Added generation of the textureXYZGrad() legacy GLSL instruction
0f9cb0da0d Merge pull request #497 from KhronosGroup/fix-489
9a52713d77 Run format_all.sh.
a803e5ae38 Deprecate set_options()/get_options() interface, replace it.
236b2fa47c Merge pull request #496 from KhronosGroup/fix-494
e3b8e9455c Add test shader where a phi variable invalidates a temporary.
1de74fdabd Explicitly emit break/continues in selection branches.
e0efa737ca Expand the implementation of inherit_expression_dependencies.
01fbb3a342 Merge pull request #495 from KhronosGroup/fix-493
28cccc3dbb Emit complex continue blocks "properly".
54549a624f Add some test shaders for special merge methods.
8d557d4103 Handle cases where merge selects as also loop merge or continue blocks.
8c8a93f745 Merge pull request #492 from KhronosGroup/fix-488
922420e346 Disallow arrays and structs from becoming loop variables.
2e5d06d1ce Merge pull request #485 from KhronosGroup/fix-484
bdabd0c73a Disable double test in MSL FP16 tests.
723bec5d33 frexp/ldexp fails in debug builds, workaround temporarily.
0780820a7b Skip interpolateAt tests with FP16.
ac0e93f392 Run format_all.sh.
18ad1be3c3 Add FP16 test for MSL as well.
47d94ff8d9 Add FP16 to HLSL.
770ed25f29 Merge pull request #487 from KhronosGroup/fix-486
15a941cd3d Add builtin GLSL functions to blacklist.
d9da2db442 Some compat fixes for MSL and Half.
547278da12 Test denormal fp16 constants.
24dfe496c2 Run format_all.sh.
05348a66ca Add test shader for FP16 support.
bc0f698df3 Fix packing alignments for float16.
91f85d3412 Begin adding float16_t support to GLSL.
b0a2de5b63 Merge pull request #483 from KhronosGroup/fix-466
38d9d8af68 Add some more MSL test shaders.
5fe79eb59c Update tests.
294259e2f1 Fix type aliasing on MSL.

git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: e59cc244958af6059f7bd1d16d833e17409dec37
2018-06-20 09:32:45 +02:00
twinaphex 4fb79dfffe Merge commit '032829847454432a4b149452d6354c13c5888239' 2018-06-20 09:32:45 +02:00
twinaphex e3d04fd14a This spams too much, disable this 2018-06-20 07:31:05 +02:00
Twinaphex cdbdd04cda Merge pull request #6901 from RobLoach/gtest-submodule
discord: Remove the gtest submodule
2018-06-20 07:24:49 +02:00
Rob Loach e45692b70d rapidjson: Remove the gtest folder 2018-06-20 00:23:15 -04:00
twinaphex 2367c33887 Mpv integration now works 2018-06-20 06:17:47 +02:00
twinaphex d27b6265a0 Add more HAVE_MPV ifdefs 2018-06-20 04:50:58 +02:00
twinaphex 0286829348 Start adding HAVE_MPV ifdefs 2018-06-20 04:29:31 +02:00
twinaphex e51d8b6b0f Update mpv-libretro.c 2018-06-20 03:53:37 +02:00
twinaphex f9f15dc5c5 Update mpv libretro core 2018-06-20 03:46:53 +02:00
Twinaphex dde650074a Update CHANGES.md 2018-06-19 14:31:49 +02:00
Twinaphex 7385cc3d23 Merge pull request #6899 from DEX357/patch-10
Update msg_hash_pl.h
2018-06-19 14:31:06 +02:00
DEX357 c7d565c6c2 Update msg_hash_pl.h 2018-06-19 14:03:48 +02:00
twinaphex c4da475384 Buildfix 2018-06-19 11:59:41 +02:00
Twinaphex 76d540a075 Merge pull request #6898 from libretro/android_susperf_setting
android: add configurable setting for Sustained Performance Mode
2018-06-19 09:30:30 +02:00
Brad Parker aa083d1e4c android: add configurable setting for Sustained Performance Mode 2018-06-19 02:50:33 -04:00
twinaphex 981b0eec91 Take this out 2018-06-19 06:28:38 +02:00
twinaphex c1f16e156e Add Power Management submenu 2018-06-19 06:23:38 +02:00
Twinaphex 48128a9b36 Merge pull request #6894 from libretro/android_susperf
android: enable sustained performance mode if supported
2018-06-19 04:41:02 +02:00
Twinaphex 1feadee0cb Merge pull request #6895 from casdevel/midi
Document MIDI interface
2018-06-18 23:53:53 +02:00
opendata26 707855beda (wiiu) add back HAVE_BUILTINZLIB but disabled by default 2018-06-18 21:41:30 +01:00
Zoran Vuckovic 8d99044fb4 Document MIDI interface 2018-06-18 21:26:10 +02:00
Brad Parker 612ed942d0 android: enable sustained performance mode if supported, bump target API to 24 2018-06-18 12:56:14 -04:00
twinaphex ca3b8149a8 MSVC 2003 buildfix 2018-06-18 05:03:26 +02:00
Twinaphex 798635bf8a Update CHANGES.md 2018-06-18 03:21:28 +02:00
twinaphex 54a95eed83 These defines are not available on Android NDK APIs lower than 24 2018-06-18 01:56:22 +02:00
twinaphex e39b92a1f0 Another buildfix 2018-06-18 01:44:17 +02:00
twinaphex 7d3f62a816 Buildfix 2018-06-18 01:35:38 +02:00
twinaphex a6b0dd9f57 Buildfixes 2018-06-18 01:05:52 +02:00
twinaphex e0405b2f5c Add MIDI to Griffin 2018-06-18 00:37:51 +02:00
Twinaphex 49f3dacde5 Merge pull request #6892 from casdevel/midi
Add MIDI support
2018-06-17 23:07:26 +02:00
twinaphex 76db13fda4 Merge commit '950525a37032877e080ee0f4455c0c4cda550d45' 2018-06-17 20:11:37 +02:00
twinaphex 950525a370 Squashed 'libretro-common/' changes from 8030c86033..156677b98e
156677b98e Update

git-subtree-dir: libretro-common
git-subtree-split: 156677b98efb626c8b4c6fe8df4730ed0a15120f
2018-06-17 20:11:36 +02:00
twinaphex fa1ec0780b Merge commit '3997b59cd652c7852f866aa11c25693fab6bbcda' 2018-06-17 20:04:50 +02:00
twinaphex 3997b59cd6 Squashed 'libretro-common/' changes from 705d72b4a3..8030c86033
8030c86033 Update
5303312e02 Update
a5507504f4 Merge pull request #80 from markwkidd/patch-2
fde3bc8334 Update libretro.h
afa570f1c0 clarify how input device subclasses are declared
4c0a96ba8a Update glsm.c
e5c75fcecb Merge pull request #78 from markwkidd/correct-path_remove_extension-desc
9713f7f66e correct path_remove_extension docs

git-subtree-dir: libretro-common
git-subtree-split: 8030c86033c7c20f554d41e009fc73f1bf4dff2d
2018-06-17 20:04:50 +02:00
Zoran Vuckovic 22d30a0dbf Fix segfault on device change 2018-06-17 18:50:27 +02:00
Twinaphex 7335db08dc Update CHANGES.md 2018-06-17 05:10:44 +02:00
Twinaphex ef1ec3131e Update CHANGES.md 2018-06-17 05:10:00 +02:00
Twinaphex 6df3597f97 Merge pull request #6881 from L0sted/master
Some russian translations
2018-06-17 02:27:05 +02:00
Twinaphex fde7796cb0 Merge pull request #6888 from bparker06/android_battery
support powerstate/battery level in Android
2018-06-17 02:26:10 +02:00
Brad Parker 7176bb19ad support powerstate/battery level in Android 2018-06-16 19:15:16 -04:00
Zoran Vuckovic b487c3cace Add MIDI support 2018-06-16 21:17:32 +02:00
opendata26 cbc804783f (wiiu) Use portlibs zlib and libpng
Zlib needed for libpng to work, used in some cores.

Signed-off-by: Craig Tatlor <[email protected]>
2018-06-15 18:53:45 +01:00
Twinaphex 9d0c0b77ee Merge pull request #6883 from fr500/master
subsystem: set the subsystem correctly
2018-06-14 23:54:18 +02:00
radius aa35b9da46 subsystem: set the subsystem correctly 2018-06-14 16:38:27 -05:00
l0sted 81e01da585 a lot of work 2018-06-14 15:48:44 +03:00
Twinaphex fd1c354811 Merge pull request #6876 from retro-wertz/patch-1
Better no log at all than showing a false log
2018-06-14 00:51:17 +02:00
l0sted a90008f7ed a lot of changes 2018-06-13 15:32:48 +03:00
l0sted 99b6757400 Latency translation 2018-06-13 13:30:01 +03:00
l0sted af02712712 Updated russian translation 2018-06-13 13:21:15 +03:00
Brad Parker 19dd1c15eb Merge branch 'master' into qt_grid 2018-06-12 20:49:50 -04:00
bparker06 ab9e00219d Add null pointer check 2018-06-11 20:28:36 -04:00
Twinaphex 890c781a76 Merge pull request #6874 from altiereslima/master
Update portuguese brazilian translation.
2018-06-11 14:48:50 +02:00
retro-wertz ce27e986e9 Better no log at all than showing a false log
This false message has been like foreve. Nobody seems interested in updating "small and minor" things. so lets just remove this....
2018-06-11 17:08:59 +08:00
altiereslima 3f04c639b4 Update portuguese brazilian translation. 2018-06-10 19:58:50 -03:00
gblues 9ea16c0b3d Updates from PR feedback (ty @aliaspider) 2018-06-07 21:16:49 -07:00
gblues 8b87a53366 Replace hokey "hooks" struct with weak symbol annotations
- Did a test build to ensure RA built
- Copied over to my FTPservU sources and ensured no compile issues there

Looks solid. A lot cleaner, too.

@aliaspider
2018-06-07 18:41:16 -07:00
Twinaphex a4144dfe9b Merge pull request #6869 from FIX94/master
(GC) ACTUALLY fix up build
2018-06-07 21:10:32 +02:00
FIX94 6ede99b47b (GC) ACTUALLY fix up build 2018-06-07 21:04:34 +02:00
hizzlekizzle 9271a7505f Merge pull request #6863 from Brunnis/xmb-thumbnails-issue
Implement fix for thumbnails not showing up in Quick Menu as well as …
2018-06-07 13:26:32 -05:00
Brad Parker ef8390dee1 Merge branch 'master' into qt_grid 2018-06-07 11:57:05 -04:00
Twinaphex a7a54800e8 Merge pull request #6868 from Themaister/master
Vulkan: Fix two validation errors.
2018-06-07 05:07:24 +02:00
Mikael Brunnhede 0813de0392 Hide thumbnails in Quick Menu sub-menus. 2018-06-06 23:48:07 +02:00
Hans-Kristian Arntzen 16c797f057 Vulkan: Fix two validation errors.
- Mipgen was only transitioning the first miplevel to GENERAL.
  Fix the image barrier helper function to transition all levels and
  layers.

- Validation layer was complaining that a VkSwapchainKHR was not
  properly destroyed. After recycling the swapchain, destroy the old
  one.
2018-06-06 23:23:32 +02:00
Twinaphex 6a9e73b7f2 Merge pull request #6865 from DEX357/patch-9
Update msg_hash_pl.h
2018-06-06 18:16:50 +02:00
DEX357 d94f9bd921 Update msg_hash_pl.h 2018-06-06 18:02:35 +02:00
Mikael Brunnhede 75330a142d Implement fix for thumbnails not showing up in Quick Menu as well as "Run" menu after closing content. Also implement fix for savestate thumbnail being hidden behind boxart/screenshot thumbnails. With this fix, boxart/screenshot thumbnails are not shown on the right hand side if there is a savestate screenshot being rendered. 2018-06-05 10:51:51 +02:00
gblues f22c337cfc WIIU: cleanup and build-out of wiiu bootstrap code
I used the code in `wiiu/` to bootstrap my own WiiU homebrew app; this
PR reflects some changes I needed to make, that might be useful upstream.

1. Clean up filesystem initialization

Filesystem driver initialization was lumped in with filesystem mounting;
and that was a problem in my project, because I needed to be able to remount
the SD card on the fly. So, now it's split up.

I've added a callback object named "hooks" that can be used by consuming
applications to handle filesystem mounting and unmounting. If these hooks are
not provided, then the existing default behavior occurs.

2. Expand socket handling

- add `SO_NONBLOCK` flag for non-blocking socket I/O
- add normal errno defines like `EWOULDBLOCK` `EAGAIN`.

3. Remove RetroArch dependencies

- the exception handler protects usage of version_git with
  `#ifdef HAVE_GIT_VERSION` but not the include, so I added that.

  It also technically depends on version.h, but I'm not touching that.
  It's easy enough to implement and I needed the same functionality. I'm
  not sure what the best solution for that dependency is.

- missing_libc_functions.c included features/features_cpu.h which is
  a libretro include. This appears to be a stale include though, because
  everything compiles and works without it.

- an ifdef referencing the RA "WIIU" define, rather than the devkitpro
  "__wiiu__" define
2018-06-05 00:06:40 -07:00
gblues 21fd83f766 Merge github:libretro/RetroArch 2018-06-04 23:38:38 -07:00
twinaphex ec718c6f71 Should only be used for Wii 2018-06-04 21:25:04 +02:00
Twinaphex 7bfe9e409a Merge pull request #6860 from meleu/patch-22
fix crash when scrolling cheevos list. fixes #6732
2018-06-04 16:31:08 +02:00
meleu 0ffe0f8513 fix crash when scrolling cheevos list. fixes #6732 2018-06-04 10:07:18 -03:00
Twinaphex 5bc7acffd5 Merge pull request #6858 from meleu/patch-22
show cheevos description on RGUI - fixes #6764
2018-06-04 03:53:39 +02:00
meleu 6040e1c0fc show cheevos description on RGUI - fixes #6764 2018-06-03 16:46:20 -03:00
Twinaphex 6ecf64d08f Merge pull request #6855 from GregorR/null-input-joypad-driver
Fix input when the joypad driver is NULL.
2018-06-02 23:04:45 +02:00
Gregor Richards af357c1afe Fix input when the joypad driver is NULL. 2018-06-01 23:22:04 -04:00
Twinaphex e4476ec61b Merge pull request #6847 from reswitched/nsw-dynamic
NSW: dynamic core loading
2018-06-02 01:39:00 +02:00
Twinaphex 861d87281e Merge pull request #6852 from theheroGAC/patch-32
Update msg_hash_it.h
2018-06-01 02:40:49 +02:00
Twinaphex ab9a9e733e Merge pull request #6853 from FIX94/patch-1
(GC/Wii) revert commit 822e2fd
2018-06-01 02:40:40 +02:00
FIX94 3f8235db28 revert commit 822e2fd
commit 822e2fd broke sd gecko mounting on gamecube, making the gamecube build unusable, reverting it makes it run fine again
2018-06-01 00:22:42 +02:00
theheroGAC 430d674b4e Update msg_hash_it.h 2018-05-31 22:45:32 +02:00
Twinaphex adaac8a8cd Merge pull request #6851 from meepingsnesroms/master
Update README.MD(Fixed)
2018-05-31 20:49:02 +02:00
meepingsnesroms c0da95559f Update README.MD(Fixed) 2018-05-31 10:26:35 -07:00
Twinaphex ad79fbe4a9 Merge pull request #6846 from GregorR/netplay-runahead-compatibility
Fix compatibility between netplay and runahead
2018-05-31 10:29:22 +02:00
Twinaphex 49c08baaa7 Merge pull request #6848 from reswitched/fix-tearing
NSW: fix tearing
2018-05-31 10:28:11 +02:00
misson20000 97994b0684 NSW: libtransistor added an ELF loader, and cores are now .so instead of .nro 2018-05-30 22:13:55 -07:00
misson20000 1ef6b1d8e4 NSW: wip dynamic support 2018-05-30 22:13:55 -07:00
Gregor Richards 2c07561fc1 Fix compatibility between netplay and runahead
Unsurprisingly, netplay and runahead are wildly incompatible; both rely
on internal rewinding, without communicating this fact to each other.
Somewhat more surprisingly, netplay already has all the infrastructure
for negative input latency, as it's structurally the same as receiving
delayed input from a peer. This patch makes the two features
"compatible" by disabling runahead per se when netplay is active, and
using runahead's configuration to adjust netplay's own input latency
feature, which is now allowed to be negative. The effect is mostly the
same (modulo the second core support), and it doesn't confuse netplay
peers.
2018-05-30 22:01:02 -04:00
misson20000 1404b63219 fix for tearing (depends on libtransistor commit cf5d0403 in v2.0.0, which is yet to be released) 2018-05-30 18:04:58 -07:00
Twinaphex 0045e1fff2 Merge pull request #6845 from DEX357/patch-8
Update msg_hash_pl.h
2018-05-30 07:20:49 +02:00
DEX357 9cf843e349 Update msg_hash_pl.h 2018-05-30 02:30:51 +02:00
twinaphex a3a047b8ec Fix Coverity warning 2018-05-29 22:01:05 +02:00
twinaphex b1ec722a75 Buildfix 2018-05-29 18:55:18 +02:00
Twinaphex 65232d3ab4 Merge pull request #6842 from gmdvieira/wayland.screensaver
Add screensaver (idle) inhibition for Wayland driver
2018-05-29 17:23:22 +02:00
hizzlekizzle 34a75ba605 Merge pull request #6578 from Stevoisiak/settings-driver-section
retroarch.cfg: Reorganize sections
2018-05-29 09:28:22 -05:00
Gustavo Maciel Dias Vieira 14c505117d Add screensaver (idle) inhibition for Wayland driver
The Wayland driver currently has no implementation for gfx_ctx_wl_suppress_screensaver. This adds a Dbus implementation using the same infrastructure used by the X11 driver.
2018-05-29 09:56:58 -03:00
twinaphex ddbc0d53c0 Add Discord Enable option to Settings -> Privacy 2018-05-29 12:41:13 +02:00
twinaphex 81ce02cf74 Put this around an ifdef 2018-05-29 12:18:31 +02:00
twinaphex 6d81d31ef5 Enable Discord setting 2018-05-29 12:18:01 +02:00
twinaphex b5f6ae7931 (Discord) Add translatable string 2018-05-29 11:14:21 +02:00
twinaphex 406342479a Change function signature of discord_update 2018-05-29 11:09:13 +02:00
twinaphex 1fb57857ea Add discord_is_inited 2018-05-29 11:06:43 +02:00
twinaphex 31e7894539 Get rid of unnecessary ifdef 2018-05-29 10:43:45 +02:00
twinaphex 8ad1ddbac5 Disable discord support for C89 2018-05-29 10:42:18 +02:00
twinaphex b4912a718f (Discord.c) Cleanups 2018-05-29 10:40:01 +02:00
twinaphex 4a035f5b22 Start adding files for Mac/Linux 2018-05-29 10:30:56 +02:00
twinaphex d488dfcafa Make these files Windows-specific 2018-05-29 10:24:17 +02:00
twinaphex e056cd8005 Disable HAVE_DISCORD for now 2018-05-29 10:22:07 +02:00
Twinaphex 2848f1f2b1 Merge pull request #6840 from fr500/master
WIP: discord-rpc support
2018-05-29 10:21:28 +02:00
radius 00bb17588d Merge commit '6e7a18a5987cbd5dec80308250062867f2cc3aad' as 'deps/discord-rpc/thirdparty/rapidjson-1.1.0' 2018-05-28 23:59:23 -05:00
radius 6e7a18a598 Squashed 'deps/discord-rpc/thirdparty/rapidjson-1.1.0/' content from commit 2fb78f9cee
git-subtree-dir: deps/discord-rpc/thirdparty/rapidjson-1.1.0
git-subtree-split: 2fb78f9cee01996f020d5af7592b37c5a0693b31
2018-05-28 23:59:23 -05:00
radius f0082d710c restore this file 2018-05-28 23:49:23 -05:00
radius 0308191f88 Merge commit 'b86df4ee09564e88f9d2c994ef9d5af75d4e7395' as 'deps/discord-rpc' 2018-05-28 23:46:51 -05:00
radius b86df4ee09 Squashed 'deps/discord-rpc/' content from commit ba9fe00c4d
git-subtree-dir: deps/discord-rpc
git-subtree-split: ba9fe00c4de1d680cdc56605d9c0d2b4cf8e7a07
2018-05-28 23:46:51 -05:00
radius d5c2bc90c1 add discord files 2018-05-28 23:46:36 -05:00
Brad Parker 8d886751b9 Merge branch 'master' into qt_grid 2018-05-28 18:16:13 -04:00
Brad Parker 8c6bc4a678 Qt: update UI after loading every 25 grid items, keep grid from mixing up content from multiple playlists if the user switches to a new one before one is finished loading 2018-05-28 18:14:36 -04:00
Twinaphex b378566cb8 Merge pull request #6837 from Dwedit/dirty_input_fix
Add bounds checking to runahead dirty input code
2018-05-28 20:19:31 +02:00
Twinaphex cdc2bdb327 Merge pull request #6835 from Dwedit/null-fix_
Fix a calloc(0) which led to uninitialized data being used later on.
2018-05-28 20:19:21 +02:00
Dwedit adbc71ce46 Change bounds to a const variable
Add one more bounds check
2018-05-28 12:14:04 -05:00
Dwedit e8b381680a reformat spaces 2018-05-28 12:04:11 -05:00
Dwedit becb6dee16 Fix out of bounds access in dirty_input code 2018-05-28 12:01:18 -05:00
Dwedit 51f7746407 reformat like the old code 2018-05-28 10:58:04 -05:00
Dwedit 8cd8e7d3ae Fix a calloc(0) which led to uninitialized data being used later on. 2018-05-28 10:54:25 -05:00
twinaphex 23b0444afe Update libretro-common 2018-05-28 17:30:56 +02:00
Twinaphex 877766d0ae Merge pull request #6834 from Dwedit/null-fix_
Fix null pointer read in action_bind_sublabel_subsystem_add
2018-05-28 17:13:08 +02:00
Dwedit 6ef5232f32 Fix null pointer read in action_bind_sublabel_subsystem_add 2018-05-28 09:37:43 -05:00
Twinaphex d00fe30f0e Merge pull request #6831 from ReRetro/master
Change Retroarch to RetroArch once again for the 3ds
2018-05-27 21:09:08 +02:00
Twinaphex 743ab2351c Merge pull request #6829 from fr500/overrides
only apply deadzone on analog to digital remapping, not analog to analog
2018-05-27 21:08:52 +02:00
Yarsan Hoessain 99c074e275 Change Retroarch to RetroArch once again for the 3ds 2018-05-27 20:21:41 +02:00
radius c2c5265916 only apply deadzone on analog to digital remapping, not analog to analog 2018-05-27 11:58:52 -05:00
Twinaphex 3a96314bfd Merge pull request #6828 from DEX357/patch-7
Update msg_hash_pl.h
2018-05-26 09:50:36 +02:00
DEX357 9af767163f Update msg_hash_pl.h 2018-05-26 00:55:55 +02:00
alphanu1 488d142ebf Merge pull request #75 from alphanu1/alphanu1-patch-71
Black screen fix
2018-05-25 12:27:43 +01:00
alphanu1 7c50550fc3 Black screen fix 2018-05-25 12:26:11 +01:00
Twinaphex 06aab60307 Merge pull request #6827 from alphanu1/master
Porch adjust to fix aspect and 240p menu for CRT
2018-05-25 12:21:04 +02:00
alphanu1 05cf6fa114 Merge pull request #74 from alphanu1/alphanu1-patch-70
Porch adjust to fix aspect
2018-05-25 10:58:59 +01:00
alphanu1 b4996e6d41 Porch adjust to fix aspect 2018-05-25 10:58:43 +01:00
alphanu1 31919e9a61 Merge pull request #73 from alphanu1/alphanu1-patch-69
240p menu for CRT
2018-05-25 10:57:47 +01:00
alphanu1 e6b2f5a734 240p menu for CRT 2018-05-25 10:57:32 +01:00
alphanu1 a002297f37 Merge pull request #72 from alphanu1/alphanu1-patch-68
update
2018-05-25 10:56:46 +01:00
alphanu1 f99540e9d0 update 2018-05-25 10:56:22 +01:00
alphanu1 9c03f99eb9 Merge pull request #71 from alphanu1/alphanu1-patch-67
update
2018-05-25 10:55:54 +01:00
alphanu1 23ec5eed84 update 2018-05-25 10:55:15 +01:00
alphanu1 8a5dce2d25 Merge pull request #70 from alphanu1/alphanu1-patch-66
Porch adjust to fix aspect
2018-05-25 10:49:48 +01:00
alphanu1 a98ce80df0 Porch adjust to fix aspect 2018-05-25 10:49:28 +01:00
alphanu1 0ecd571d0f Merge pull request #69 from alphanu1/alphanu1-patch-65
240p menu for CRT
2018-05-25 10:43:26 +01:00
alphanu1 e20e0b1cfd 240p menu for CRT 2018-05-25 10:42:57 +01:00
alphanu1 f9fb5ae659 Merge pull request #68 from libretro/master
update
2018-05-25 10:41:38 +01:00
Twinaphex 25fbcb33e5 Merge pull request #6821 from reswitched/master
NSW: fix analog sticks
2018-05-24 10:41:49 +02:00
misson20000 dd0ad28818 NSW: fix analog sticks 2018-05-24 00:18:38 -07:00
Twinaphex 1b7fb1530a Merge pull request #6820 from altiereslima/master
Update Portuguese Brazilian Translation #2
2018-05-22 04:03:16 +02:00
altiereslima b2303b8ef4 Update Portuguese Brazilian Translation #2 2018-05-21 22:56:25 -03:00
Twinaphex a5b877b142 Merge pull request #6812 from altiereslima/master
Update Portuguese Brazilian Translation
2018-05-21 04:12:09 +02:00
Twinaphex 62bf39316f Merge pull request #6811 from alfrix/spanish
Fix build
2018-05-21 04:12:01 +02:00
altiereslima 1530d6ce3e Update Portuguese Brazilian Translation 2018-05-20 22:56:03 -03:00
Alfrix 82a869b142 Fix build 2018-05-20 22:51:05 -03:00
Twinaphex 3c49c8c856 Merge pull request #6807 from markwkidd/master
Improve text for existing menu item -- "Save Game-options file"
2018-05-21 03:03:18 +02:00
Twinaphex 73287af8e4 Merge pull request #6808 from DEX357/patch-5
Update msg_hash_pl.h
2018-05-21 03:02:52 +02:00
Twinaphex 6f1a80dafe Merge pull request #6809 from DEX357/patch-6
Update msg_hash_pl.h
2018-05-21 03:02:46 +02:00
Twinaphex 430a79da5a Merge pull request #6810 from alfrix/spanish
Spanish Update
2018-05-21 03:02:36 +02:00
Alfrix 056664ee7d Update Spanish 2018-05-20 19:56:58 -03:00
DEX357 5313aca11d Update msg_hash_pl.h 2018-05-21 00:04:16 +02:00
DEX357 0a45468af9 Update msg_hash_pl.h
missing entries
2018-05-20 23:48:50 +02:00
markwkidd b2c767ee22 provide a verb for the Save Game-option command
Signed-off-by: markwkidd <[email protected]>
2018-05-20 15:30:26 -05:00
Twinaphex 58e13ab6ca Merge pull request #6802 from DEX357/patch-4
Update msg_hash_pl.h
2018-05-20 17:39:28 +02:00
DEX357 64c6f88512 Update msg_hash_pl.h
amendments
2018-05-20 15:10:10 +02:00
Twinaphex dec45f0963 Merge pull request #6800 from DEX357/patch-3
Update msg_hash_pl.h
2018-05-20 08:00:22 +02:00
Twinaphex 463348cb2e Merge pull request #6801 from meepingsnesroms/master
Update the 3ds build system to match new core format
2018-05-20 08:00:13 +02:00
gblues 10ae93153a Merge github:libretro/RetroArch 2018-05-19 18:54:34 -07:00
meepingsnesroms f3bad8b3e2 Fix salamander for 3dsx build 2018-05-19 11:42:08 -07:00
meepingsnesroms 51b9b69828 Finish buildbot fixes 2018-05-19 11:35:12 -07:00
meepingsnesroms f59913ab04 Remove tab 2018-05-19 10:03:57 -07:00
meepingsnesroms 6c1e865d28 Make build system match core format 2018-05-19 09:59:47 -07:00
DEX357 702dc1bb80 Update msg_hash_pl.h
Further corrections and omissions.
2018-05-19 18:49:16 +02:00
Twinaphex 31c5cc9269 Update CHANGES.md 2018-05-19 16:50:16 +02:00
Twinaphex 30a37af792 Merge pull request #6798 from meepingsnesroms/master
Add another error handler, fix variable name formatting
2018-05-19 16:23:30 +02:00
Twinaphex d42d9efd32 Merge pull request #6797 from DEX357/patch-2
Update msg_hash_pl.h
2018-05-19 16:23:07 +02:00
meepingsnesroms 5b2ec62a41 Add another error handler, fix variable name formatting 2018-05-18 17:39:11 -07:00
DEX357 496fbc1f50 Update msg_hash_pl.h
minor grammar changes
2018-05-19 01:42:49 +02:00
twinaphex c7c1983c91 Update d3d9_set_pixel_shader 2018-05-18 20:43:12 +02:00
twinaphex eac9ce1818 Refactor load_program 2018-05-18 08:49:52 +02:00
twinaphex 9dea722c39 Update portion of dr_flac.h that was problematic on
certain systems
2018-05-18 05:32:07 +02:00
twinaphex 2bda59b8e4 (platform_unix.c) Get rid of some warnings 2018-05-18 05:17:13 +02:00
Twinaphex 6a291e0240 Merge pull request #6794 from alfrix/spanish
Spanish Update
2018-05-18 04:09:28 +02:00
Alfrix d604239f00 Update Spanish 2018-05-17 21:28:18 -03:00
Ramiro Morales 421c191049 Update Spanish translation (msg_hash_es.h).
Changes were generated by the following workflow:

1. .h -> .po conversion
2. Translation edit using a tool that supports gettext .po file format.
   e.g. poedit, dedicated modes of Emac, Vim, other editors
3. .po -> .h conversion

Steps 1 and 3 are handled by using WIP tool at

https://github.com/ramiro/RetroArch/blob/manage-i18n-with-gettext-tools/tools/intl.py
2018-05-17 21:09:00 -03:00
twinaphex 3c1c6758c7 Update 2018-05-18 01:38:45 +02:00
Twinaphex a36685d31f Merge pull request #6793 from alfrix/polish
Update Polish (@DEX357)
2018-05-18 01:16:48 +02:00
Alfrix 8014f10da4 Update Polish (DEX357) 2018-05-17 20:10:19 -03:00
twinaphex ce79ff79d2 Cleanups 2018-05-18 01:10:13 +02:00
twinaphex db184a470b Cleanups 2018-05-18 00:51:45 +02:00
twinaphex c9de823e38 (D3D9 HLSL) Start getting rid of old code 2018-05-18 00:46:39 +02:00
twinaphex d457256bda (D3D9 HLSL) More work hooking up the stock shader(D3D9 HLSL) More work
hooking up the stock shader(D3D9 HLSL) More work hooking up the stock
shader(D3D9 HLSL) More work hooking up the stock shader(D3D9 HLSL) More
work hooking up the stock shader(D3D9 HLSL) More work hooking up the
stock shader(D3D9 HLSL) More work hooking up the stock shader(D3D9 HLSL)
More work hooking up the stock shader(D3D9 HLSL) More work hooking up
the stock shader
2018-05-18 00:36:51 +02:00
twinaphex 48b9506299 (HLSL) Implement renderchain_add_pass 2018-05-18 00:27:07 +02:00
twinaphex 076a8a6a97 (D3D9 HLSL) Updates 2018-05-18 00:24:19 +02:00
twinaphex 5a84170efe Simplify d3d9_hlsl_load_program 2018-05-18 00:19:02 +02:00
twinaphex c4a38f24d1 Refactor D3D9 HLSL 2018-05-18 00:17:47 +02:00
twinaphex 991882cbd6 Create d3d9_hlsl_bind_program 2018-05-17 23:25:43 +02:00
twinaphex 8fadef7082 Update d3d9_set_vertex_shader 2018-05-17 23:23:17 +02:00
twinaphex 1d67334323 Expand d3d9_cg_bind_program 2018-05-17 23:20:13 +02:00
twinaphex 9adedbc01a Create d3d9_cg_bind_program 2018-05-17 22:57:16 +02:00
twinaphex eb27d014e8 Cleanups 2018-05-17 22:50:37 +02:00
twinaphex f7b1007995 Move mvp_val to hlsl_renderchain 2018-05-17 22:46:51 +02:00
twinaphex 671be3c372 Cleanup d3d9_cg_load_program 2018-05-17 22:40:46 +02:00
twinaphex c412e2ec97 (Cg renderchain) Refactor vStock/fStock 2018-05-17 22:38:17 +02:00
twinaphex 3b7a1a8a73 Make hlsl_load_program more like Cg version 2018-05-17 22:30:57 +02:00
twinaphex 0df8ca030f Cleanups 2018-05-17 22:22:10 +02:00
twinaphex c67dc034e9 Add vtable/ftable to shader_pass 2018-05-17 22:14:23 +02:00
twinaphex 34c5c84706 Cleanups 2018-05-17 21:43:27 +02:00
twinaphex be9f643edb Get rid of hlsl->dev 2018-05-17 21:26:11 +02:00
twinaphex cabe5c6686 Uncomment d3d9_hlsl_renderchain_set_params for state tracker 2018-05-17 21:11:43 +02:00
twinaphex d946cf1ee5 Create common set vertices function 2018-05-17 21:07:44 +02:00
twinaphex 2011453340 Cleanups 2018-05-17 20:50:32 +02:00
twinaphex 9d6777a87f Rewrite set_shader_params to be nearly identical to Cg renderchain 2018-05-17 20:45:26 +02:00
twinaphex 6c392d3863 Cleanups 2018-05-17 20:31:16 +02:00
twinaphex 70074010e0 Cleanups 2018-05-17 20:15:47 +02:00
twinaphex aec7ce3f4e Update 2018-05-17 20:01:20 +02:00
twinaphex ebc2cc6d5b (HLSL) Cleanup log messages 2018-05-17 19:57:07 +02:00
twinaphex cc1f503f57 (HLSL) Further cleanups 2018-05-17 19:55:08 +02:00
twinaphex 9adc4d4a2f Another cleanup 2018-05-17 19:48:16 +02:00
twinaphex 0de7e7bf46 Cleanups 2018-05-17 19:47:22 +02:00
twinaphex bef7b481c6 Refactor more D3D9 HLSL renderchain code 2018-05-17 19:33:47 +02:00
twinaphex 5bb1b2ef7c Start refactoring HLSL code - constant table parameter setters 2018-05-17 19:26:52 +02:00
twinaphex da53ddc99b Create d3d9_hlsl_get_constant_by_name 2018-05-17 19:13:39 +02:00
twinaphex 18b176c1ea Rename functions 2018-05-17 19:03:13 +02:00
twinaphex 3b7414bc4b (Cg) Some refactors 2018-05-17 18:56:12 +02:00
twinaphex d28aad6372 Rename hlsl_compile_program 2018-05-17 18:46:57 +02:00
Twinaphex 2a0fda0845 Merge pull request #6791 from Dwedit/fix-reset-command
Fix the reset command not closing the menu
2018-05-17 18:41:14 +02:00
Twinaphex 380308d7d0 Merge pull request #6792 from Tatsuya79/patch-1
Disable gl hard sync in menu
2018-05-17 18:40:36 +02:00
twinaphex fe1d3306af Cleanups 2018-05-17 18:20:36 +02:00
twinaphex a9cede28b4 remove some Cg references from log messages 2018-05-17 18:03:18 +02:00
twinaphex 08425d978c Create d3d9_renderchain_destroy_passes_and_luts 2018-05-17 17:59:42 +02:00
twinaphex c022190895 Cleanups 2018-05-17 17:52:44 +02:00
twinaphex 041d51b8d1 Cleanups 2018-05-17 17:50:33 +02:00
twinaphex f8b7104ef2 Move more common code to d3d9_renderchain.h 2018-05-17 17:38:42 +02:00
twinaphex a024da61f4 More code de-duplication 2018-05-17 17:27:56 +02:00
twinaphex e01a028e24 Move add_lut_internal to d3d9_renderchain.h 2018-05-17 17:25:46 +02:00
Tatsuya79 e96463645d Disable gl hard sync in menu 2018-05-17 17:24:10 +02:00
twinaphex c46d84b799 Create d3d9_renderchain_add_lut 2018-05-17 17:23:53 +02:00
twinaphex 6d2b5c8052 Move read_viewport function back to d3d9.c 2018-05-17 17:17:08 +02:00
twinaphex ad3cedfff1 Create d3d9_init_renderchain 2018-05-17 17:15:04 +02:00
twinaphex ea5e4e9ae4 Create struct D3D9Vertex 2018-05-17 17:10:44 +02:00
twinaphex 30b6366158 (d3d9_cg_renderchain.c) Reuse same struct 2018-05-17 17:09:23 +02:00
twinaphex 45f409b022 Start using shader_pass struct 2018-05-17 16:52:12 +02:00
twinaphex d369cde6c6 (Cg renderchain) Cleanups 2018-05-17 16:50:02 +02:00
Dwedit af2f679ff5 Fix the reset command not closing the menu 2018-05-17 09:49:45 -05:00
twinaphex bc59b0345d Start unifying the structs across the two renderchains 2018-05-17 16:42:27 +02:00
twinaphex 517e42c9c7 Pass d3d pointer to set_mvp 2018-05-17 05:46:49 +02:00
twinaphex 8161add9e4 (D3D renderchains) Updates 2018-05-17 05:36:56 +02:00
twinaphex 7afad7a84b Add start/end render 2018-05-17 04:19:35 +02:00
twinaphex fef586b887 Comment out align texels for now 2018-05-17 02:21:40 +02:00
twinaphex 8686c5e037 (HLSL) Use HLSLVertex everywhere in the file 2018-05-17 02:18:57 +02:00
twinaphex 91fc81e76a (D3D9 HLSL) Prevents crash with game frame 2018-05-17 02:17:47 +02:00
twinaphex 62a2af1848 (HLSL) Update set_vertices 2018-05-17 02:16:19 +02:00
twinaphex a999bff175 Cleanups 2018-05-17 02:07:15 +02:00
twinaphex 47551cec84 (HLSL) set_vertices - more work 2018-05-17 02:01:32 +02:00
Twinaphex bc0185c313 Merge pull request #6782 from meepingsnesroms/master
Make 3DS launch cores like a normal system
2018-05-17 01:34:48 +02:00
meepingsnesroms 1bd25a6f12 Fix pointer type 2018-05-16 16:28:32 -07:00
meepingsnesroms ce0d8bb5e0 Remove quote parsing 2018-05-16 16:26:38 -07:00
meepingsnesroms 8617690499 Fix tab where spaces should be 2018-05-16 10:41:25 -07:00
twinaphex 47f3855e1b Cleanups 2018-05-16 16:06:00 +02:00
twinaphex 4b5ea2877e Cleanups 2018-05-16 16:03:22 +02:00
twinaphex efbfe85da4 Cleanups 2018-05-16 15:58:46 +02:00
twinaphex 3aba080434 Integrate HLSL code into d3d9_hlsl_renderchain.c 2018-05-16 15:52:11 +02:00
Twinaphex 1e44b4f9e7 Merge pull request #6784 from Tatsuya79/patch-9
call input_remapping_set_defaults before loading a new remap
2018-05-16 14:53:12 +02:00
Tatsuya79 dd3c9dd838 call input_remapping_set_defaults before loading a new remap 2018-05-16 13:30:57 +02:00
meepingsnesroms 9e51d41fea Fix last null terminator not being added to cia argv 2018-05-15 18:11:47 -07:00
meepingsnesroms 756db4f264 Fix broken path handling when launching a core with a file or with spaces 2018-05-15 11:46:13 -07:00
meepingsnesroms 052de6bcd2 3ds now has proper core launching 2018-05-15 10:30:34 -07:00
twinaphex 2d540264e8 Start hooking up set_shader_mvp function 2018-05-15 06:02:10 +02:00
twinaphex 6afd100d2f (D3D9 HLSL) Add calc_and_set_shader_mvp 2018-05-15 05:53:15 +02:00
twinaphex 52fcdd183a (HLSL) Add more functions 2018-05-14 23:14:26 +02:00
twinaphex 5cba3f0b25 (D3D) Updates 2018-05-14 22:24:02 +02:00
twinaphex 9e63b108ae Cleanups 2018-05-14 22:20:26 +02:00
twinaphex 8361922034 Cleanup 2018-05-14 22:07:07 +02:00
twinaphex c0cd08fa11 Cleanups 2018-05-14 22:01:21 +02:00
twinaphex 4e572d6f87 Simplify calc_and_set_shader_mvp 2018-05-14 21:54:28 +02:00
twinaphex e1368a9209 (Cg D3D9) Buildfix 2018-05-14 21:42:14 +02:00
twinaphex 39f45a17d2 create d3d9_convert_geometry 2018-05-14 21:32:14 +02:00
twinaphex c941b4e922 Update D3D9 HLSL code 2018-05-14 21:26:52 +02:00
twinaphex f37f8a1076 (HLSL renderchain) Refactor code 2018-05-14 21:10:14 +02:00
twinaphex dc61c08006 Cleanups 2018-05-14 20:50:02 +02:00
twinaphex 15f2cde260 (HLSL) Start adding renderchain code 2018-05-14 20:42:28 +02:00
twinaphex 111aeb46b3 Make blit_texture a generic function used by both Cg and HLSL
renderchains
2018-05-14 19:11:45 +02:00
twinaphex c1d949b017 Rename pass_vector_list to cg_pass_vector_list 2018-05-14 18:48:47 +02:00
twinaphex 8a607e72af (D3D9 Cg) Cleanups 2018-05-14 18:46:06 +02:00
twinaphex e646366fd4 Cleanups 2018-05-14 18:42:53 +02:00
twinaphex e8ae1e324f Cleanups 2018-05-14 18:40:36 +02:00
twinaphex 7a9bfa52b0 Add comments 2018-05-14 17:51:50 +02:00
Twinaphex fd4aca1654 Merge pull request #6779 from fr500/overrides
blacklist some settings from overrides
2018-05-14 17:50:15 +02:00
twinaphex e9054159ec Remove set_font_rect callback 2018-05-14 16:57:34 +02:00
radius ecedf8b995 blacklist some settings from overrides 2018-05-13 23:58:55 -05:00
twinaphex bf3122329b (D3D9) Buildfixes 2018-05-14 06:37:01 +02:00
twinaphex 232d3f4d92 Take out add_state_tracker function callback for D3D9 renderchain 2018-05-14 06:33:51 +02:00
Twinaphex dad1e9e52a Merge pull request #6775 from fr500/overrides
WIP: override, presets & remap improvements
2018-05-14 06:23:10 +02:00
twinaphex e5ec7d0fda (Menu) Cut down on some code duplication 2018-05-14 06:18:57 +02:00
radius f81ea09f20 add saving, deletion options for per-dir remaps 2018-05-13 23:17:44 -05:00
radius 0a0365e49a add menu entries 2018-05-13 22:33:06 -05:00
twinaphex 94955eb3b5 (D3D8) Do less casting 2018-05-14 05:14:26 +02:00
twinaphex 2c5112f3ac Cleanups 2018-05-14 05:07:12 +02:00
radius 16c33b4f42 add remap saving, add new variables 2018-05-13 22:05:19 -05:00
radius 908d9b315b overrides: improve 43220c088a a bit 2018-05-13 22:05:18 -05:00
nosh01 9b57b3658d config_load_override() allow override configs to be loaded that match the content parent path name 2018-05-13 22:05:18 -05:00
twinaphex c40c08375c (d3d9_common.h) Cleanups 2018-05-14 05:04:45 +02:00
twinaphex cbe4c78979 (D3D8/D3D9) Cleanups 2018-05-14 04:55:33 +02:00
twinaphex 606d700bf2 No more D3D8/D3D9 header includes in d3d_common.c 2018-05-14 04:36:08 +02:00
twinaphex 8733a41e58 (d3d_common.c) Get rid of these header includes 2018-05-14 04:00:27 +02:00
twinaphex 6a9b39da3f Get rid of d3d.h and xdk_defines.h 2018-05-14 03:57:27 +02:00
twinaphex 5fe6c74b51 Remove this 2018-05-14 03:47:13 +02:00
twinaphex d1c1e4e2aa Move D3D9_DECL_FVF_TEXCOORD to d3d9_common.h 2018-05-14 03:17:26 +02:00
twinaphex 86c7e7c69f (D3D9) Uniquely name 'Pass' for cg renderchain; some more work on HLSL 2018-05-14 03:12:09 +02:00
twinaphex 1de6bf550b (D3D renderchains) Cleanups/unifications 2018-05-14 03:06:19 +02:00
twinaphex 8beed4c1ec (360) Buildfix 2018-05-14 01:50:58 +02:00
twinaphex 1a55d4309c Fix --disable-cheevos 2018-05-14 01:44:08 +02:00
twinaphex 7617e3efd2 Fix Coverity error - forgot a break 2018-05-14 01:38:24 +02:00
Twinaphex 155c48d7fe Update CHANGES.md 2018-05-14 01:14:28 +02:00
twinaphex 2dae506e88 (MSVC2003) Buildfix 2018-05-14 01:11:47 +02:00
Twinaphex 64e9cb1f5e Update CHANGES.md 2018-05-14 01:09:06 +02:00
Twinaphex b8233c15ae Merge pull request #6776 from altiereslima/master
Update Portuguese Brazilian translation.
2018-05-14 01:07:33 +02:00
twinaphex aea89bfde3 Cleanups 2018-05-14 00:37:03 +02:00
twinaphex 34eb78ad78 Silence some warnings 2018-05-14 00:35:01 +02:00
twinaphex 8a78b69689 Buildfix 2018-05-14 00:31:58 +02:00
twinaphex 45cd860835 Cleanup variables never used 2018-05-14 00:30:30 +02:00
twinaphex 2fdd4444ff Get rid of unintentional typedef redefinition (C11 feature) 2018-05-14 00:29:20 +02:00
Twinaphex d0a697ebf0 (MacOS) Another buildfix 2018-05-14 00:23:05 +02:00
Twinaphex f3f0c6b1d1 One buildfix 2018-05-14 00:21:08 +02:00
twinaphex 599937cc4f Make separate xcodeproj 2018-05-14 00:17:17 +02:00
altiereslima 693d12a67a Update Portuguese Brazilian translation. 2018-05-13 19:15:00 -03:00
Twinaphex 0174e45026 Merge pull request #6667 from fr500/master
cheevos fixes and additions
2018-05-13 21:48:29 +02:00
twinaphex 96e1b862f6 (Vulkan) Update headers - use C comments 2018-05-13 21:42:02 +02:00
twinaphex 7a88fafdb0 Cleanup 2018-05-13 21:36:57 +02:00
Stuart Carnie 789933b333 wip: add Vulkan support to Apple platforms 2018-05-13 21:35:23 +02:00
Stuart Carnie 0a4ff225be Update Vulkan 2018-05-13 21:35:18 +02:00
Twinaphex 0d7d844462 Merge pull request #6774 from sergiou87/fix-keyboard-mapping
Fix the way offsets are calculated for keyboard remapping
2018-05-13 21:32:40 +02:00
radius b25a2b49c4 move pause entry to achievements menu 2018-05-13 14:26:38 -05:00
radius f3c29b43eb disable cheevos_hardcore_paused on contant load 2018-05-13 13:40:30 -05:00
radius aa86d78183 add quick menu action to pause / resume hardcore mode for current session 2018-05-13 13:40:30 -05:00
radius 1037093d45 cleanup cheevos hardcore conditions 2018-05-13 13:40:30 -05:00
radius 7216726664 add cheevos_hardcore_active, cleanup whitespaces 2018-05-13 13:40:29 -05:00
radius 504317ac7e cheevos fixes, reenable menu entries if cheevos are disabled on the fly 2018-05-13 13:40:29 -05:00
twinaphex 605d88751f (HLSL) Remove XBOX ifdef 2018-05-13 19:35:20 +02:00
twinaphex 64f2efe567 Cleanups 2018-05-13 19:03:09 +02:00
twinaphex bcedf74fe4 (D3D renderchains) Cleanups 2018-05-13 18:59:57 +02:00
twinaphex 380fa6fd5e Updates 2018-05-13 18:51:05 +02:00
twinaphex 85da5360d2 (D3D9) Update 2018-05-13 18:47:24 +02:00
twinaphex 34149e510e (D3D9) Cleanups 2018-05-13 18:36:17 +02:00
twinaphex 33d2c2d422 (D3D9) Cleanups 2018-05-13 18:33:16 +02:00
twinaphex 46f23f9fbd Get rid of d3d_video_viewport 2018-05-13 18:24:19 +02:00
twinaphex 53446cc0c8 (D3D9 renderchains) Cleanups 2018-05-13 18:11:48 +02:00
twinaphex c6cc2c930c Create d3d9_log_info 2018-05-13 18:01:09 +02:00
twinaphex 8ecfd367ff Backport shader log info 2018-05-13 17:57:48 +02:00
Steven M. Vascellaro 5ff7cc6a4c Comment out background color settings 2018-05-13 11:54:22 -04:00
twinaphex 770b39e769 (HLSL) Buildfixes 2018-05-13 17:28:40 +02:00
twinaphex 3d7eaee7c9 (menu display driver) Cleanups to bind_texture 2018-05-13 14:43:40 +02:00
twinaphex 659d8a4ec6 (GL) Cleanups 2018-05-13 14:34:41 +02:00
twinaphex 5bde17025a Move min_filter_to_mag to gl_common.h 2018-05-13 14:24:49 +02:00
twinaphex c88a7545a3 (menu display drivers) Cleanups 2018-05-13 14:15:04 +02:00
Sergio Padrino Recio 35b709768d Fix the way offsets are calculated for keyboard remapping 2018-05-13 13:34:36 +02:00
twinaphex 08820b5245 Cleanup gl_update_input_size 2018-05-13 06:43:24 +02:00
twinaphex 1f944afff7 (GL) Cleanups 2018-05-13 06:34:15 +02:00
twinaphex 999f1db694 Cleanup 2018-05-13 06:30:13 +02:00
twinaphex 41295ef7b9 Remove viewport_info callback from D3D9 renderchain interface 2018-05-13 06:29:17 +02:00
twinaphex 27170674a5 (D3D9) Cleanups 2018-05-13 06:22:12 +02:00
twinaphex dee50349ba Rename d3d_renderchain_driver to d3d9_renderchain_driver 2018-05-13 06:03:26 +02:00
twinaphex 494ddb16d9 Get rid of viewport_info callback function - was the same for both
GL1 and GL2 renderchains
2018-05-13 05:56:44 +02:00
twinaphex 6996e72b49 Move renderchain driver interface to gl_common.h - and replace
some void pointers in function callbacks with gl_t
2018-05-13 05:53:35 +02:00
Twinaphex 3773482883 Update CHANGES.md 2018-05-13 05:29:56 +02:00
Twinaphex 5e7ea8de19 Merge pull request #6772 from Dwedit/env-hook-fix
Fix full-screen mode change breaking Secondary Core's environment variables
2018-05-13 05:29:28 +02:00
Dwedit a03ccae2ae fix error 2018-05-12 22:19:42 -05:00
Dwedit 432b320775 Fix full-screen mode change breaking Secondary Core's environment variables
* RunAhead: Remove Environment Hook from primary core
* Modify core option manager to trigger setting the secondary core's dirty environment flag
* RunAhead: Make secondary core's hook support that change, so it can turn off the dirty environment flag after reading a setting.
2018-05-12 22:11:49 -05:00
twinaphex 7c90933e3a (GL1 renderchain) Updates 2018-05-13 02:44:54 +02:00
twinaphex 1763b8ad55 (GL1 renderchain) Get rid of bind_prev_texture 2018-05-13 02:41:31 +02:00
twinaphex ad2290df43 Update gl1_renderchain.c 2018-05-13 02:33:15 +02:00
twinaphex be502a39fd Cleanups 2018-05-12 19:24:04 +02:00
twinaphex 58ac7c320e (dxgi_common.c) Add more __WINRT__ ifdefs 2018-05-12 19:22:37 +02:00
twinaphex cc5393e54d (WinRT) Add more WINRT ifdefs 2018-05-12 19:17:23 +02:00
twinaphex bf76005618 (WinRT) Add more __WINRT__ ifdefs 2018-05-12 19:14:49 +02:00
twinaphex 542294900f (WinRT) More compilation fixes 2018-05-12 19:03:39 +02:00
twinaphex 75aea82256 Squashed 'libretro-common/' changes from 71b08aa6b3..705d72b4a3
705d72b4a3 Merge pull request #74 from markwkidd/patch-1
3a06bdd07a update description of the "save" directory

git-subtree-dir: libretro-common
git-subtree-split: 705d72b4a30f8096118df443246c6e5c9e1f7e99
2018-05-12 18:07:47 +02:00
twinaphex 04a4578435 Merge commit '75aea8225637bb47e44543ed624f5861cb27c204' 2018-05-12 18:07:47 +02:00
twinaphex 6ff58826d8 Squashed 'libretro-common/' changes from b1f9a44ebb..71b08aa6b3
71b08aa6b3 Add missing files

git-subtree-dir: libretro-common
git-subtree-split: 71b08aa6b3660e21afd8024a1da4d5a9c844e1e4
2018-05-12 18:05:31 +02:00
twinaphex dd7ac99f27 Merge commit '6ff58826d8725e4e8788c22706de8b25cc89a4c2' 2018-05-12 18:05:31 +02:00
twinaphex 9d5472cecf Merge commit '37aad93a58efba6c340e13aa1d83ddf2df762b3d' 2018-05-12 18:03:49 +02:00
twinaphex 37aad93a58 Squashed 'libretro-common/' changes from 377cef30fa..b1f9a44ebb
b1f9a44ebb Add missing headers

git-subtree-dir: libretro-common
git-subtree-split: b1f9a44ebbf488debc0f5ef2c817d9c4f72f7153
2018-05-12 18:03:48 +02:00
twinaphex 768ebbfdb5 Merge commit 'ce9ce1d35387ef8144e53bf071396fa075bfb6c5' as 'libretro-common' 2018-05-12 17:56:34 +02:00
twinaphex ce9ce1d353 Squashed 'libretro-common/' content from commit 377cef30fa
git-subtree-dir: libretro-common
git-subtree-split: 377cef30faf410724141b280665db1b6b82cbc7b
2018-05-12 17:56:33 +02:00
twinaphex 0548349991 Remove libretro-common 2018-05-12 17:56:14 +02:00
Twinaphex ed2ed873b8 Update CHANGES.md 2018-05-12 16:29:07 +02:00
Twinaphex f658bea4cd Merge pull request #6768 from theheroGAC/patch-31
Update msg_hash_it.h
2018-05-12 01:59:58 +02:00
Steven M. Vascellaro ae47b1f505 Revert "Fix variable names for 'video_msg'"
This reverts commit 5061bc5a65.
2018-05-11 19:55:07 -04:00
alphanu1 7da1813554 Merge pull request #67 from alphanu1/alphanu1-patch-64
fix
2018-05-11 22:22:24 +01:00
alphanu1 dcc87f4557 fix 2018-05-11 22:21:52 +01:00
theheroGAC f22cc9f2dd Update msg_hash_it.h 2018-05-11 13:28:31 +02:00
Twinaphex 5abdf50c04 Update CHANGES.md 2018-05-11 04:24:44 +02:00
Twinaphex b0aab23fd1 Merge pull request #6719 from Brunnis/autohide-configuration-override-options
Automatically hide "Configuration Override options" in Quick Menu
2018-05-11 04:14:21 +02:00
Twinaphex d2e1698426 Merge pull request #6765 from SuperrSonic/master
(GX) Changes to gx_gfx
2018-05-11 01:43:52 +02:00
Diego A 3b738e0b2d Always enable vfilter, enable deflicker setting in progressive scan, fix vsync set to off 2018-05-10 18:44:22 -04:00
Twinaphex c3c50bae29 Merge pull request #6760 from altiereslima/master
Update Portuguese Brazilian translation
2018-05-10 20:23:17 +02:00
Twinaphex cf5d42dbfe Merge pull request #6761 from rsn8887/master
(Vita/PSP) Use proper button labels, fix inverted R-Stick Y axis
2018-05-10 06:41:04 +02:00
rsn8887 6d5115a50d (Vita/PSP) Use proper button labels, fix inverted R-Stick Y axis 2018-05-09 22:55:33 -05:00
altiereslima 5378e5d525 Update Portuguese Brazilian translation 2018-05-09 23:32:25 -03:00
Twinaphex b5118391a9 Merge pull request #6758 from Dwedit/win32-unify-file-open
Win32: Unify file open code between Menus and Drag Drop, and fix it too
2018-05-10 04:18:54 +02:00
Dwedit ca00d93aac Edit the Japanese resource file too 2018-05-09 21:10:11 -05:00
Dwedit 387d4d87eb Fix core selection appearing unnecessarily
Re-order the dialog items in core selection dialog to make the listbox have focus
Removed the "do wm close" stuff.
2018-05-09 21:04:23 -05:00
Dwedit f3f0d4f787 Unify File Open and File Drag Drop code
* Code in `win32_drag_query_file` was split off into `win32_load_content_from_gui`
* File Open dialog now uses the same code as drag drop instead of the non-working code that was in there before.
* File Dialog and Core Select Dialog show and hide mouse cursor if they were invoked in fullscreen mode
2018-05-09 21:04:23 -05:00
meepingsnesroms 1a6f572405 Fixes 2018-05-09 18:23:35 -07:00
alphanu1 06d411d6e7 Update dispserv_x11.c 2018-05-10 01:56:39 +01:00
Twinaphex 72a77884fa Merge pull request #6756 from Dwedit/runahead-messages
Runahead error messages
2018-05-10 02:43:24 +02:00
Twinaphex 36b9fd94ba Merge pull request #6757 from Dwedit/additional-null-check
Additional null checks in video_driver.c
2018-05-10 02:43:03 +02:00
Dwedit bafb23edc3 Additional null check in video_driver.c
I have managed to trigger a null pointer exception on one of these two functions, so for safety, I added in null checks for the structs and function pointers.
2018-05-09 19:25:33 -05:00
Dwedit 6154a843e0 Runahead error messages
* Add error messages for: Core not having savestates, load/save state failure, secondary core create failure
* Added messages for us locale, can be localized elsewhere
* Add a configuration setting to hide the initial warning message for core not having savestates
* Small code changes and cleanup for secondary core
* Fixed typo "destory" in dirty input code
2018-05-09 19:08:16 -05:00
meepingsnesroms 5f234f0dd1 Start using proper 3ds executable formats (doesnt work properly yet) 2018-05-09 15:55:48 -07:00
Twinaphex 911072fb69 Merge pull request #6755 from Dwedit/small_bugfix
Small Bugfix to not trigger savestate code
2018-05-10 00:52:46 +02:00
Dwedit f94c736945 Small Bugfix, do not have Reset command trigger savestate code 2018-05-09 17:42:30 -05:00
twinaphex 46f7742afc Some early WinRT commits 2018-05-09 16:13:29 +02:00
gblues c161813f10 fix so object files are in expected location 2018-05-08 20:43:37 -07:00
gblues 171e222ebe Add "compile" make target
== DETAILS

As part of the build system overhaul, I need to be able to compile
without linking; this adds a "compile" target so that I can do that.

Currently only implemented on the main Makefile and Wii U.
2018-05-08 20:03:13 -07:00
alphanu1 61f445b159 Merge pull request #66 from alphanu1/alphanu1-patch-63
changes to switching method
2018-05-08 15:17:30 +01:00
alphanu1 b89b08d1ff changes to switching method
Added HDMI switching when CRT active, this slowed switching down. So there is also a new method to switch
2018-05-08 15:16:08 +01:00
alphanu1 e9739c2b14 Merge pull request #65 from alphanu1/alphanu1-patch-62
added swap_interval change for CRT
2018-05-08 15:14:31 +01:00
alphanu1 1bd74718ee added swap_interval change for CRT
Change for interlaced resolution when CRT active
2018-05-08 15:13:37 +01:00
alphanu1 90839289c4 Merge pull request #64 from libretro/master
update
2018-05-08 10:33:40 +01:00
Twinaphex 53140172ab Update CHANGES.md 2018-05-08 01:48:34 +02:00
Twinaphex a9e7bd9ee1 Merge pull request #6737 from gblues/master
Implement UDP broadcast network logging on Wii U
2018-05-08 01:47:04 +02:00
twinaphex 41d2ebf8b5 Apparently not available 2018-05-08 00:16:20 +02:00
twinaphex 2c409c606e (Winphone) should be _DISCARD 2018-05-07 23:19:42 +02:00
twinaphex 244f167dd5 (D3D11) Start adding D3D feature level 9 and Windows Phone ifdefs 2018-05-07 23:18:59 +02:00
Brad Parker 03e0510fc4 Qt: use guarded pointer for adding grid items to layout, in case playlist is changed (and hence the items get deleted) before they are all added 2018-05-07 14:29:54 -04:00
twinaphex 70bbe0bdb1 Update CHANGES.md 2018-05-07 17:56:48 +02:00
twinaphex c79950d707 (PS3) Add HAVE_DR_FLAC
(Dr. Flac) Fix some warnings with PS3 compiler
2018-05-07 17:52:53 +02:00
twinaphex 4f549bc55c (cheevos) Silence PS3 warnings
(PS3) Add HAVE_DR_MP3
2018-05-07 17:45:43 +02:00
twinaphex fb141343c3 (NSW) Add RARCH_INTERNAL 2018-05-07 17:41:53 +02:00
twinaphex 2cfa05fbbb (RGUI) Expose hex options for colors 2018-05-07 16:11:38 +02:00
twinaphex 1e42e8f58c (Qt) Add translatable string for 'Clear' 2018-05-07 15:37:54 +02:00
twinaphex b2361987b7 Make 'Current Core' string translatable 2018-05-07 15:27:56 +02:00
twinaphex 648be7e181 (menu_displaylist.c) Cleanups 2018-05-07 15:23:38 +02:00
twinaphex 555ffba328 menu_displaylist_parse_settings_internal - cleanup 2018-05-07 15:16:56 +02:00
twinaphex 3c73183a04 Cleanups - fix warnings 2018-05-07 15:05:59 +02:00
twinaphex 3753ff15fd (NSW) Add header include dir for dr_mp3 2018-05-07 14:50:00 +02:00
twinaphex 8af8db59e0 (Menu displaylist) Cleanups 2018-05-07 14:48:13 +02:00
twinaphex 45b841274a menu_displaylist_ctl - cleanups 2018-05-07 13:47:08 +02:00
Brad Parker 649216c700 Qt: add view menu option to change between icon/list views 2018-05-07 02:36:00 -04:00
Brad Parker faf52937c5 Qt: buildfix 2018-05-07 00:07:12 -04:00
gblues 5b3dd70ac3 Use a different packet size
== DETAILS

We had some disagreement on what packet size to use.

The maximum packet size varies depending on the actual network
hardware in use; the typical Ethernet value is relatively safe,
but not 100% compatible.

RFC 791 does, however, define a minimum datagram size that all
IP hosts must be able to handle--and it's large enough for our
needs, since we're generally not writing more than maybe 100
bytes at a time anyway.

I also did a little bit of cleanup for readability.
2018-05-06 19:08:32 -07:00
Brad Parker 2a784ae1bc Qt: remove mutex, defer loading of grid items into layout, use guarded pointers for exec() operations, misc cleanup 2018-05-06 20:50:54 -04:00
twinaphex 3cf12dbbf8 DRIVER_DATA_GET calls nearly gone from menu_displaylist.c 2018-05-07 02:46:40 +02:00
twinaphex b647f6e019 Cleanups 2018-05-07 02:44:03 +02:00
twinaphex 7928c3b098 Cleanups 2018-05-07 02:40:47 +02:00
twinaphex 698999f129 (menu_displaylist.c) Cleanups 2018-05-07 02:35:40 +02:00
twinaphex d3c2393daf Cleanups 2018-05-07 02:33:21 +02:00
twinaphex 0384ed4535 Cleanups 2018-05-07 02:25:19 +02:00
twinaphex 96b0edf962 (menu_displaylist.c) Cleanups 2018-05-07 02:20:19 +02:00
twinaphex 886170f505 Cleanups 2018-05-07 02:14:41 +02:00
twinaphex 05c272afd6 (menu_displaylist.c) Cleanups 2018-05-07 02:10:03 +02:00
twinaphex fd76c3b8b1 Change back to previous behavior 2018-05-07 01:29:21 +02:00
gblues 23f0a85446 Implement UDP broadcast network logging on Wii U
== DETAILS

The broadcast address is a standard part of TCP/IP that is used to
send messages to everyone on the subnet. This patch updates the
logging code to do the following:

1. Derive the broadcast address from the Wii U's own IP address
   and subnet mask. These can all be obtained at runtime, which
   means we can...
2. Remove the PC_DEVELOPMENT_IP_ADDRESS define from Wii U's
   Makefile, because compiling in an IP is no longer needed.
3. Rewrite the net_listen script to listen for broadcast packets
   and print them out with timestamps.

Since it's using the broadcast address, the only requirement is
that the PC be on the same network subnet as the Wii U.

Because of the low overhead of UDP, I've made logging on by
default. This will make it a ton easier to get useful bug
reports from users.
2018-05-06 14:39:48 -07:00
Twinaphex ac0b2799c5 Merge pull request #6735 from gblues/master
Fix Salamander build
2018-05-06 19:38:25 +02:00
gblues 58e298ab8d Fix Salamander build
- move non-salamander objects out of salamander scope
- move the missing libc functions to general scope
- fix salamander_main inline invocation

TESTING: Ran 'make -f Makefile.wiiu SALAMANDER=1' successfully
2018-05-06 10:01:20 -07:00
twinaphex e18f81eb74 Update libretro-common 2018-05-06 17:11:18 +02:00
Twinaphex 72fa691c81 Merge pull request #6733 from Tatsuya79/patch-8
QT remove button ghostly inside highlighting
2018-05-06 17:06:53 +02:00
Tatsuya79 425da219c6 QT remove button ghostly inside highlighting 2018-05-06 17:05:21 +02:00
Twinaphex 8484ea4154 Merge pull request #6672 from gblues/master
Cleanup of Wii U launcher code
2018-05-06 15:24:00 +02:00
Twinaphex 0f87a06a67 Merge pull request #6730 from QuarkTheAwesome/gx2-patch1
[WiiU] Fix out-of-bounds rendering bug
2018-05-06 13:40:22 +02:00
Ash 68d789a4ea [WiiU] Fix out-of-bounds rendering bug 2018-05-06 21:18:03 +10:00
Brad Parker de71a4dee7 Qt: general performance improvements, fix crash on switching playlists quickly in grid view, prevent initial loading of grid items from blocking 2018-05-06 01:36:47 -04:00
Brad Parker d55b1a0ad4 Qt: only check for pending events of the main thread 2018-05-05 23:17:30 -04:00
Brad Parker c2ad8d47d3 Qt: only check for pending events of the main thread 2018-05-05 22:57:29 -04:00
Twinaphex ec8f40c833 Merge pull request #6727 from ceb33/master
fix to set hid device registration deterministic (#6497), to address issue #6640 re-adding dynamic device registration
2018-05-05 23:15:12 +02:00
Brad Parker 8e7e530747 Qt: fix crash on switching playlists quickly 2018-05-05 17:02:03 -04:00
ceb33 bafd2af885 remove custom debug output 2018-05-05 13:33:15 +02:00
ceb33 67784c85cf update and merge to current Retroarch version 2018-05-05 12:59:04 +02:00
ceb33 9008684651 re-add callback to manage usb device plugged in while retroarch is running 2018-05-05 12:48:01 +02:00
Twinaphex 2771f8cc41 Update CHANGES.md 2018-05-04 22:51:47 +02:00
Twinaphex a371a2f835 Merge pull request #6717 from altiereslima/master
Update Portuguese Brazilian translation
2018-05-04 22:38:51 +02:00
Twinaphex 9e0a3f0794 Merge pull request #6720 from Tatsuya79/patch-7
QT QSlider styling
2018-05-04 22:38:42 +02:00
twinaphex 9462e5aa93 Don't hide these settings behind advanced settings 2018-05-04 19:08:10 +02:00
Brad Parker a082ea7d76 Qt: remove zoom layout margins 2018-05-04 12:05:53 -04:00
twinaphex 91744d9dd0 Bump up version code 2018-05-04 16:27:14 +02:00
Tatsuya79 658ffb8951 QT QSlider styling 2018-05-04 12:11:53 +02:00
Mikael Brunnhede 1bc304b26e Automatically hide the "Configuration Override options" Quick Menu entry if neither of the sub-options are enabled. 2018-05-04 10:18:22 +02:00
altiereslima b03a943dd9 fix translation 2018-05-04 01:32:36 -03:00
altiereslima e8a0e78d9e Update Portuguese Brazilian translation 2018-05-04 01:21:31 -03:00
Brad Parker fc3251b6a9 Qt: use non-linear scale for zoom slider 2018-05-03 23:58:15 -04:00
twinaphex b2ceb50897 Update to 1.7.3 2018-05-04 05:45:22 +02:00
Twinaphex 6c95cbb6b4 Merge pull request #6716 from cubtekki/cubtekki-patch-0
Updated readme file
2018-05-04 05:07:02 +02:00
cubtekki cbd8f83288 Update README.md
Corrected some spelling errors.
2018-05-03 20:02:22 -07:00
cubtekki bcb7a7a6c8 Update README.md
Corrected some spelling errors.
2018-05-03 19:55:30 -07:00
Brad Parker e372bb5320 Qt: cut maximum zoom slider value in half 2018-05-03 22:10:45 -04:00
Brad Parker 0f2262f065 Qt: fix thumbnail image loading 2018-05-03 22:05:12 -04:00
Brad Parker 6cab8cf139 Qt: fix some grid images not drawing properly 2018-05-03 22:05:12 -04:00
Brad Parker c10e65e99e Qt: support image playlist in grid layout 2018-05-03 22:05:12 -04:00
Brad Parker c42ad9fbb9 Qt: respect current zoom level when changing playlists 2018-05-03 22:05:12 -04:00
Brad Parker 758d484874 Qt: use primary screen size divided by 8 for grid item size 2018-05-03 22:05:12 -04:00
Brad Parker 5fa0d75bd7 adjust zoom factors 2018-05-03 22:05:12 -04:00
Brad Parker 8752996018 Qt: add grid zoom slider 2018-05-03 22:05:12 -04:00
Brad Parker f79ba4885a Qt: threaded grid image loading 2018-05-03 22:05:12 -04:00
Brad Parker 5f7abb068b Qt: initial grid layout work 2018-05-03 22:05:12 -04:00
Brad Parker 19f6798947 Qt: make sure we are inited before calling into the driver 2018-05-03 21:47:21 -04:00
Twinaphex 756320755b Update CHANGES.md 2018-05-04 03:31:45 +02:00
Twinaphex ed9ce033d8 Update CHANGES.md 2018-05-04 03:30:43 +02:00
Twinaphex 5c59e7f523 Update CHANGES.md 2018-05-04 03:23:01 +02:00
Twinaphex ad7ccf6d7b Update CHANGES.md 2018-05-04 03:21:51 +02:00
Twinaphex 66dfae2234 Merge pull request #6713 from orbea/make
Makefile: Try to fix logic.
2018-05-04 01:16:35 +02:00
orbea 14bb035026 Makefile: Try to fix logic. 2018-05-03 15:50:11 -07:00
twinaphex 6c09195f5e (D3D8/D3D9) Updates 2018-05-03 22:08:14 +02:00
twinaphex 6d019284f8 Get rid of some of the casts 2018-05-03 22:06:04 +02:00
twinaphex 82ebb9576f Create d3d9_video_t and d3d8_video_t 2018-05-03 22:03:12 +02:00
twinaphex c4a03b6b45 (xdk360_fonts.cpp) Cleanups 2018-05-03 21:39:25 +02:00
twinaphex 9f80092bbb Updates 2018-05-03 21:29:58 +02:00
Twinaphex 4a1fc9b598 Merge pull request #6701 from orbea/cxx
qb: Fix checking the CXX compiler
2018-05-03 21:28:47 +02:00
orbea 8f861d438b qb: Fix checking the CXX compiler
This does the following.

1. Fixes checking if the CXX compiler works on platforms other than windows.
2. Turns the error when the CXX compiler is missing or doesn't work into a warning.
3. Adds HAVE_CC and HAVE_CXX.
4. Only adds CC and CXX to config.mk when HAVE_CC or HAVE_CXX are true.
5. Disables Qt companion, Vulkan, CXX_BUILD and NEED_CXX_LINKER if HAVE_CXX is false.
6. Explicitly errors when the CXX compiler is broken or missing and Qt or vulkan support is enabled.
7. No longer explicitly links with the CXX compiler on windows since this should no longer be needed.

This also adds the function `check_enabled` to `qb/qb.lib.sh` which
can be used to dynamically disable any libraries that require C++
support.
2018-05-03 12:24:32 -07:00
Twinaphex de1bf58997 Buildfix 2018-05-03 20:39:03 +02:00
twinaphex 3796e52018 (OSX) Go back to old code - connect handler was broken 2018-05-03 20:31:28 +02:00
Twinaphex 356cd47ce8 Silence some unused variable warnings 2018-05-03 19:35:27 +02:00
twinaphex dd8a2df253 Cleanup 2018-05-03 19:17:13 +02:00
Brad Parker 05404f9104 fix buffer overflow in url encoding (affecting msvc2010/2013) 2018-05-03 12:57:23 -04:00
Twinaphex 803373bb09 Merge pull request #6712 from Dwedit/msvc_qt_project
Add QT builds to MSVC2017 project
2018-05-03 17:47:10 +02:00
Dwedit 00c116051f Add QT builds to MSVC2017 project
Fix missing line in griffin_cpp.cpp, and normalize end of line to LF
2018-05-03 10:32:32 -05:00
Twinaphex 909ffd4de4 Update input_driver.c 2018-05-03 15:28:26 +02:00
twinaphex 7bc66ae710 Buildfixes for MSVC 2015 2018-05-03 15:20:06 +02:00
twinaphex 268baca939 (MSVC 2013) Add /bigobj for griffin_glslang.cpp 2018-05-03 14:52:37 +02:00
Twinaphex 171bf76100 Merge pull request #6711 from Tatsuya79/patch-4
QT restore preferences if they exist
2018-05-03 14:07:11 +02:00
Tatsuya79 49177bdd93 QT restore preferences if they exist 2018-05-03 13:42:25 +02:00
twinaphex 4fac2b339c Remove unused variable 2018-05-03 13:20:05 +02:00
twinaphex 28025802da Try to fix build failure 2018-05-03 13:11:38 +02:00
Twinaphex c9744c5ba4 Merge pull request #6704 from Dwedit/fix-win32-bug
Fix __stdcall calling convention for Win32 32-bit builds
2018-05-03 12:20:08 +02:00
Twinaphex 78d571239c Merge pull request #6710 from alphanu1/patch-2
Fix screen position for CRT user
2018-05-03 12:19:40 +02:00
Twinaphex 9feb9ec37c Merge pull request #6709 from alphanu1/patch-1
Fix incorrect menu sizing for CRT
2018-05-03 12:19:27 +02:00
Twinaphex d877bccde5 Merge pull request #6706 from fr500/fixes
fix #6700
2018-05-03 12:19:12 +02:00
alphanu1 7dab5b9ae3 Fix screen position for CRT user 2018-05-03 09:42:53 +01:00
alphanu1 c3beeb3ca9 Fix incorrect menu sizing for CRT 2018-05-03 09:36:37 +01:00
gblues 84e9c93c35 quotes for some, braces for others 2018-05-02 22:37:34 -07:00
radius 7bdbd005a8 fix #6700 2018-05-02 23:32:40 -05:00
gblues 27bfcf3c77 Replace angle includes with quote includes
=== DETAILS

Replaced includes for things that aren't standard library headers so
they use quotes instead of brackets.

Also fixed up a couple of headers that had include-order dependencies.
2018-05-02 21:31:00 -07:00
Dwedit 81457d74d3 Use WINAPI instead of __stdcall, not sure what keywords I can use or not, so I'll just use the macro instead of the keyword 2018-05-02 22:09:20 -05:00
Dwedit 0d2f9b9b11 Fix __stdcall calling convention for Win32 32-bit builds 2018-05-02 21:59:07 -05:00
twinaphex 896ac3c89f Add sublabel 2018-05-03 03:42:22 +02:00
twinaphex 27b399521f (MaterialUI) Fix icon label for Mixer Settings 2018-05-03 02:14:12 +02:00
twinaphex d45002779d Fix one label 2018-05-03 02:12:16 +02:00
twinaphex 4c212d460f Make Mixer Stream values translatable 2018-05-03 02:08:21 +02:00
twinaphex 1ab1d12398 Add sublabels to 'Add To Mixer' 2018-05-03 02:02:28 +02:00
twinaphex 965149d425 Add sublabels for mixer actions 2018-05-03 01:47:52 +02:00
twinaphex 7b1d61da3d (QuickMenu) Added Configuration Override submenu 2018-05-03 00:04:19 +02:00
twinaphex ea77fbbd38 Increase max streams from 8 to 16 2018-05-02 23:42:39 +02:00
twinaphex cdc60481cf Fix label 2018-05-02 21:56:45 +02:00
twinaphex ab360ae3ac (Audio mixer) Add Sequential playback mode 2018-05-02 21:43:16 +02:00
twinaphex b480cdbe26 Add 'Add To Mixer And Play' 2018-05-02 21:09:53 +02:00
twinaphex 0d36993ceb Remove name when sound is done 2018-05-02 21:02:45 +02:00
twinaphex 68a2f18bfb Cleanups 2018-05-02 20:52:06 +02:00
Twinaphex 44e935c64d Merge pull request #6702 from orbea/cxx_linker
Makefile.common: Fix vulkan builds on 32-bit linux.
2018-05-02 20:49:54 +02:00
twinaphex 5e32f7ab40 Add To Mixer and Add To Mixer And Play actions 2018-05-02 20:39:55 +02:00
twinaphex 90c1ce8fcc Add Add To Mixer And Play labels 2018-05-02 20:27:01 +02:00
twinaphex 51374fd2d1 Add better title for stream 2018-05-02 20:21:20 +02:00
twinaphex 9fbfd503af Add value descriptions for audio mixer streams 2018-05-02 20:13:13 +02:00
orbea 2fce9127d0 Makefile.common: Fix vulkan builds on 32-bit linux. 2018-05-02 10:44:45 -07:00
twinaphex eff75a3bcd Move nbio_buf_t to task_audio_mixer.c 2018-05-02 19:30:06 +02:00
Twinaphex 468b41f7bc Merge pull request #6695 from orbea/cxx
qb: Always print CC and CXX variables if set.
2018-05-02 16:57:26 +02:00
Twinaphex 3bdbe22e27 Merge pull request #6697 from altiereslima/master
Update Portuguese Brazilian translation
2018-05-02 14:53:43 +02:00
altiereslima 212e857656 Update Portuguese Brazilian translation 2018-05-02 09:38:24 -03:00
twinaphex eac899f573 Try to fix build for targets that don't have HAvE_OVERLAY defined 2018-05-02 13:52:27 +02:00
gblues 7448fd3157 More code re-organization
=== DETAILS
Since @aliaspider wants the `wiiu/` to be something of a mini-SDK, I've
reorganized the code I put in there:

- `wiiu/main.c` now only has the ELF/RPX entrypoints, and the code used
  by those entrypoints, with RA code removed (e.g. swapped retro_sleep()
  for usleep()). These entrypoints then call main() ...
- Moved `main()` and its support functions back into `frontend/drivers/platform_wiiu.c`
  I also renamed some of the support functions I wrote, and better
  organized them within the code.
- Moved `wiiu/input/` into the `input/` hierarchy:

  * The joypad drivers now live in `input/drivers_joypad/wiiu/`
  * The HID driver now lives in `input/drivers_hid/`
  * The Wii U specific headers now live in `input/include/wiiu`
  * I added `input/include` into the include search path to avoid
    using really ugly relative includes
2018-05-01 23:23:40 -07:00
Brad Parker 4785893847 Qt: select the first visible item, which may not be row 0 2018-05-02 01:16:17 -04:00
Brad Parker 0ed2a5307d Qt: always free string list 2018-05-02 01:16:17 -04:00
orbea 237a705a82 qb: Always print CC and CXX variables if set. 2018-05-01 17:47:14 -07:00
Twinaphex 6588969bb4 Merge pull request #6690 from fr500/fixes
fix #6631
2018-05-02 02:36:37 +02:00
Twinaphex d68266d92e Merge pull request #6688 from altiereslima/master
Update Portuguese Brazilian translation
2018-05-02 01:46:43 +02:00
Brad Parker 99e4271f29 fix null dereference when there is no runahead save state list 2018-05-01 19:19:35 -04:00
radius 3304dad729 fix #6631 2018-05-01 18:09:04 -05:00
twinaphex 95278d39f7 Buildfix for MSVC 2003 2018-05-02 01:03:40 +02:00
Brad Parker 17524d5681 add loglevel tag back 2018-05-01 18:45:43 -04:00
altiereslima d5e62b731b update 2018-05-01 19:25:17 -03:00
altiereslima eba3a1b72d Update Portuguese Brazilian translation 2018-05-01 19:21:14 -03:00
Brad Parker eb549fdc17 Qt: can't get core info if there isn't any 2018-05-01 18:17:28 -04:00
Twinaphex b247962115 Merge pull request #6686 from bparker06/qt_defer_init
Qt: only init new UI the first time it is about to be shown
2018-05-01 23:49:09 +02:00
Brad Parker e3712182bd Qt: only init new UI the first time it is about to be shown 2018-05-01 17:47:12 -04:00
Twinaphex f0d25d2fd9 Merge pull request #6685 from alphanu1/master
Fix for exit error on Linux when CRT mode inactive
2018-05-01 23:01:20 +02:00
alphanu1 92e3e6c337 Merge pull request #61 from alphanu1/alphanu1-patch-59
Fix for Linux users exit error when CRT disabled
2018-05-01 21:43:23 +01:00
alphanu1 d1b834a301 Fix for Linux users exit error when CRT disabled 2018-05-01 21:42:29 +01:00
Twinaphex 511039330e Merge pull request #6684 from alphanu1/master
Fix for native low res in Linux
2018-05-01 22:13:13 +02:00
alphanu1 87a45160f0 Merge pull request #60 from alphanu1/alphanu1-patch-58
Removed static from function to share aspect changing
2018-05-01 21:08:26 +01:00
alphanu1 82a2fb955e Removed static from function to share aspect changing 2018-05-01 21:07:52 +01:00
alphanu1 53ee0a2cb3 Merge pull request #59 from alphanu1/alphanu1-patch-57
Fix for native low res in Linux
2018-05-01 20:56:48 +01:00
alphanu1 97630d7fb1 Fix for native low res in Linux 2018-05-01 20:56:30 +01:00
alphanu1 cf1d9274d2 Merge pull request #58 from alphanu1/alphanu1-patch-56
Fix for native low res in Linux
2018-05-01 20:56:03 +01:00
alphanu1 c9d89e234a Fix for native low res in Linux 2018-05-01 20:55:24 +01:00
Twinaphex cd8ae4d7d3 Merge pull request #6678 from altiereslima/master
Update Portuguese Brazilian translation
2018-05-01 21:46:07 +02:00
twinaphex 33c1d55801 GetDisplayConfigBufferSizes and QueryDisplayConfig now go
through function pointers for backwards compatibility
2018-05-01 21:44:10 +02:00
alphanu1 65a0427471 Merge pull request #55 from alphanu1/alphanu1-patch-53
res fix
2018-05-01 20:32:49 +01:00
alphanu1 8584e27a81 res fix 2018-05-01 20:32:34 +01:00
alphanu1 11374ddf12 Merge pull request #54 from alphanu1/alphanu1-patch-52
Linux resolution improvements for CRT
2018-05-01 20:28:22 +01:00
alphanu1 11b0fe2a97 Linux resolution improvements for CRT 2018-05-01 20:28:01 +01:00
alphanu1 ab6acd1115 Merge pull request #53 from libretro/master
update
2018-05-01 20:26:09 +01:00
Twinaphex 402b1432ee Merge pull request #6681 from orbea/indent
Silence -Wmisleading-indentation warning
2018-05-01 20:13:26 +02:00
orbea b2f508d72e qb: Improve moc detection (#6680) 2018-05-01 13:40:42 -04:00
alphanu1 533f762e52 Merge pull request #52 from libretro/master
update
2018-05-01 18:39:20 +01:00
orbea e33a12c18f Silence -Wmisleading-indentation warning
gfx/video_crt_switch.c: In function ‘crt_screen_setup_aspect’:
gfx/video_crt_switch.c:95:7: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
       if (width < 1920)
       ^~
gfx/video_crt_switch.c:97:10: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
          height = 480;
          ^~~~~~
2018-05-01 10:17:19 -07:00
Brad Parker 20cb92c185 qb: allow building without Qt 2018-05-01 16:24:19 +00:00
Brad Parker 6639d0ed89 qb: don't fail if moc is missing 2018-05-01 08:51:57 -07:00
altiereslima 974a04e692 Update Portuguese Brazilian translation 2018-05-01 12:30:49 -03:00
Twinaphex eb498f56a6 Merge pull request #6674 from Brunnis/fix-incorrect-dialog-label
Fix incorrect labels on dialogs due to incorrect macro
2018-05-01 13:31:23 +02:00
Twinaphex 12d72e26cc Merge pull request #6673 from alphanu1/master
Tweaks to modeline genorator
2018-05-01 13:24:40 +02:00
alphanu1 dcb7dd12c8 Merge pull request #51 from alphanu1/alphanu1-patch-51
Better startup resolution for CRT
2018-05-01 12:14:53 +01:00
alphanu1 4b8fbf8682 Better startup resolution for CRT 2018-05-01 12:14:25 +01:00
alphanu1 2279870235 Merge pull request #50 from alphanu1/master-4
modeline tweaks, better porches
2018-05-01 12:10:58 +01:00
alphanu1 cc1024ddd0 modeline tweaks, better porches 2018-05-01 12:10:32 +01:00
alphanu1 50751e3f43 Merge pull request #49 from libretro/master
update
2018-05-01 12:08:27 +01:00
Mikael Brunnhede b2187d4b10 Fix incorrect labels on dialogs due to incorrect macro. 2018-05-01 12:17:36 +02:00
Brad Parker 791aaa00e1 qb: detect Qt automatically 2018-04-30 22:11:55 -07:00
gblues 04cefd27d1 Cleanup of Wii U launcher code
== DETAILS

The Wii U main entrypoints were embedded in the frontend driver,
which isn't a great place for them. Also, the `main()` method was
pretty long and monolithic. Now it's (much) less so.

Changes:

- Refactor out the main entrypoints into their own source files
  (`wiiu/main.c` and `wiiu/main.h`)
- Optimize includes in both files, so only the minimum needed to
  compile are included.
- The `main()` method is a lot easier to understand now. It's no longer
a confusing mess of ifdefs.
- There's a small amount of changes in the headers for future work, which
  is switching kpad_driver to be callback-driven. The only change here is
  to import the function that will be used, and define some data types.

Testing:
- Did local builds and confirmed build is successful
- Successfully loaded a core and switched among a few games
2018-04-30 21:56:06 -07:00
Twinaphex 9ba9f9e8bd Merge pull request #6671 from altiereslima/master
Update Brazilian Portuguese translation
2018-05-01 04:55:49 +02:00
altiereslima 0058d734a2 Update Brazilian Portuguese translation
based in english file: msg_hash_us.h
2018-04-30 23:48:21 -03:00
twinaphex b650d484f4 (Qt) Change label to Clear 2018-05-01 04:35:02 +02:00
Brad Parker cc94cafa8f update Japanese translation 2018-04-30 22:06:32 -04:00
Brad Parker 4df26353dd Qt: add option (off by default) to suggest the currently loaded core first 2018-04-30 20:33:28 -04:00
Brad Parker f2f37a3309 Qt: refocus UI when unloading core/content 2018-04-30 19:52:21 -04:00
twinaphex bf084da088 (ui_companion_driver) cleanups 2018-05-01 01:29:17 +02:00
Brad Parker 71257adb8e Qt: add setting in User Interface to enable use of the desktop menu in general (disabling it may improve startup time if desktop menu is not being used) 2018-04-30 19:11:38 -04:00
Twinaphex fc28edd821 Merge pull request #6670 from Tatsuya79/patch-3
small text style change
2018-04-30 23:09:56 +02:00
Tatsuya79 dbdef08a90 small text style change 2018-04-30 23:02:18 +02:00
twinaphex b7ceedd891 Qt GUI won't work for C89 2018-04-30 21:03:47 +02:00
Twinaphex 62256b77c3 Merge pull request #6668 from bparker06/qt_wimp_squash
Qt WIMP GUI
2018-04-30 20:51:30 +02:00
Brad Parker a1aefc901c Qt WIMP GUI 2018-04-30 14:33:05 -04:00
Twinaphex 4e057edb1e Merge pull request #6666 from alphanu1/master
Fixed incorrect variable assignment.
2018-04-30 19:47:07 +02:00
alphanu1 93bdb5c4f4 Merge pull request #48 from alphanu1/alphanu1-patch-48
Fix incorrect variable
2018-04-30 18:41:40 +01:00
alphanu1 2226dec436 Fix incorrect variable 2018-04-30 18:41:20 +01:00
Twinaphex 97ccfdf020 Merge pull request #6665 from alphanu1/master
Windows hz bug fix
2018-04-30 19:27:49 +02:00
alphanu1 34ecc81484 Merge pull request #47 from alphanu1/alphanu1-patch-47
Moved variable back to the top
2018-04-30 17:54:20 +01:00
alphanu1 675da4692e Moved variable back to the top 2018-04-30 17:54:00 +01:00
alphanu1 3e17cbd2e1 Merge pull request #46 from alphanu1/alphanu1-patch-46
Variable rename
2018-04-30 17:51:51 +01:00
alphanu1 9400754a2b Variable rename 2018-04-30 17:51:28 +01:00
alphanu1 fdddbb713d Merge pull request #45 from alphanu1/alphanu1-patch-45
Variable rename
2018-04-30 17:50:36 +01:00
alphanu1 db751b4241 Variable rename 2018-04-30 17:50:13 +01:00
alphanu1 73b5aff2e1 Merge pull request #44 from alphanu1/alphanu1-patch-44
bug fix with hz switching
2018-04-30 17:15:38 +01:00
alphanu1 11b7f76526 bug fix with hz switching 2018-04-30 17:14:19 +01:00
Twinaphex 54f54fce28 Merge pull request #6664 from meleu/patch-21
don't allow slow motion if cheevos enabled
2018-04-30 18:13:28 +02:00
twinaphex 6ba2e72a3b Add title for mixer stream settings 2018-04-30 18:12:22 +02:00
twinaphex 1f2a543232 Change logging back to 0 2018-04-30 17:53:07 +02:00
twinaphex 5aeab54ab7 (Audio mixer) Ability to individually set volume per stream 2018-04-30 17:51:01 +02:00
alphanu1 9474b4be74 Merge pull request #43 from alphanu1/master-3
Linux / Windows hz bug fix and Linux low res modeline generator fix
2018-04-30 16:50:58 +01:00
alphanu1 f672c7dc5c Linux / Windows hz bug fix and Linux low res modeline generator fix
when merging Linux CRT refresh rate hz was dealt with in floats for Linux but ints for windows.
2018-04-30 16:49:22 +01:00
alphanu1 3edd7a6ac8 Merge pull request #42 from alphanu1/alphanu1-patch-41
Linux / windows hz bug fix
2018-04-30 16:41:04 +01:00
alphanu1 af3eb9e851 Linux / windows hz bug fix
when merging Linux CRT refresh rate hz was dealt with in floats for Linux but ints for windows.
2018-04-30 16:40:27 +01:00
alphanu1 e6dd809c8a Merge pull request #41 from libretro/master
RA update
2018-04-30 16:30:57 +01:00
meleu e57d0049f3 disable slow motion if cheevos enabled 2018-04-30 12:27:35 -03:00
twinaphex 01e85b321b Improve audio_driver_menu_sample 2018-04-30 15:44:12 +02:00
twinaphex 0cea2cf158 Remove two Coverity warnings 2018-04-30 15:32:28 +02:00
twinaphex 1c90866070 Refactor this a bit and document it 2018-04-30 15:24:40 +02:00
twinaphex 25a7cb0f66 (Menu) Rename hack_shader_pass to scratchpad.unsigned_var 2018-04-30 15:19:54 +02:00
twinaphex 49341bac26 Add Play/Play (Looped) actions 2018-04-30 15:04:29 +02:00
twinaphex eb4ee2d57c Merge branch 'master' of https://github.com/libretro/RetroArch 2018-04-30 14:34:48 +02:00
twinaphex 965859ddcb Start adding mixer controls - ability to stop and remove loaded tracks 2018-04-30 14:34:25 +02:00
Twinaphex 22e55e61de Merge pull request #6656 from gblues/master
WIIU: Disable screen-dimming while core is running
2018-04-30 02:25:05 +02:00
gblues 162d1fbfb5 WIIU: Disable screen-dimming while core is running
== DETAILS
In my extended testing, I found that the HID device inputs don't get factored
into resetting things like the burn-in protection and automatic power down.

The automatic power-down can't be changed in software, but the screen dimming
can!

This patch disables the screen dimming while the core is running, but turns
it back on while the menu is displayed. This way, users who want the screen
dimming functionality to kick in need to simply enter the RA menu.
2018-04-29 16:26:14 -07:00
Twinaphex 05ea2cff96 Update CHANGES.md 2018-04-29 18:49:51 +02:00
Twinaphex e19b6faa7e Update CHANGES.md 2018-04-29 18:49:23 +02:00
Twinaphex bf64c1cf23 Merge pull request #6655 from alphanu1/master
Linux switching for CRT
2018-04-29 18:41:54 +02:00
Twinaphex 2285d19b90 Merge pull request #6653 from RobLoach/wbfs
Add Wii Backup File WBFS scanning
2018-04-29 17:21:37 +02:00
Twinaphex 29b8c47577 Merge pull request #6654 from theheroGAC/patch-30
Update msg_hash_it.h with the translations of the new strings
2018-04-29 16:54:18 +02:00
alphanu1 896041f468 Add files via upload 2018-04-29 15:47:32 +01:00
alphanu1 db2eaf97e4 Merge pull request #40 from alphanu1/alphanu1-patch-40
Linux switching CRT
2018-04-29 15:44:29 +01:00
alphanu1 16ccbbc75a Linux switching CRT 2018-04-29 15:44:08 +01:00
alphanu1 ec3ab4031b Merge pull request #39 from alphanu1/alphanu1-patch-39
Code clean up and Linux switching
2018-04-29 15:39:52 +01:00
alphanu1 a0b46d9a38 Code clean up and Linux switching 2018-04-29 15:38:16 +01:00
theheroGAC 51d1baa646 Update msg_hash_it.h 2018-04-29 15:54:19 +02:00
Rob Loach 00092eb5ea feat: Add Wii Backup File WBFS scanning 2018-04-29 09:51:38 -04:00
alphanu1 ff928ddb7c Merge pull request #38 from alphanu1/alphanu1-patch-38
Linux switching incorporation
2018-04-29 13:51:44 +01:00
alphanu1 7d53e6a16f Linux switching incorporation 2018-04-29 13:51:18 +01:00
alphanu1 d17ce844d5 Merge pull request #37 from alphanu1/alphanu1-patch-37
Linux switching incorporation
2018-04-29 13:50:08 +01:00
alphanu1 0498ab6b86 Linux switching incorporation 2018-04-29 13:49:32 +01:00
alphanu1 8aa4d52367 Merge pull request #36 from alphanu1/alphanu1-patch-36
Linux switching incorporation
2018-04-29 13:48:56 +01:00
alphanu1 a930afce31 Linux switching incorporation 2018-04-29 13:48:08 +01:00
twinaphex 4380bc52bd (MSVC) Buildfixes 2018-04-29 14:47:57 +02:00
alphanu1 2d36a32bcd Merge pull request #35 from alphanu1/alphanu1-patch-35
Linux switching incorporation
2018-04-29 13:47:26 +01:00
alphanu1 1eedb0406b Linux switching incorporation 2018-04-29 13:46:43 +01:00
Twinaphex 6cd046a42a Merge pull request #6650 from alphanu1/master
Restore resolution fix
2018-04-29 13:49:14 +02:00
alphanu1 c73b4b26ba Merge pull request #34 from alphanu1/alphanu1-patch-34
Changes to stop unwanted resolution change for non CRT users
2018-04-29 01:42:50 +01:00
alphanu1 1f8540ca9d Changes to stop unwanted resolution change for non CRT users 2018-04-29 01:41:38 +01:00
twinaphex d36026575e Remove obsolete diff 2018-04-29 01:12:54 +02:00
twinaphex 91fcb49270 (Menu audio) Fix situation where a libretro core is running
in the background and menu audio is playing - we don't want
audio_driver_menu_sample called then
2018-04-29 01:05:04 +02:00
twinaphex b0ef193117 Add 'Enable menu audio' setting 2018-04-29 00:41:53 +02:00
twinaphex 773fc1ebad Create audio_driver_menu_sample 2018-04-29 00:06:54 +02:00
alphanu1 90d62fd0cc Restore resolution fix 2018-04-28 20:53:39 +01:00
alphanu1 b51c8d62e7 Restore resolution fix 2018-04-28 20:52:58 +01:00
alphanu1 6aa072b6cf Restore resolution fix 2018-04-28 20:52:24 +01:00
alphanu1 46afabee6a Merge pull request #33 from libretro/master
MME Update 172
2018-04-28 20:51:51 +01:00
twinaphex 686faa2407 Add experimental-audio.diff 2018-04-28 21:40:36 +02:00
twinaphex b6df41d808 (audio_driver.c) Cleanups 2018-04-28 20:06:07 +02:00
twinaphex 5a80a6046f (Android) Remove no longer needed machine/cpu-features.h 2018-04-28 19:29:30 +02:00
Twinaphex 80b480e855 Merge pull request #6648 from fr500/master
fix #6644
2018-04-28 19:07:54 +02:00
radius 7b82c8a9bc fix #6644 2018-04-28 11:56:21 -05:00
radius 5e1a698fa2 fix #6644 2018-04-28 11:42:48 -05:00
twinaphex f14735961a (libFLAC) turn into relative path header includes 2018-04-28 15:14:53 +02:00
twinaphex 238091f182 (OSX/Android) Add Dr. Flac/Dr. Mp3 support to Android/OSX 2018-04-28 14:33:48 +02:00
twinaphex e3ce768ad0 (dr_mp3.h) Fix C89_BUILD issues 2018-04-28 14:32:10 +02:00
twinaphex 3583e1e501 Update 2018-04-28 14:22:42 +02:00
twinaphex e7272ddefa (Audio mixer) Add MP3 support as well 2018-04-28 14:18:04 +02:00
twinaphex 64f31f1ddd Update libretro-common 2018-04-28 13:52:54 +02:00
Twinaphex 2439673dcf Merge pull request #6646 from RobLoach/gfx-context
Fix missing division in mali fbdev
2018-04-28 13:26:20 +02:00
twinaphex 381f14fa9a (dr_flac.h) Silence warnings 2018-04-28 13:13:22 +02:00
twinaphex 9a6e069d6f (dr_flac.h) Assume stdint.h presence 2018-04-28 12:44:52 +02:00
twinaphex 89d765d6c7 Define DR_FLAC_NO_STDIO 2018-04-28 12:44:25 +02:00
twinaphex 437c4fbc0a (dr_flac.h) C89_BUILD fixes 2018-04-28 12:37:50 +02:00
twinaphex 3f7c318e3f (Audio mixer) Add FLAC support to audio mixer 2018-04-28 11:17:37 +02:00
Rob Loach 71c031099b Fix missing division in mali fbdev 2018-04-27 22:44:53 -04:00
twinaphex faa99bd323 Start adding FLAC hooks 2018-04-27 23:45:06 +02:00
twinaphex 714f7b7b13 Cleanups 2018-04-27 23:21:44 +02:00
twinaphex 958602d328 HAVE_BUILTINFLAC no longer needs to be excluded for C89 2018-04-27 23:17:28 +02:00
twinaphex 1f2ef858ab Update libretro-common 2018-04-27 23:12:24 +02:00
Twinaphex b693d76ebb Merge pull request #6638 from bearoso/fixmali
Fix typo in mali fbdev driver.
2018-04-27 19:57:56 +02:00
Twinaphex 6ad624f5bd Merge pull request #6639 from bearoso/travis
Adjust travis build to only use libraries the build-server supports.
2018-04-27 19:57:45 +02:00
Brandon Wright c7f04102c7 Adjust travis build to only use libraries the build-server supports. 2018-04-27 12:48:58 -05:00
Brandon Wright 0e013ced75 Fix typo in mali fbdev driver. 2018-04-27 12:42:46 -05:00
Twinaphex e52bb69b35 Merge pull request #6637 from orbea/flac
Makefile.common: Fix segfaults with --disable-builtinflac.
2018-04-27 19:02:09 +02:00
orbea 76b4b426af Makefile.common: Fix segfaults with --disable-builtinflac. 2018-04-27 09:54:05 -07:00
twinaphex 80025692c1 (Android) Bump up version code 2018-04-26 21:25:38 +02:00
Twinaphex 97215d5c8a Merge pull request #6625 from gblues/master
Fix WaveBird support for the Wii U GCA
2018-04-26 20:46:23 +02:00
twinaphex f1d707a043 Running gl_check_capability from gl_get_flags resulted in a crash
on some Android systems, so unfortunately we cannot selectively hide
away GPU Hard Sync for now
2018-04-26 20:45:01 +02:00
twinaphex 37b1c9e8e9 Add NULL entry 2018-04-26 16:05:57 +02:00
Twinaphex a097d5f6ac Merge pull request #6630 from gingerbeardman/patch-1
changed APP_UNIQUE_ID to next free & valid HEX number
2018-04-26 14:55:32 +02:00
Matt Sephton c6d6bb26c3 changed APP_UNIQUE_ID to next free & valid HEX number
was 0xBAC1G
2018-04-26 13:54:23 +01:00
twinaphex c482aff8b2 No idea where this character came from 2018-04-26 13:38:45 +02:00
Twinaphex 68a93e67e9 Merge pull request #6624 from fr500/master
prevent crashing in cores that don't range check retro_set_controller…
2018-04-26 13:33:21 +02:00
gblues f378e2bfcf Fix WaveBird support for the Wii U GCA
== DETAILS
Thanks to JacobM at GBAtemp for helping me test this.

The WaveBird wasn't being properly picked up due to the port status byte
being different from normal GC controllers. (Why? who knows. Probably
so games could detect the WB and show WB-specific OSDs).

This implementation should be more future-proof, to handle any other
unexpected status bytes.
2018-04-25 21:28:33 -07:00
radius 0964444e06 prevent crashing in cores that don't range check retro_set_controller_port 2018-04-25 19:51:55 -05:00
Twinaphex f0e057c8d0 Merge pull request #6623 from leiradel/master
Remove logging from cheevos
2018-04-25 23:52:40 +02:00
Twinaphex 6ac4032735 Merge pull request #6580 from gblues/gblues/hid
Working HID driver for Wii U [TESTING NEEDED]
2018-04-25 23:10:39 +02:00
twinaphex 9663f5199e (Switch) Enable HAVE_RUNAHEAD for Switch 2018-04-25 22:20:48 +02:00
Twinaphex 09394198b2 Update CHANGES.md 2018-04-25 22:10:04 +02:00
Andre Leiradella f04548a95d Fixed warning about unused STUB_LOG; removed unused debug functions 2018-04-25 18:02:31 +01:00
Andre Leiradella 029ba3d2f6 Mute cheevos logging, define CHEEVOS_VERBOSE in cheevos.h to enable 2018-04-25 17:56:15 +01:00
twinaphex 023e280319 win32_get_refresh_rate not available on Xbox 2018-04-25 14:20:37 +02:00
twinaphex 9a7ca5fe57 C89 buildfix 2018-04-25 12:02:35 +02:00
twinaphex 7b1ad55b20 Try to use snprintf instead of sprintf 2018-04-25 11:31:50 +02:00
Twinaphex 77b092ffc3 Merge pull request #6619 from Tatsuya79/patch-1
XMB fix crash with scale factor under 100
2018-04-25 10:55:19 +02:00
Tatsuya79 0737b90080 XMB fix crash with scale factor under 100 2018-04-25 10:54:04 +02:00
twinaphex 2fd9373c05 Merge branch 'master' of https://github.com/libretro/RetroArch 2018-04-25 10:44:04 +02:00
twinaphex fee49f0e7e Update libretro-common 2018-04-25 10:43:19 +02:00
Twinaphex a58f80cc09 Update CHANGES.md 2018-04-25 10:42:50 +02:00
Twinaphex 8e1c2e48c4 Update CHANGES.md 2018-04-25 10:42:50 +02:00
Celerizer 212d7bfbe1 [Cheevos] Store only login token, not password 2018-04-25 10:42:50 +02:00
twinaphex 2178f7b8ce Update libretro-common 2018-04-25 10:21:26 +02:00
Twinaphex 7902a60669 Update CHANGES.md 2018-04-25 10:15:40 +02:00
Twinaphex 134c1e6083 Merge pull request #6618 from celerizer/master
[Cheevos] Store only login token, not password
2018-04-25 10:14:25 +02:00
Twinaphex 6344162900 Update CHANGES.md 2018-04-25 10:13:57 +02:00
twinaphex de111ea903 Should fix some zip archives potentially not working on Linux; the
stream member of zlib was being set to random memory, so it was
attempted
 to be freed on line 73 of trans_stream_zlib.c
2018-04-25 10:10:22 +02:00
gblues 07864aebb4 Add fault-tolerance to kpad driver
== DETAILS

So, the KPadRead function will sometimes return 0, but this doesn't mean
the wiimote is actually disconnected. It's usually something transient, like
the BT chip has nothing to send or whatever. I don't know.

So, I added a buffer so that it won't disconnect the pad without 5
consecutive 0-reads.

This is a temporary hack; a proper solution will use the Wii U's callback
mechanisms to do wiimote detection. But that's a separate project. This at
least prevents OSD spam.

== TESTING

Tested locally. Verified that connecting/disconnecting nunchuk during play
still works properly.
2018-04-24 21:46:42 -07:00
gblues f33fa3d566 Fix pad leak in kpad (wiimote) driver
== DETAILS

This is the wiimote version of the same bug I previously fixed in the HID
driver, where disconnected pads didn't actually invoke the unregister task.

This has an extra wrinkle, in that we *also* need to invoke the unregister
task when the wiimote device changes (e.g. user plugs in a nunchuk or
classic controller).

Now, there's still the problem of the "disconnect" detection being broken; so
a consequence of this commit is OSD spam. However, the actual wiimote input
is processed successfully and there's no noticeable issues in the pad
handling.

== TESTING

Using Mario 3, I played a level in which I started as bare wiimote, then
hot-plugged the nunchuk, and the input switched automatically. At  the
end of the level, I hot-unplugged the nunchuk and it automatically reverted
to horizontal layout; and the pad remained 100% responsive the entire time.
2018-04-24 21:20:08 -07:00
Celerizer ca4f70db22 [Cheevos] Store only login token, not password 2018-04-24 21:31:07 -05:00
bparker06 2160f185f1 Update CHANGES.md 2018-04-24 19:34:31 -04:00
Twinaphex d65b387d0f Update AndroidManifest.xml 2018-04-24 19:03:57 +02:00
twinaphex ea69340130 Update 2018-04-24 18:36:35 +02:00
twinaphex c92142cdbd Duplicate latency settings 2018-04-24 18:33:38 +02:00
Twinaphex f2527b3a3c Merge pull request #6616 from Tatsuya79/master
Fix console layout case.
2018-04-24 18:21:02 +02:00
Tatsuya79 d851cbf3d5 Fix console layout case. 2018-04-24 18:14:18 +02:00
Twinaphex 485825fcd1 Merge pull request #6615 from Tatsuya79/master
XMB PSP layout thumbnail scaling.
2018-04-24 18:09:07 +02:00
Twinaphex bd01ab80ca Merge pull request #6614 from Dwedit/copy_load_info_bugfix
Two fixes for copy_load_info.c
2018-04-24 18:08:27 +02:00
Tatsuya79 31415f760a XMB PSP layout thumbnail scaling. 2018-04-24 17:47:02 +02:00
twinaphex b2e9a328cd Add User Interface -> Views -> Quick Menu -> Show
Overlays/Remaps/Latency
2018-04-24 17:46:49 +02:00
Dwedit dd6eb92352 Two fixes for copy_load_info.c
* Additional check before copying data in clone_retro_game_info
* Sizes the dest string list in string_list_clone to capacity rather than size
2018-04-24 10:32:31 -05:00
twinaphex b907ee2503 Add sublabels for CRT SwitchRes 2018-04-24 17:08:43 +02:00
twinaphex 65fe25f03c (RGUI) Add background border filler thickness enable 2018-04-24 16:45:06 +02:00
twinaphex ee421fcaa8 Add RGUI Border Filler Enable 2018-04-24 16:01:51 +02:00
gblues f6b33b1d30 missing file 2018-04-24 06:37:02 -07:00
twinaphex 68c9cf4cb9 update CHANGES.md 2018-04-24 15:27:12 +02:00
twinaphex 6b31bd8b48 Only show Menu Linear Filter for RGUI and only show it for
video drivers that implement it
2018-04-24 15:14:06 +02:00
twinaphex c506f489df (D3D8) Hook up Menu Linear Filter 2018-04-24 14:49:58 +02:00
twinaphex a75e7ede0d (D3D9) Implement Menu Linear Filter 2018-04-24 14:47:21 +02:00
twinaphex 77d97d2407 (menu_displaylist.c) Cleanups 2018-04-24 14:24:25 +02:00
twinaphex f228b26755 Cleanups 2018-04-24 14:08:38 +02:00
twinaphex 757d1baa8d Cleanups 2018-04-24 13:51:27 +02:00
twinaphex 5164e62172 User Interface -> Views - show 'no entries to display' instead
of getting locked in
2018-04-24 13:46:14 +02:00
twinaphex 381bc28530 Update CHANGES.md 2018-04-24 13:19:37 +02:00
twinaphex 64bdf7e48e Prevent collision 2018-04-24 08:33:14 +02:00
gblues 1d84c0eca1 Fix analog for DS3, plus some cleanups
== DETAILS

- DS3 analog wasn't working mainly because I forgot to actually declare the
  axes in input/input_autoconfig.c when declaring the pad. Whoops.
- I also moved the axis decoding logic to a more central place, because it
  clearly is not Wii U specific.
- Removed some dead commented-out code

== TESTING

Can use analog inputs on both GCA and DS3. Tested in Mario 3 on Nestopia core.

Haven't tested with any actual analog games, but I did confirm via logging
that the correct ranges are produced.
2018-04-23 23:22:27 -07:00
twinaphex 265ae728dd (XMB) Add XMB menu layout - ability to switch between PS3 (Console)
and PSP (Handheld) layouts
2018-04-24 07:38:53 +02:00
twinaphex af351932bd (XMB) Cleanups 2018-04-24 07:19:29 +02:00
twinaphex 72428a23c5 (shader_vulkan.cpp) Move some functions to vulkan_common.c 2018-04-24 07:07:58 +02:00
twinaphex a482c90222 (dynamic.c) Cleanups 2018-04-24 04:49:02 +02:00
twinaphex 2760586086 Cleanups 2018-04-24 04:46:13 +02:00
Twinaphex 17cbc80a9b Merge pull request #6609 from RobLoach/patch-32
Disable Travis email notifications
2018-04-24 03:35:16 +02:00
Rob Loach 431d15746e test: Disable Travis email notifications
@twinaphex reported that he was getting a lot of Travis email notifications. These are not needed, as the build status is reported on both Pull Requests, and the Status Badge.
2018-04-23 17:08:43 -04:00
twinaphex a93289e311 (materialui) add icons 2018-04-23 22:47:50 +02:00
twinaphex ebfa4bdcdc Implement two stub functions 2018-04-23 18:34:23 +02:00
twinaphex d6c17178a3 Add some logging for shader backend setup 2018-04-23 18:25:41 +02:00
twinaphex 77d815a572 Get rid of warning 2018-04-23 17:48:31 +02:00
twinaphex c90c98dcaa Silence warnings 2018-04-23 17:37:37 +02:00
twinaphex 789ef63dee (360) Don't bake in HAVE_XUI anymore; buildfixes for C++ 2018-04-23 17:35:36 +02:00
twinaphex fec8d3294c Cleanup 2018-04-23 17:23:14 +02:00
twinaphex 95ecbc0859 Update 2018-04-23 17:22:02 +02:00
twinaphex 830068e5bd Create d3d9x_constant_table_set_float_array 2018-04-23 17:20:08 +02:00
twinaphex a6fcd9dae0 Create d3d9x_constant_table_set_defaults 2018-04-23 17:09:11 +02:00
twinaphex bd3f39b005 Remove SetMatrix macro 2018-04-23 17:04:59 +02:00
twinaphex 0e5ccd7c15 Create d3d9x_constant_table_set_matrix 2018-04-23 17:04:30 +02:00
twinaphex dbb9a43abe (HLSL) Cleanups 2018-04-23 15:59:09 +02:00
twinaphex 8d02343b53 (HLSL) Cleanups 2018-04-23 15:58:00 +02:00
twinaphex d7fa70927c (HLSL) Cleanups 2018-04-23 15:55:26 +02:00
twinaphex d03ff06cf3 (HLSL) Cleanups 2018-04-23 15:51:24 +02:00
twinaphex 282b4ba21b (d3d9_common.c) Cleanups 2018-04-23 15:40:43 +02:00
twinaphex 0c4a3a83ce (HLSL) Fix implicit declaration 2018-04-23 15:32:47 +02:00
Steven M. Vascellaro 5061bc5a65 Fix variable names for 'video_msg'
A few variables for video message color/position were using the wrong variable name

https://github.com/libretro/RetroArch/blob/master/configuration.h#L274-L279
2018-04-23 09:32:46 -04:00
twinaphex af734939ee More HLSL work 2018-04-23 15:26:35 +02:00
twinaphex 32c92a9a22 Rename d3dxbuffer_release 2018-04-23 15:04:19 +02:00
twinaphex 45cea92ba2 Remove null_renderchain 2018-04-23 14:57:37 +02:00
twinaphex 871f04e19a (slang) Cleanups 2018-04-23 14:56:02 +02:00
twinaphex e54cb1b121 Only show black frame insertion for the video drivers/context drivers
that support it
2018-04-23 14:15:21 +02:00
twinaphex ee621ba476 Silence Coverity warning 2018-04-23 14:07:10 +02:00
twinaphex f1fa1d4879 Previously, GPU Hard Sync options would only show up if the
video driver was explicitly set to the GL driver; now, it can be
dynamically shown for more video drivers if there are going to be
more drivers supporting this feature other than GL
2018-04-23 13:42:09 +02:00
twinaphex c4c8699ee3 Only show max swapchain images if supported by video driver and/or
context driver
2018-04-23 13:34:30 +02:00
twinaphex 6f4fd8859a Add customizable swapchain images flag to VC EGL context 2018-04-23 13:12:00 +02:00
twinaphex b1a2d1991c (d3d10.c) Cleanups 2018-04-23 13:09:05 +02:00
twinaphex 6f3003554e (D3D10/D3D11/D3D12) Don't load menu pipeline shaders unless XMB
is selected
2018-04-23 12:59:28 +02:00
twinaphex 5370c59201 Cleanups/style nits 2018-04-23 12:03:50 +02:00
twinaphex bac0d22ce9 Create menu_display_osk_ptr_at_pos 2018-04-23 11:58:18 +02:00
twinaphex 8bc3283bd5 Create menu_display_draw_keyboard 2018-04-23 11:42:55 +02:00
twinaphex f8ccf50fd4 Make materialui_render_keyboard and xmb_render_keyboard identical 2018-04-23 11:36:15 +02:00
twinaphex 54ec4e47e8 Silence another warning 2018-04-23 11:31:39 +02:00
twinaphex eb69025ca8 Cleanups 2018-04-23 11:30:38 +02:00
twinaphex c18d2e0432 Silence warnings 2018-04-23 10:49:36 +02:00
Twinaphex b41c4ed624 Update 2018-04-23 10:22:54 +02:00
gblues f7135bcee6 Fix analog reading on GCA
== DETAILS
After a little trial and error, I got analog input working for the
Wii U GC adapter.

DS3 might work, but it's untested.
2018-04-22 23:47:07 -07:00
gblues ed742c48e0 Fix hotplugging
== DETAILS
So, it turns out that there *is* a autoconfig disconnect handler. Took digging
through tasks/task_autodetect.c to find it!

So, I added a call to the handler when the pad gets disconnected.

This seems to solve the problem of the pad not disappearing from the menu.

(At the very least, the user's pad index reverts to "none" which is still
an improvement)

== TESTING
Tested manually, made sure it didn't crash or leak slots.
2018-04-22 17:34:20 -07:00
twinaphex 997c24ae0c Make FLAC, zlib and LZMA support in libchdr optional 2018-04-22 20:19:07 +02:00
twinaphex fc169cf4fe Split up libchdr_chd.c into several files 2018-04-22 19:50:14 +02:00
twinaphex 8e2dfa6184 Cleanups 2018-04-22 19:19:27 +02:00
twinaphex 8a1f2f5cf2 Update libretro-common 2018-04-22 18:36:30 +02:00
twinaphex 7bef8746a3 Add chd_precache code to libchdr 2018-04-22 18:04:45 +02:00
twinaphex 1fd2cf1ff5 Update libchdr chd 2018-04-22 17:43:57 +02:00
twinaphex 5dc916f0b3 Take out another header include 2018-04-22 15:45:56 +02:00
twinaphex 04fa4871f0 Create d3d_translate_filter and get rid of duplicate functions 2018-04-22 15:45:11 +02:00
twinaphex 88387ccbde (D3D8) Cleanups 2018-04-22 15:34:08 +02:00
twinaphex 3a93377811 D3D8 buildfix 2018-04-22 14:55:15 +02:00
twinaphex 9e741019f3 (menu_display_d3d8.c) Buildfix 2018-04-22 14:46:20 +02:00
twinaphex 2a655116a6 Set #define CINTERFACE in these files 2018-04-22 14:27:39 +02:00
twinaphex 80fdd6d2a1 Less pointer/variable casting going on 2018-04-22 14:20:59 +02:00
twinaphex ca8829fe3c (D3D9) Simplifications 2018-04-22 14:00:32 +02:00
twinaphex a7e40ea3f4 (d3d8_common.c) Define CINTERFACE, get rid of C++ versions 2018-04-22 13:34:05 +02:00
twinaphex 5ee6cdf753 (d3d9_common.c) Cleanups 2018-04-22 13:26:58 +02:00
twinaphex 8de03fe843 (D3D9 common) Define CINTERFACE and get rid of C++ ifdefs 2018-04-22 13:18:56 +02:00
twinaphex 58623d7540 (d3d_common.h) Cleanups 2018-04-22 13:09:03 +02:00
twinaphex 3033dda866 (x11_common.c) Cleanups 2018-04-22 13:05:40 +02:00
twinaphex 4c941d3ada (gl2_renderchain) Try to prevent warning 2018-04-22 12:57:38 +02:00
twinaphex db314ff82f Uniquely namespace libchdr source files 2018-04-22 12:10:15 +02:00
twinaphex ca9dd89975 Revert "(3DS/Emscripten/Vita/Wiiu) Add HAVE_CHD support"
This reverts commit d4c691527a.
2018-04-22 12:02:40 +02:00
twinaphex d4c691527a (3DS/Emscripten/Vita/Wiiu) Add HAVE_CHD support 2018-04-22 11:58:11 +02:00
Twinaphex 8c400ce6ab Merge pull request #6603 from meleu/patch-20
Fixing cheevos hardcore mode description
2018-04-22 08:56:19 +02:00
meleu e325c68748 fixing cheevos hardcore mode description
Removing fast-forward as something that is disabled when in Hardcore mode is enabled.
Fast-forwarding is allowed even in hardcore mode.
2018-04-22 01:14:03 -03:00
twinaphex 248f1242dc Some warning fixes 2018-04-21 18:14:19 +02:00
twinaphex 1526c8a15d (PS3) Should fix PS3 build with context driver 2018-04-21 18:05:25 +02:00
Twinaphex f4c83157af Fix CocoaGL context driver 2018-04-21 18:06:14 +02:00
twinaphex 413914a1cf Add Rewind/Latency/Overlay Settings to Quick Menu 2018-04-21 15:55:05 +02:00
twinaphex dae0f36a20 Some cleanups 2018-04-21 15:00:35 +02:00
gblues ef36744859 Start implementing fall-back to async read
== DETAILS

The Wii U GC adapter doesn't seem to like doing async reads if it is connected
via a USB hub. It seems to be device-specific, though, because my DS3 works
just fine through the same hub.

I tried creating a fallback to synchronous reads, but it resulted in a hard
lock of the system. So, for the time being, it's going to be a known
limitation. Might be solved by using a powered USB hub.

Learned that the cache alignment is 64, not 32, so the alignment math has
been updated. Thanks, @aliaspider for that info.
2018-04-20 21:58:45 -07:00
gblues 0c92fab0b9 Fix GameCube button detection
This should fix the issue where R/L buttons didn't register when doing
input detection.

This also brings the GC pad in line with the rest of the gamepads in
input_autodetect_builtin.c.

Also fixed a really stupid bug that was part of why analog inputs aren't
being read. Analog still isn't working, mind, but it's a lot closer to
working now that it's actually getting down into the pad driver level!
2018-04-20 00:00:33 -07:00
gblues 53738e4a0d Allow Wii U GCA to work without 2nd cable attached
=== DETAILS

So, the GCA has 2 USB connections; one is the data connection, and the
second is used to drive rumble.

Due to a driver bug, if the second cable wasn't attached, the pads wouldn't
get detected.

I fixed that bug.
2018-04-18 23:12:45 -07:00
twinaphex 16df2ceb4e Fix Xbox OG 2018-04-17 11:39:59 +02:00
twinaphex d8fd499f3d Update count 2018-04-19 23:41:15 +02:00
twinaphex 4d64a94cb2 Updates 2018-04-19 22:28:17 +02:00
twinaphex 835e491c62 Use int64_t type for feeding to filestream_read 2018-04-19 22:26:40 +02:00
Twinaphex 037c47eaf1 Merge pull request #6597 from fr500/master
fix #6596
2018-04-19 18:06:56 +02:00
radius d8b5fea374 fix coverity warnings 2018-04-19 10:07:59 -05:00
radius 8198e5c0b2 fix #6596 2018-04-19 09:54:16 -05:00
twinaphex 74d4bc80d9 (libretro-common) Updates 2018-04-19 09:43:21 +02:00
twinaphex 1c66905f0d Updates 2018-04-19 08:01:07 +02:00
twinaphex 4914c164fa Update file_stream_transforms 2018-04-19 07:56:57 +02:00
twinaphex a7ad6e2024 (XMB) Add icons for shader/shader presets 2018-04-18 08:22:01 +02:00
twinaphex 070ee2fb40 (dispserv_win32.c) Simplify code 2018-04-18 08:03:34 +02:00
twinaphex 9532a77b4f Buildfix 2018-04-18 07:53:25 +02:00
Twinaphex ba25d90cc8 Merge pull request #6593 from Dwedit/silly_bug_fix
Fix a silly bug in the code that tries to copy the DLL 30 times
2018-04-18 06:44:53 +02:00
twinaphex e17c3d869d Avoid warnings on gx2_common.h 2018-04-18 06:43:21 +02:00
Dwedit af87a19675 Fix a silly bug in the code that tries copying the dll to 30 random files (should not return true at the end) 2018-04-17 23:25:26 -05:00
twinaphex b0e62f3ec6 (D3D11) Add more feature levels
(D3D11) If CreateDeviceAndSwapchain fails, error out gracefully
2018-04-17 21:29:02 +02:00
Twinaphex a4f1c6b602 Merge pull request #6592 from Ryunam/playlist-work
Add toggle to show/hide Playlist tabs on XMB
2018-04-17 19:09:03 +02:00
Ryunam 712a2fcc1d Add toggle to show/hide Playlist tabs 2018-04-17 17:53:24 +02:00
twinaphex 710570a408 (MSVC 2013) Buildfix 2018-04-17 11:37:00 +02:00
twinaphex 30c824c30a Try to fix MSVC warning 2018-04-21 08:54:57 +02:00
twinaphex 6d7ffef316 (gl2_renderchain.c) Update 2018-04-21 08:52:38 +02:00
twinaphex c52f53aada Some minor refactors 2018-04-21 08:47:09 +02:00
twinaphex df5586570f Make gl2_renderchain_deinit_fbo safer 2018-04-21 08:42:57 +02:00
twinaphex 88d62c7766 Update 2018-04-21 06:31:07 +02:00
twinaphex e5d90eebd7 Updates to libretro-common 2018-04-21 06:29:56 +02:00
twinaphex 6929db9fb6 (D3D10/D3D11) Compile shaders with SM 4.0 instead of 5.0 2018-04-21 05:36:59 +02:00
twinaphex 832cc4e945 (MSVC) Silence warnings 2018-04-21 05:20:22 +02:00
twinaphex e0b57843aa Enable HAVE_D3D10 now for main Windows build 2018-04-21 05:14:50 +02:00
twinaphex 8848b2837b Add D3D10 to slang supported checks 2018-04-21 05:11:24 +02:00
Twinaphex 0cf6b83b63 Merge pull request #6601 from aliaspider/master
update D3D10 driver.
2018-04-21 05:02:45 +02:00
aliaspider b78dcf9f4c update D3D10 driver. 2018-04-21 03:56:19 +01:00
twinaphex 7515c3d7c3 (D3D10) Switch to shader model 4.0 2018-04-21 03:33:08 +02:00
twinaphex 8e52fcff96 Add D3D10 entry 2018-04-21 03:30:34 +02:00
twinaphex 9f2b56a929 Update Direct3D 10 driver 2018-04-21 03:27:41 +02:00
Twinaphex 919a441089 Merge pull request #6590 from fr500/master
fix #6589
2018-04-17 05:24:49 +02:00
radius 3755003d33 remap-redux: unify menu displaylist 2018-04-16 21:26:43 -05:00
twinaphex d7d5dfdc73 Add display_server_get_current_resolution 2018-04-17 03:37:56 +02:00
twinaphex f050104740 Change return type of content_get_subsystem_rom_id 2018-04-17 03:19:35 +02:00
twinaphex 3f8ea809de (360) Buildfix 2018-04-17 03:14:20 +02:00
Twinaphex 8113d2067f Merge pull request #6391 from meleu/patch-13
decreasing verbosity in Achievements menu
2018-04-17 01:49:35 +02:00
Twinaphex 029019b757 Merge pull request #6586 from bearoso/refresh_rate
Refresh rate polling updates
2018-04-17 01:27:05 +02:00
Twinaphex a1f50ba847 Merge pull request #6587 from meleu/patch-19
CHANGES.md: fixed NGP cheevos incompatibilities
2018-04-17 01:26:38 +02:00
meleu 9933eb004b CHANGES.md: fixed NGP cheevos incompatibilities 2018-04-16 20:23:59 -03:00
Twinaphex b7990bc63d Merge pull request #6585 from Ryunam/latency-settings
Implement "Latency" list under Settings and group all latency-related options together
2018-04-17 00:56:58 +02:00
Twinaphex eb4049397f Merge pull request #6584 from meleu/patch-19
cheevos/var.c: removed unnecessary memory adjustment for NeoGeo Pocket
2018-04-17 00:56:21 +02:00
Brandon Wright 6aa33c8710 Add some X11 error checking. 2018-04-16 16:56:36 -05:00
Brandon Wright c4f818599c Add some fbdev refresh rate polls. Also Xv. 2018-04-16 16:23:59 -05:00
Ryunam 2cf76a192f Add Latency list under Settings and move relevant functions 2018-04-16 23:21:14 +02:00
Brandon Wright 95f8205fd1 Add DRM interface for refresh rate. 2018-04-16 15:36:46 -05:00
meleu 3fb2484869 removed unnecessary memory adjustment 2018-04-16 17:01:43 -03:00
Brandon Wright 64b2830889 Fix Win32 build. Set Windows header API to Win7. 2018-04-16 14:51:38 -05:00
twinaphex be7eb4de1c Update libretro-common 2018-04-16 08:57:17 +02:00
twinaphex 7a4c468730 Update libretro-common 2018-04-16 08:34:34 +02:00
twinaphex ec2267daa6 Cleanups 2018-04-16 04:35:23 +02:00
twinaphex d46011ae14 Cleanups 2018-04-16 04:20:24 +02:00
twinaphex 4cc3cf7344 Only restore resolution through resolution switch if CRT
switch mode was ever actually used
2018-04-16 03:19:33 +02:00
Twinaphex de29f0ce62 Merge pull request #6583 from bearoso/refresh_rate
Show actual refresh rate and allow setting from video menu
2018-04-16 03:14:49 +02:00
Brandon Wright df5528b1d0 Divide Wayland rate by 1000 instead of multiply. 2018-04-15 20:00:14 -05:00
Brandon Wright e049605359 Add refresh rate polling to Win32 >= Windows 7. 2018-04-15 19:33:38 -05:00
Brandon Wright 20d87347f7 Add menu item showing and allowing to automatically set precise refresh rate. 2018-04-15 17:56:12 -05:00
Brandon Wright 533f898132 Add get refresh rate context function. Implement for X11 and Wayland. 2018-04-15 17:56:12 -05:00
Brandon Wright 7a00534378 Add poke interface for get_refresh_rate. 2018-04-15 17:56:11 -05:00
twinaphex 6d00810716 Simplify video_driver_monitor_adjust_system_rates 2018-04-15 19:38:01 +02:00
twinaphex 953172f05b This header include can go now 2018-04-15 19:29:07 +02:00
twinaphex c692f457c2 Add switch_resolution to display_server interface 2018-04-15 19:25:00 +02:00
twinaphex bed4214059 Turn int variables to unsigned 2018-04-15 18:59:58 +02:00
twinaphex 311c156e08 Turn width/height into unsigned 2018-04-15 18:55:16 +02:00
twinaphex 4d87772f4a (video_crt_switch.c) Turn a whole bunch of functions static 2018-04-15 18:52:38 +02:00
twinaphex 1c6a6c80f4 Try to prevent another memory leak - this time in miniupnpc 2018-04-15 18:42:25 +02:00
twinaphex bb05af0d92 (libchdr) Prevent memory leak 2018-04-15 18:39:42 +02:00
twinaphex dc7c4fea2d Prevent Coverity warning 2018-04-15 18:31:46 +02:00
twinaphex 359de5c84b Create win32_change_display_settings 2018-04-15 17:55:37 +02:00
twinaphex 87cf910396 (CRT switch) Cleanups 2018-04-15 17:12:28 +02:00
Twinaphex a2516d23a3 Merge pull request #6469 from alphanu1/master
CRT Switchres Capabilities
2018-04-15 16:56:15 +02:00
Twinaphex c6849bf267 Merge pull request #6581 from QuarkTheAwesome/master
[WiiU] Add build information to exception handler
2018-04-15 16:48:58 +02:00
Ash 8e1437ad86 [WiiU] Add build information to exception handler 2018-04-15 17:19:39 +10:00
gblues 6eebbe4213 Build fix for PC
== DETAILS
Hooray for conditional compile directives.

Moving things around broke things in unexpected ways on non-WiiU builds.

Well, not *completely* unexpected. But still.

Changes:

- Move some typedefs around to avoid circular include dependencies
- Include the file where the HID driver definition got moved to

== TESTING
- verified build for Wii U still runs successfully
- did a local build without any errors (some weird warnings, but since they
  happen in code I didn't change, I'm assuming they're pre-existing?)
2018-04-15 00:04:49 -07:00
gblues 4cd301bd92 Add pad unregistration
== DETAILS

I think this will fix the problem with duplicate pads--pads weren't properly
de-initializing and registering as disconnected. When a pad is disconnected,
the slot should properly release now.
2018-04-14 21:30:44 -07:00
Steven M. Vascellaro bc2cf0e215 Update list of joypad drivers 2018-04-14 18:16:33 -04:00
Steven M. Vascellaro cb21f3f33f retroarch.cfg: Add fps_show and framecount_show 2018-04-14 18:12:51 -04:00
Steven M. Vascellaro 559be4cff2 retroarch.cfg: Move/reorder Video settings 2018-04-14 18:12:27 -04:00
Steven Vascellaro f9db4b9839 retroarch.cfg: Update menu_driver options 2018-04-14 17:51:04 -04:00
Steven M. Vascellaro e39da99b87 retroarch.cfg: Add more driver settings
Adds driver settings for `camera_driver`, `location_driver`, and `record_driver`.
2018-04-14 17:37:02 -04:00
gblues 6ab91a422e Small cleanup to adapt to upstream code changes
retro_bits_t turned into input_bits_t and there were parts of my
code that needed to update.

== TESTING
No idea if upstream changes broke anything, but it compiles cleanly
now.
2018-04-14 14:34:13 -07:00
gblues fb5b31faf3 Merge branch 'master' into gblues/hid 2018-04-14 14:18:03 -07:00
Steven M. Vascellaro bdf5a0c22b retroarch.cfg: Add section for directory settings
- Adds a section for directory/path settings
- Adds settings for `recording_output_directory` and `recording_config_directory`

All settings in `directory` section are accessible from RGUI
2018-04-14 16:53:32 -04:00
gblues 97e09d179f Fix deadlocks when device is unplugged
== DETAILS
TIL that it's bad to call synchronization code from callbacks.

To avoid that, I made the following changes:

- Implemented an atomic swap (see previous commit) to avoid explicit
  locking when working with the event list
- ensure locks are only acquired in either the main thread or the
  I/O polling thread
- use an explicit polling loop; we still use async reads, but the
  read doesn't immediately re-invoke itself.
- remove the sleep in the polling thread.
- remove unnecessary locking in the thread cleanup call--verified that
  the list can't be modified while it is being executed.

== TESTING
I tested locally, and was able to disconnect/reconnect USB devices several times without the worker thread getting deadlocked.
2018-04-14 13:30:34 -07:00
Steven M. Vascellaro 7a18305ed2 retroarch.cfg: Add section for driver settings
Moves driver related settings to a new "driver" section.

With the exception of `video_context_driver`, all of these settings can be found in RGUI under "driver".
2018-04-14 15:33:58 -04:00
Twinaphex 79071bd11b Merge pull request #6577 from Stevoisiak/settings-rename-ui
retroarch.cfg: Rename "UI" to "User Interface"
2018-04-14 21:20:15 +02:00
Steven M. Vascellaro 9d352af3a8 retroarch.cfg: Rename "UI" to "User Interface"
Use full name for UI to match the terminology when changing settings in RGUI.
2018-04-14 15:17:40 -04:00
Twinaphex a20d53202d Merge pull request #6576 from RobLoach/patch-30
libretro-db: Show missing key match warning once
2018-04-14 20:47:53 +02:00
Twinaphex 3c7c8871d7 Merge pull request #6575 from RobLoach/patch-29
libretro-db: Ignore compiled binaries
2018-04-14 20:47:39 +02:00
Rob Loach d44f9467e4 libretro-db: Fix whitespace 2018-04-14 14:10:40 -04:00
Rob Loach d3bbdb2e06 libretro-db: Show missing key match warning once
Before, the "missing match" warning would appear for every entry. This change makes it show that it only displays the warning once.
2018-04-14 14:09:46 -04:00
Rob Loach b0a2df41dd libretro-db: Ignore compiled binaries
This makes it so that the compiled libretro-db binaries are ignored from git.
2018-04-14 14:08:28 -04:00
gblues dca36ebaf8 Add small snippet for atomic value swapping
Fortunately, the gcc port implements the builtins and, from basic
testing, they seem to work.

This is only really useful on Wii U--other platforms have more
robust atomic operations, or aren't using gcc to build.
2018-04-14 01:26:26 -07:00
twinaphex 6f7b8aac8c Add input/input_mapper.c always 2018-04-14 03:25:58 +02:00
Twinaphex 7c5e44ead0 Merge pull request #6568 from nurupo/cxxdoesntlag
CXXLAGS -> CXXFLAGS
2018-04-13 18:49:36 +02:00
Twinaphex 4c39a7fd78 Merge pull request #6571 from hiddenasbestos/retro_opendir_r2
retro_opendir - Improved fix for bad input
2018-04-13 18:47:02 +02:00
David Walters adf4ed960e Handle null and empty string calls to retro_opendir with a consistent null return. 2018-04-13 10:31:21 +01:00
Maxim Biro 6f9c2da807 CXXLAGS -> CXXFLAGS
C++ definitely doesn't lag!
2018-04-13 03:35:33 -04:00
Twinaphex 8fe51864a6 Merge pull request #6566 from gingerbeardman/graphics
3DS icon and banner update
2018-04-13 03:04:31 +02:00
gingerbeardman e1637ffa20 icon changes 2018-04-13 01:29:15 +01:00
gingerbeardman f8b75482e9 icon and banner update and refresh
new icons: freeintv
redrawn icons: 81, nekop2, np2kai
tweaked icons: fceumm,  mednafen_pce_fast, nestopia, o2em, picodrive
new banners: freeintv
tweaked banners: 81

all images have also been optimised
2018-04-13 01:15:26 +01:00
twinaphex dc61e23a21 Update libretro-common 2018-04-13 01:10:10 +02:00
Twinaphex bd2b913bc6 Silence more warnings 2018-04-13 00:52:52 +02:00
twinaphex 041670fe02 Get rid of multitude of casting warnings 2018-04-13 00:47:42 +02:00
twinaphex 1751f4a0af Make it possible to read bigger files by replacing ssize_t with int64_t
and size_t with uint64_t
2018-04-13 00:18:11 +02:00
twinaphex 70abbbf4fb Revert "Revert "(PS3) Set GCC for PS3""
This reverts commit 249abcd108.
2018-04-12 23:46:41 +02:00
Twinaphex ff18a55f06 Merge pull request #6565 from fr500/master
remap-redux: try to fix more warnings
2018-04-12 21:39:46 +02:00
twinaphex 6761ec471d Silence some Coverity warnings 2018-04-12 21:39:31 +02:00
radius 9a355b8f2e remap-redux: try to fix more warnings 2018-04-12 14:20:38 -05:00
twinaphex 6e4cf412f0 (menu_entry_playlist_start_entry) This code seems to be unnecessary now? 2018-04-12 21:02:54 +02:00
twinaphex e7bed050bc Fix memory leak 2018-04-12 20:54:06 +02:00
twinaphex 249abcd108 Revert "(PS3) Set GCC for PS3"
This reverts commit 5486894e3b.
2018-04-12 20:30:35 +02:00
twinaphex 5486894e3b (PS3) Set GCC for PS3 2018-04-12 20:16:58 +02:00
Twinaphex 38525e1e8f Merge pull request #6564 from Tatsuya79/patch-1
MUI Scale mouse cursor like icons.
2018-04-12 18:58:50 +02:00
Tatsuya79 3f77a6a320 MUI Scale mouse cursor like icons. 2018-04-12 18:56:54 +02:00
Twinaphex c5c41efc0f Merge pull request #6563 from hiddenasbestos/retro_opendir
patch retro_opendir to handle nullptr and empty-string input
2018-04-12 16:38:51 +02:00
David Walters 801ecb019a patch retro_opendir to handle nullptr and empty-string input 2018-04-12 12:44:42 +01:00
Twinaphex 872c364f34 Merge pull request #6561 from Dwedit/br_encoding_fix
Change encoding of msg_hash_pt_br.h from Windows-1252 to UTF-8
2018-04-12 02:28:10 +02:00
twinaphex 97cf6613da (XMB/Shaders) Reimplement menu shader loading for GLSL/Cg/HLSL backends - if
XMB is selected, it will compile the shader pipelines in
advance
2018-04-12 02:20:17 +02:00
Dwedit 9252c56142 Change Windows-1252 encoded file back to UTF-8 2018-04-11 17:10:46 -05:00
Jean-André Santoni 617793df40 [stripes] Better tab colors 2018-04-11 21:17:37 +07:00
twinaphex 74a3677eb5 Silence warning 2018-04-11 06:14:55 +02:00
twinaphex abad1b3134 Revert "(menu) Start passing menu_handle to action_ok callback"
This reverts commit d2a1c39f4b.
2018-04-11 06:12:26 +02:00
twinaphex 1836d08b33 Revert "Start passing around menu_driver_data around properly"
This reverts commit 7c314a9165.
2018-04-11 06:12:14 +02:00
twinaphex b540ae3d4d Revert "Update"
This reverts commit 21ede63df2.
2018-04-11 06:12:08 +02:00
twinaphex 146c94a86a Revert "(iOS) Buildfix"
This reverts commit 15142fd0a9.
2018-04-11 06:12:01 +02:00
twinaphex 6c99acb23e Revert "Pass around void pointer data - menu handle"
This reverts commit b4a2bd5156.
2018-04-11 06:11:54 +02:00
twinaphex fdffb7059d Revert "Less pointer grabbbing - reduce usage of RARCH_MENU_CTL_DRIVER_DATA_GET"
This reverts commit fbf03df8be.
2018-04-11 06:11:45 +02:00
twinaphex a276710877 Revert "(Menu) More refactors"
This reverts commit f0285ef792.
2018-04-11 06:11:38 +02:00
twinaphex a07ada7af6 Revert "More cleanups - getting rid of RARCH_MENU_CTL_DRIVER_DATA_GET"
This reverts commit a8f7d99aba.
2018-04-11 06:11:23 +02:00
twinaphex 21244c6ec7 Revert "(Menu) Get rid of more RARCH_MENU_CTL_DRIVER_DATA_GET calls"
This reverts commit cb3b5d72ab.
2018-04-11 06:11:18 +02:00
twinaphex 87c9d9eb9a Revert "Cleanups"
This reverts commit 8632a92568.
2018-04-11 06:11:10 +02:00
twinaphex 4993630e10 Revert "Cleanups"
This reverts commit 8d6067b1d4.
2018-04-11 06:11:04 +02:00
twinaphex 13d7e2bed2 Revert "(Zarch) Buildfix"
This reverts commit a3175a8fa3.
2018-04-11 06:10:59 +02:00
twinaphex 372603858d Revert "(Menu) Update menu code"
This reverts commit f481924f1e.
2018-04-11 06:10:51 +02:00
Twinaphex ba96aac2da Merge pull request #6556 from fr500/master
remap-redux: fix potential overrun
2018-04-11 05:03:37 +02:00
radius 13a9d11a2c remap-redux: fix potential overrun 2018-04-10 21:52:27 -05:00
Twinaphex ad671a153a Merge pull request #6496 from i30817/fix-scan-dot-in-directories
fix scanner skipping directories with dots
2018-04-11 04:08:12 +02:00
twinaphex 40d45c9451 Manually merge PT BR 2018-04-11 04:03:26 +02:00
Twinaphex f62ad312eb Merge pull request #6555 from i30817/patch-1
Serial magic should only match on full match
2018-04-11 03:26:44 +02:00
twinaphex f481924f1e (Menu) Update menu code 2018-04-11 03:04:58 +02:00
i30817 7da45bc789 Serial magic should only match on full match
As was mentioned on the wii dual layer disc issue, this line is comparing binary sequences as strings, which fails very obviously because neither of the 'strings' tested are strings and it's very likely both start with \0.
2018-04-11 01:37:35 +01:00
twinaphex a3175a8fa3 (Zarch) Buildfix 2018-04-10 22:12:58 +02:00
twinaphex 8d6067b1d4 Cleanups 2018-04-10 22:03:29 +02:00
twinaphex 8632a92568 Cleanups 2018-04-10 21:59:36 +02:00
twinaphex cb3b5d72ab (Menu) Get rid of more RARCH_MENU_CTL_DRIVER_DATA_GET calls 2018-04-10 21:53:44 +02:00
twinaphex a8f7d99aba More cleanups - getting rid of RARCH_MENU_CTL_DRIVER_DATA_GET
calls
2018-04-10 21:49:25 +02:00
twinaphex f0285ef792 (Menu) More refactors 2018-04-10 21:27:57 +02:00
twinaphex fbf03df8be Less pointer grabbbing - reduce usage of RARCH_MENU_CTL_DRIVER_DATA_GET 2018-04-10 19:57:33 +02:00
twinaphex b4a2bd5156 Pass around void pointer data - menu handle 2018-04-10 19:32:50 +02:00
twinaphex 15142fd0a9 (iOS) Buildfix 2018-04-10 19:22:39 +02:00
twinaphex 21ede63df2 Update 2018-04-10 19:20:50 +02:00
twinaphex 7c314a9165 Start passing around menu_driver_data around properly 2018-04-10 19:17:51 +02:00
twinaphex d2a1c39f4b (menu) Start passing menu_handle to action_ok callback 2018-04-10 18:39:03 +02:00
twinaphex 6e299065ce Remove RARCH_MENU_CTL_PLAYLIST_ calls - use playlist_init_cached,
playlist_get_cached, and playlist_free_cached from now on (defined
in playlist.h) - no more menu dependencies on cached playlists
2018-04-10 17:51:40 +02:00
twinaphex bce7742745 Create playlist_cached functions inside playlist.c 2018-04-10 17:40:29 +02:00
twinaphex 00da860681 Cleanup 2018-04-10 16:34:33 +02:00
twinaphex ac511120d4 (retroarch.c) Cleanups 2018-04-10 07:19:27 +02:00
twinaphex 86ea98605d (MSVC 2010) Buildfix 2018-04-10 06:50:47 +02:00
twinaphex 5697a24946 (samples/tasks/database) Define -DHAVE_COMPRESSION 2018-04-10 05:28:58 +02:00
twinaphex 25ab35b7d0 (samples/tasks/database) Add hardcoded extensions for OSX 2018-04-10 05:26:47 +02:00
twinaphex 639152e291 Hardcode exts for now - we assume this standalone program will
only be used on Windows/OSX/Linux systems for now
2018-04-10 05:20:19 +02:00
twinaphex c24179dc63 Scanning should now work in standalone program 2018-04-10 05:16:33 +02:00
twinaphex d66b8fa882 Start implementing main function 2018-04-10 04:53:12 +02:00
twinaphex c9e48cd9de Cleanups / get rid of more dependencies 2018-04-10 04:31:19 +02:00
twinaphex 6f0fc2426d (database_info/task_database) Get rid of list_special dependencies 2018-04-10 04:13:45 +02:00
twinaphex 3016edce0a Move retroarch.h dependencies out of core_info.c 2018-04-10 04:00:01 +02:00
twinaphex 00cc4ca7aa (samples) Gets close to linking now 2018-04-10 03:53:46 +02:00
twinaphex 6e46d1deb1 Buildfix 2018-04-10 03:07:28 +02:00
twinaphex 8ca8f92aeb No more configuration.h dependencies in core_info.c 2018-04-10 03:02:10 +02:00
twinaphex 7ccecc80c1 Update samples/tasks/database 2018-04-10 02:43:35 +02:00
twinaphex 06bafe3cc3 Fix typo 2018-04-10 02:41:09 +02:00
twinaphex 47a6f0bb7a Create extension_to_file_hash_type 2018-04-10 02:00:38 +02:00
twinaphex be0c118c87 (task_database.c) Don't use msg_hash_calcualte and msg_hash_to_file_type 2018-04-10 01:18:40 +02:00
twinaphex 445f176e24 (Xbox) Enable HAVE_RUNAHEAD for Xbox OG/360 2018-04-10 00:14:23 +02:00
twinaphex 867981b74b Include this header include 2018-04-10 00:07:37 +02:00
twinaphex 8b4b5e88ce Update 2018-04-09 22:20:51 +02:00
twinaphex 86c826350e Start moving dependencies out of certain files 2018-04-09 22:18:25 +02:00
twinaphex 908de15e7b Start adding samples - not done yet 2018-04-09 22:12:59 +02:00
twinaphex 22e5d000c2 Cleanups 2018-04-09 19:30:36 +02:00
twinaphex fdec9c50e0 (task_database.c) Add some RARCH_INTERNAL ifdefs 2018-04-09 19:26:49 +02:00
twinaphex f3e0a627af Get rid of one MSVC warning 2018-04-09 19:11:06 +02:00
twinaphex b6764c43db Buildfix 2018-04-09 19:09:00 +02:00
twinaphex afe77527cd Some cleanups for C89_BUILD 2018-04-09 18:57:39 +02:00
twinaphex 260cd62482 Cleanup some CXX_BUILD warnings 2018-04-09 18:53:26 +02:00
twinaphex ff9aebedca Some more Clang warning fixes 2018-04-09 17:48:11 +02:00
twinaphex 8e7b1ede7f Silence Clang warnings 2018-04-09 17:35:27 +02:00
twinaphex 9381d27f1f (miniupnpc) Get rid of warning - value computed is not used 2018-04-09 17:07:43 +02:00
twinaphex f00a75ec84 Get rid of some spurious code in XMB - catched by Clang 2018-04-09 17:02:44 +02:00
twinaphex 50edd0d467 Remove unused variable 2018-04-09 16:45:44 +02:00
twinaphex f071e8b440 Solve more Clang static analysis warnings 2018-04-09 16:42:12 +02:00
twinaphex e82882a1ab Silence some Clang static analysis warnings 2018-04-09 16:33:46 +02:00
twinaphex 88e7c03e1b filebrowser_parse - cleanups 2018-04-09 16:27:37 +02:00
twinaphex 0fb766b921 Move variables 2018-04-09 16:15:31 +02:00
Twinaphex 08a54e45f2 Get rid of a lot of implicit conversions 2018-04-09 15:56:45 +02:00
Twinaphex 91ba0765e6 (libchdr) Silnces xcode warning 2018-04-09 05:58:32 +02:00
Twinaphex f2c23970a3 (font_driver.c) silences the xcode warnings 2018-04-09 05:56:58 +02:00
twinaphex 4db665130c Start moving callback functions to their dedicated files 2018-04-09 03:48:08 +02:00
twinaphex be5057eafc Cleanups 2018-04-09 00:38:44 +02:00
twinaphex a5c7b79842 Move BIT256_CLEAR_ALL_PTR outside of function 2018-04-09 00:34:07 +02:00
twinaphex 7b5a0bf706 Move clear operation outside of keys_pressed functions 2018-04-09 00:31:03 +02:00
Andrés 47a528801d Merge pull request #6547 from fr500/master
add comment
2018-04-08 17:22:32 -05:00
twinaphex 2cb14e730f Initialize to false by default 2018-04-09 00:21:22 +02:00
radius 215868f755 add comment 2018-04-08 17:21:17 -05:00
Twinaphex d5860a4f79 Merge pull request #6546 from fr500/master
cleanup
2018-04-09 00:04:42 +02:00
radius 066d181535 cleanup 2018-04-08 16:58:48 -05:00
twinaphex d0b735735c Update libretro-common 2018-04-08 23:23:01 +02:00
twinaphex 4cd4de3bd3 Simplify input_overlay_add_inputs_inner 2018-04-08 23:20:06 +02:00
Twinaphex 8dc63653e5 Remove unused variables 2018-04-08 23:17:45 +02:00
twinaphex 3a4d094277 MSVC buildfix 2018-04-08 23:13:20 +02:00
twinaphex bc70477005 (input_mapper.c) Some more refactors 2018-04-08 23:08:21 +02:00
Twinaphex 4052ffe08e Update CHANGES.md 2018-04-08 22:40:02 +02:00
Twinaphex e056c1e835 Merge pull request #6543 from orbea/core_delete
Hide the 'Core delete' option if the 'Core updater' is also hidden.
2018-04-08 22:39:40 +02:00
twinaphex a646fd3e65 (input_mapper.c) Small non-functional cleanups 2018-04-08 22:36:48 +02:00
Twinaphex 019e2acd92 Merge pull request #6545 from fr500/master
remap-redux: allow the menu to display manual keybinds
2018-04-08 21:55:14 +02:00
radius 968c692a04 remap-redux: allow the menu to display manual keybinds 2018-04-08 14:50:30 -05:00
twinaphex 1dd73f86b7 Simplify this code somewhat 2018-04-08 21:45:10 +02:00
twinaphex 9bcaac1abc Simplify input_mapper_state 2018-04-08 21:38:57 +02:00
twinaphex 24b694d674 Grab joypad_driver only once 2018-04-08 21:07:04 +02:00
twinaphex 30090db941 Simplify input_get_state_for_port for analogs 2018-04-08 21:04:42 +02:00
twinaphex 0ed69fd170 Simplify input_state analog code remapping somewhat 2018-04-08 20:49:02 +02:00
twinaphex 368becbc42 (wiiu) Potential build fix 2018-04-08 20:29:07 +02:00
twinaphex 1ce19f9573 Include header 2018-04-08 20:26:47 +02:00
twinaphex 460182fc63 Update runahead headers 2018-04-08 20:25:43 +02:00
twinaphex a82bb0ec94 Create special type input_bits_t 2018-04-08 20:21:12 +02:00
Twinaphex be1bca4ce4 Merge pull request #6485 from fr500/master
remap-redux part 2
2018-04-08 19:31:30 +02:00
radius 2b9b829459 remap-redux part2: fix saving, loading and set defaults 2018-04-08 12:13:51 -05:00
radius f517ca3b56 remap-redux part2: fix right stick 2018-04-08 12:13:50 -05:00
radius 72065aee0b remap-redux part2: analog to analog input rules are working for left stick to left stick and left stick to right, for some reason not for right stick to right
stick
(inverting axes) or right stick to left...
2018-04-08 12:13:50 -05:00
radius c608951ff8 remap-redux part2:
- remapping analogs to buttons works 100%
    - remapping to analogs needs the "new input rules written" based on the value and the new axis
2018-04-08 12:13:50 -05:00
radius 0ed9f05571 remap-redux part2:
- remapping analogs to buttons works 100%
- remapping analogs to other analogs still messed up for some reason
- need to reset input of the original axis in input_driver.c still
2018-04-08 12:13:49 -05:00
radius f662d9f65f remap-redux part2: start adding analog remapping 2018-04-08 12:13:49 -05:00
radius 06860bf704 remap-redux part2: rewrite keymapper to work like gamepad mapper 2018-04-08 12:13:49 -05:00
radius 3792a5e502 remap-redux part2: cleanup 2018-04-08 12:13:49 -05:00
radius fa3dfd5f63 remap-redux part2: finally user 2 mapping works! 2018-04-08 12:13:48 -05:00
radius 4260423e48 remap-redux part2: let's use this function instead, add logging 2018-04-08 12:13:48 -05:00
radius 1fa28f0e31 remap-redux part2: let's use this function instead, add logging 2018-04-08 12:13:47 -05:00
radius d8d22a9c40 remap-redux part2: simplify this code a bit, still not working 2018-04-08 12:13:47 -05:00
radius e42e79db28 remap-redux part2: rename variable 2018-04-08 12:13:47 -05:00
radius 2415f821af remap-redux part2: hide analogs for now 2018-04-08 12:13:47 -05:00
radius 958216ede9 remap-redux part2: change remap file labels because old ones are incompatible 2018-04-08 12:13:46 -05:00
radius e130afff73 remap-redux part2: cleanup 2018-04-08 12:13:46 -05:00
radius 5efba1c257 remap-redux part2: better wraparound, skip analogs, add RARCH_UNMAPPED 2018-04-08 12:13:46 -05:00
radius 23331aa484 remap-redux part2: wraparound 2018-04-08 12:13:45 -05:00
radius 59da4b880e remap-redux part2: add empty description to analogs that are currently not remappable 2018-04-08 12:13:45 -05:00
radius 058b4cea79 remap-redux part2: add empty description to analogs that are currently not implemented 2018-04-08 12:13:45 -05:00
radius 921a30da88 remap-redux part2: add empty description 2018-04-08 12:13:44 -05:00
radius e71826e3d6 remap-redux part2: clean up gamepad mapper callbacks 2018-04-08 12:13:44 -05:00
radius f7b94e5f66 remap-redux part2: clean up gamepad mapper callbacks 2018-04-08 12:13:44 -05:00
radius be2c648596 remap-redux part2: after 60 attempsts, new mapper works, N:1 mapping too 2018-04-08 12:13:43 -05:00
radius 7f5fe5ebff remap-redux part 2: add controller sublabel 2018-04-08 12:13:43 -05:00
radius 052887d8b0 remap-redux part 2: fix redefinition of key_descriptors 2018-04-08 12:13:43 -05:00
radius c4754815b6 remap-redux part 2: fix small issue with keymapper 2018-04-08 12:13:43 -05:00
radius 34649d1abf remap-redux part 2: start inverting the gamepad mapper columns 2018-04-08 12:13:42 -05:00
radius 51edf47ed2 remap-redux part 2: cleanup keymapper code 2018-04-08 12:13:42 -05:00
radius db5f3d7a75 remap-redux part 2: add keymapper sublabels 2018-04-08 12:13:42 -05:00
radius f6ee035011 remap-redux part 2: only add items for devices set to RETRO_DEVICE_KEYBOARD (or a subclass) 2018-04-08 12:13:41 -05:00
radius daf262da96 remap-redux part 2: reimplement saving 2018-04-08 12:13:41 -05:00
radius c57f8722e5 remap-redux part 2: restore original var names 2018-04-08 12:13:41 -05:00
radius 2bfb5ec0df remap-redux part 2: fix nits, hookup left/right callbacks 2018-04-08 12:13:40 -05:00
radius ed334cd1dd remap-redux part 2: allow multiple gamepads to work for the keymapper 2018-04-08 12:13:40 -05:00
twinaphex 9639389a66 Uniquely name crc32.c to avoid collissions with statically linked
builds
2018-04-08 17:58:10 +02:00
twinaphex 816d805f58 (wiiu) Only build these files in for non-Griffin build 2018-04-08 17:26:34 +02:00
orbea 63c99363bd Hide the 'Core delete' option if the 'Core updater' is also hidden. 2018-04-08 08:02:47 -07:00
Jean-André Santoni 3a1e954284 [stripe] Fix icon sizes 2018-04-08 21:55:11 +07:00
Jean-André Santoni 1189d84543 [stripes] Implement draw_bg 2018-04-08 21:48:55 +07:00
Jean-André Santoni 4af704babe [stripe] Use scale_factor to look nice of different screens 2018-04-08 20:55:53 +07:00
Jean-André Santoni cef8477215 [stripes] Rainbow colors 2018-04-08 20:47:49 +07:00
Jean-André Santoni 2ef3824554 [stripe] Draw the stripes 2018-04-08 18:58:57 +07:00
Jean-André Santoni a6e9107bd0 Add menu_display_draw_polygon 2018-04-08 18:58:11 +07:00
Jean-André Santoni f2e71615fb [stripes] Remove useless thumbnail stuff 2018-04-08 15:42:26 +07:00
Jean-André Santoni 3f32a7f1b7 [stripes] Remove useless ribbon stuff 2018-04-08 15:37:29 +07:00
Jean-André Santoni 34966e2ffc [stripes] Compute and animate category width 2018-04-08 15:22:32 +07:00
Jean-André Santoni d1695c043c [stripes] Compute categories y position 2018-04-08 13:38:51 +07:00
Jean-André Santoni 65626c188a [stripes] Remove most of draw_frame 2018-04-08 13:31:19 +07:00
Jean-André Santoni 7a7cb730c5 [stripes] Remove pipeline 2018-04-08 13:26:20 +07:00
Jean-André Santoni 5a22d1cd8e [stripes] Comment out draw_items for now 2018-04-08 13:21:33 +07:00
Jean-André Santoni 061fe25c33 [stripes] Compute y position for the tabs icons 2018-04-08 13:16:01 +07:00
twinaphex 23096e00a3 (wiiu) Add HAVE_RUNAHEAD object files 2018-04-08 07:15:59 +02:00
Jean-André Santoni 7601b740cc [stripes] Remove ribbon 2018-04-08 10:49:02 +07:00
Jean-André Santoni fcda6f7d96 [stripes] Remove gradients 2018-04-08 10:01:14 +07:00
Jean-André Santoni 1614519874 Clone xmb to stripe menu 2018-04-08 09:55:16 +07:00
twinaphex c570d461af Cleanups 2018-04-08 02:01:37 +02:00
twinaphex d58c425e43 Cleanups 2018-04-08 01:56:06 +02:00
twinaphex 2ca52bd08c Remove memcpy_alloc 2018-04-08 01:41:41 +02:00
twinaphex 4f32eb9cc1 (runahead) Style nits - no more '== NULL' 2018-04-08 01:36:30 +02:00
twinaphex 8e4df27305 (runahead) Cleanups 2018-04-08 01:28:17 +02:00
twinaphex 9e07e1a57f (runahead) Buildfix 2018-04-08 01:20:55 +02:00
twinaphex 360bea85b9 (PS3) Silence more warnings 2018-04-08 01:09:31 +02:00
twinaphex f069eeb017 (Wii/WiiU) Add HAVE_RUNAHEAD 2018-04-08 00:48:27 +02:00
Twinaphex 9a97c73dc2 Merge pull request #6285 from orbea/sysconfdir
qb: Add --sysconfdir
2018-04-07 22:54:30 +02:00
Twinaphex 2201e27593 Merge pull request #6528 from Tatsuya79/master
XMB thumbnails vertical disposition.
2018-04-07 04:17:32 +02:00
Twinaphex c1c328d265 Merge pull request #6538 from Dwedit/master
Runahead: Fix build errors on machines without HAVE_DYNAMIC
2018-04-07 04:17:17 +02:00
Dwedit cb74af60c9 one line typo 2018-04-06 20:14:29 -05:00
Dwedit ee0afec787 Fix build errors on machines without HAVE_DYNAMIC 2018-04-06 20:08:18 -05:00
Tatsuya79 299c808e22 Shorten text when 2nd thumb is on the right. 2018-04-06 22:47:49 +02:00
Tatsuya79 de080151cc Remove excessive blend calling. 2018-04-06 16:25:32 +02:00
gblues 4433cbebc6 Get digital inputs for Sony DualShock 3 working
== DETAILS

- fix the bitshift math
- read the right bytes out of the ds3 data packet
- remove verbose logging in critical path
- stop caring about errors in the hid read loop -- seems to just
  be benign "device not ready" -- or at least, that's what I'm assuming
  given that the read eventually succeeds.

== TESTING
Played Mario 3 with the DS3 with no issues.
2018-04-05 23:03:38 -07:00
Tatsuya79 1fadc2e148 Fix image preview sometimes on both thumbs. 2018-04-06 00:59:35 +02:00
Twinaphex 3e699cf00b Merge pull request #6532 from Dwedit/master
Runahead: Move Callback Init calls to after load content (fixes Mesen crashing)
2018-04-05 23:25:55 +02:00
Dwedit f37ed2f7e1 Move callback init calls to before set_controller_port_device calls. 2018-04-05 15:42:20 -05:00
Dwedit e42edbf032 Move Callback Init calls to after load content (fixes Mesen crashing) 2018-04-05 15:34:27 -05:00
Twinaphex 9c5a7a7453 Merge pull request #6531 from altiereslima/master
Updated Portuguese-BR translation
2018-04-05 17:20:35 +02:00
Tatsuya79 e78aedbb6c undo copyright change 2018-04-05 17:08:33 +02:00
altiereslima 1315e26ffa update 2018-04-05 11:46:11 -03:00
altiereslima dc901f6e1e Updated Portuguese-BR translation 2018-04-05 11:41:52 -03:00
Tatsuya79 ad0a36b825 XMB thumbnails vertical disposition. 2018-04-05 00:52:46 +02:00
gblues 46dad14d5f Merge branch 'master' into gblues/hid 2018-04-03 20:30:06 -07:00
Twinaphex cc177d9622 Merge pull request #6523 from hiddenasbestos/msvc
Fix several issues with building using Visual Studio 2015 and 2017
2018-04-03 20:00:08 +02:00
David Walters b5b906bc5a Fix for fatal error C1128 in 64-bit Debug builds (by adding /bigobj to command line) 2018-04-03 18:41:34 +01:00
David Walters c8a9f5eded Compile fix for _vsnprintf_s, missing standard library header. 2018-04-03 18:33:48 +01:00
David Walters 7adec98cd8 Fix MSVC2015 project/solution build config associations 2018-04-03 18:25:23 +01:00
David Walters 852c8735e6 Fix solution file to be Visual Studio 14 / "2015" format. 2018-04-03 18:21:10 +01:00
Twinaphex 2d2094575e Merge pull request #6520 from retro-wertz/patch-1
Fix false [ERROR] when closing content
2018-04-03 13:14:16 +02:00
gblues af08e5015a More work on Dual Shock 3 driver
== DETAILS

- update to not try starting the read loop until after the device
  is successfully initialized
- add new HID wrapper macros needed by ds3 driver
- add some debug logging to help with troubleshooting
- add button map for DS3

== TESTING
Tested with local build. DS3 init is not working.
2018-04-02 23:16:49 -07:00
retro-wertz 55450a5d73 Fix false [ERROR] when closing content
filestream_delete() returns 0 on success, and -1 on failure.
This PR removes this false error when closing content.

e.g.
[ERROR] Failed to remove temporary file: /EMULATORS/ConsoleRoms/Nintendo - Nintendo Entertainment System/Super Mario Bros. (World).nes.
2018-04-03 12:08:53 +08:00
Twinaphex 0b62a0f6e2 Merge pull request #6519 from bearoso/master
Add workarounds based on window manager for override-redirect.
2018-04-03 04:05:26 +02:00
twinaphex 00a3aba480 Define HAVE_RUNAHEAD for dynamic linked iOS 2018-04-03 03:48:59 +02:00
Brandon Wright 9f15e39114 Also use the original fallback designed for older window managers. 2018-04-02 20:21:32 -05:00
Brandon Wright 0a5e65dc06 Add workarounds based on window manager for override-redirect. 2018-04-02 20:01:14 -05:00
gblues 9bc5a15c2d Enable pads to register in any order
== DETAILS

Whereas the last commit had a hack (that disabled the wiimote
driver in the process), this has.. well, a *different* hack that
allows pads to register in any order.

Note that due to the initialization routines, the gamepad will still
likely always get slot 0. Not sure if this can be overridden via config
or not.

== TESTING

Tested locally with GC adapter
2018-04-01 18:52:26 -07:00
Twinaphex ab00d587d8 Merge pull request #6510 from bearoso/master
Add back override-redirect to allow G-SYNC
2018-04-02 01:57:27 +02:00
Twinaphex 19a6375ec6 Merge pull request #6509 from Dwedit/master
Make RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE work on the secondary core
2018-04-02 01:56:43 +02:00
Dwedit a275242aef C89 compliance and line spacing rules 2018-04-01 17:54:03 -05:00
Brandon Wright 8356300c3e Apply the same fix to xegl_ctx.c 2018-04-01 17:47:47 -05:00
Brandon Wright 64686d8106 Set override-redirect on true fullscreen, but after window is mapped. 2018-04-01 17:47:27 -05:00
Dwedit 78c8a9b197 Make RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE work on the secondary core 2018-04-01 17:34:54 -05:00
twinaphex 015facee70 (XMB) Cleanups 2018-04-01 18:23:37 +02:00
gblues 2cf89feb86 Code clean-up
== DETAILS

Now that I have a working implementation, it's time to tidy up a bit:

- there was no need for the HID subsystem's object data to have a reference
  to the global hid state (since it's global), so removed it.
- refactored the users of that member to use the global state, defining
  reusable macros.
- reorganized the information in *.h files
- removing the hid state also made the constructor changes to the hid driver
  unneeded, so I reverted those changes.

== TESTING
Confirmed clean build. Haven't tested the build yet to make sure everything
still works, though.
2018-03-31 22:25:30 -07:00
alphanu1 950719797d Merge pull request #32 from alphanu1/alphanu1-patch-33
Add files via upload
2018-04-01 00:34:36 +01:00
alphanu1 cf23ff7a88 Add files via upload
Fixes, merged changes and additions to remove extra files.
2018-04-01 00:29:46 +01:00
alphanu1 ca55f3198e Delete video_crt_linux.h
outdated, not needed
2018-04-01 00:27:04 +01:00
alphanu1 79eb3e6b8c Delete video_crt_win.h
outdated, not needed
2018-04-01 00:26:44 +01:00
alphanu1 752eddbb95 Delete video_crt_linux.c
outdated, not needed
2018-04-01 00:26:24 +01:00
alphanu1 b676167ef6 Delete video_crt_win.c
outdated, not needed
2018-04-01 00:26:06 +01:00
alphanu1 d5085c8831 Merge pull request #31 from alphanu1/alphanu1-patch-32
Add files via upload
2018-04-01 00:24:50 +01:00
alphanu1 dd78622d30 Add files via upload
added files for compile
2018-04-01 00:24:26 +01:00
alphanu1 5d7e31d2f3 Merge pull request #30 from alphanu1/alphanu1-patch-31
Add files via upload
2018-04-01 00:23:32 +01:00
alphanu1 6a6150bb03 Add files via upload
Removed obsolete/unneeded .o
2018-04-01 00:23:05 +01:00
Twinaphex 28b9a38d7d Merge pull request #6504 from Dwedit/secondary_core_bug_fix
Fixed initializing controller port map.
2018-03-31 21:09:02 +02:00
Dwedit 80b8410b0f Forgot to initialize controller port map, this caused VBA-M to crash when creating the secondary core. Now fixed. 2018-03-31 12:15:14 -05:00
alphanu1 a0c9ef55cb Merge pull request #29 from alphanu1/alphanu1-patch-30
Add files via upload
2018-03-31 15:19:03 +01:00
alphanu1 9524203051 Add files via upload
Amended braces and function calls.
2018-03-31 15:17:55 +01:00
alphanu1 38fc89fbfc Merge pull request #28 from alphanu1/alphanu1-patch-29
Add files via upload
2018-03-31 15:16:34 +01:00
alphanu1 64ebf62959 Add files via upload
Amended tabbing with spaces
2018-03-31 15:15:35 +01:00
Twinaphex 611cc52661 Merge pull request #6500 from Tatsuya79/master
XMB Right Thumbnail rework.
2018-03-31 14:13:25 +02:00
Twinaphex f7fa5844f2 Merge pull request #6502 from Dwedit/master
Runahead: Stop savestate transmission in netplay
2018-03-31 11:36:46 +02:00
gblues 39e4167df6 Start work on DualShock 3 driver
== DETAILS

The WiiU GC adapter is working!

Next up: DualShock 3

I have the skeleton of the driver started, need to work out the
activation packet.

== TESTING

The DS3 driver is broke as hell right now.
2018-03-30 23:00:14 -07:00
Dwedit 6b77a66298 get rid of the unnecessary typedef 2018-03-31 00:55:37 -05:00
Dwedit 15472eb184 Stop savestate transmission in netplay 2018-03-31 00:45:20 -05:00
Twinaphex a869cb5a7d Merge pull request #6501 from Dwedit/fast_savestate_flag_2
Fast Savestate and Hard Audio Disable flags in RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE
2018-03-31 04:54:09 +02:00
twinaphex 9164bcc244 Add HAVE_RUNAHEAD to Android 2018-03-31 04:22:18 +02:00
gblues d65bd90e67 Fix GC pad button mapping 2018-03-30 18:57:34 -07:00
Dwedit 36d33deb30 Add message about load state expected to succeed. 2018-03-30 20:41:52 -05:00
Dwedit ec6d6e58d6 Fast Savestate and Hard Audio Disable flags 2018-03-30 20:35:52 -05:00
Tatsuya79 0c0cad8630 XMB Right Thumbnail rework. 2018-03-30 23:53:16 +02:00
twinaphex cf4ab13281 Revert "Silence some Clang static analyzer warnings"
This reverts commit 2c882a01c1.
2018-03-30 19:28:37 +02:00
twinaphex b24433a9f2 Hack - make diagonal 5.0f for mobile, 6.5f for desktop 2018-03-30 16:05:45 +02:00
twinaphex 92b46a8275 Some cleanups 2018-03-30 15:50:27 +02:00
Twinaphex 0ff5631649 Merge pull request #6499 from Tatsuya79/patch-1
Make MUI auto dpi a bit bigger for low dpi phones
2018-03-30 15:47:17 +02:00
Tatsuya79 74d4e6043a Make MUI auto dpi a bit bigger for low dpi phones 2018-03-30 15:44:39 +02:00
twinaphex 8acc085dec (input_overlay.c) Get rid of some forward declarations 2018-03-30 13:57:50 +02:00
twinaphex 94254e4c79 (IOHIDManager) Cleanups 2018-03-30 11:49:25 +02:00
Twinaphex 86bfd8f4fc Merge pull request #6497 from ceb33/master
fix to have a deterministic HID device registration
2018-03-30 11:40:24 +02:00
ceb33 c6d6fc7098 fix memory leak 2018-03-30 11:00:38 +02:00
ceb33 82e2cc7c73 set hid device registration deterministic (sorting by ascending location_id), this solve the issue where game with same vid and pid where sometime swapped by the OS 2018-03-30 10:43:54 +02:00
gblues 5060c2aac4 More fixes, GC pad kinda sorta works
== DETAILS

- Added a new method to the joypad_connection_t interface for
  getting a single button
- wired everything into the hidpad driver
- for testing purposes, hacking the top-level joypad driver
  so that kpad isn't used
- add a new RARCH_LOG_BUFFER method to verbosity for logging the
  contents of a binary buffer (useful for writing/debugging pad drivers)
- fix a few bugs in the wiiu GC pad driver

The button mapping isn't quite right, and I'm not sure what's
going wrong.
2018-03-29 23:37:11 -07:00
gblues 89c1ba7929 Keep HID pads from clobbering gamepad/wiimotes
== DETAILS

Trying to do weird pad math just wasn't working so I bit the bullet and just
let it allocate all 16 pads in the slot list, then just mark 0-4 as
connected so that the slot allocator would start at 5.

I can see it detect the pad, but no idea if it works. Out of time for
today.
2018-03-29 23:37:11 -07:00
gblues 1eea48d0c8 Fix crash on exit bug
== DETAILS

Turns out freeing memory that's already been freed is.. bad.

Fix two double-free instances; one due to over-freeing and the other
due to wrong order-of-operations causing a double free.

Also updated logging a little.

== TESTING

The GC adapter still clobbers slot 0, but the "emergency exit" sequence
works to quit RA cleanly.
2018-03-29 23:37:11 -07:00
gblues 6b43defc98 Less verbose logging 2018-03-29 23:37:11 -07:00
gblues 8a4c5086fb Finish HID implementation for WiiU GCA adapter
== DETAILS

(I think)

- Uncomment the call in the read loop to start feeding packets to the
  driver
- implement the GCA packet driver
- implement the pad interface
- fix indentations in GCA driver

== TESTING
Compiles. Haven't tested yet.
2018-03-29 23:37:11 -07:00
gblues 180d6a28bf Fix up HID device driver initialization
== DETAILS
Turns out the cause of the crash was a bad cast, resulting in a
function call to nowhere.

Also, I think the DSI exception handler only works on the primary core;
when this was happening in the background thread, I got a black
screen error instead.

Next up: finishing up the GCA driver.
2018-03-29 23:37:11 -07:00
gblues dc6f4c23ed Rename hid_driver_instance members for clarity 2018-03-29 23:37:11 -07:00
gblues 4b9d5c0ab7 Start implementing "detach" code path
== DETAILS
We're at a point where we need to do more than just
clean up a local data structure, so I've started
implementing the "detach" part of the code so that
everything gets cleaned up properly.

Also, added error handling inside the polling
thread.

== TESTING

Have not tested yet.
2018-03-29 23:37:11 -07:00
gblues 0100d58ffb WIP: evolve driver implementation
== DETAILS

I've created the concept of a hid_driver_instance_t which is basically
a central place to store the hid pad driver, hid subsystem driver,
the pad list, and the instance data for the above in a central location.

The HID pad device drivers can use it to perform HID operations in a
generic manner.

This is more-or-less a pause point so I can catch up with upstream.

== TESTING

Haven't tested this yet. Compiles without warnings though!
2018-03-29 23:37:11 -07:00
gblues 41ce8853d7 Add name for hid device; implement detect
== DETAILS

- detect() methods in device_* files now check for VID/PID
  instead of just returning false
- add "name" field on hid device, mainly for logging purposes

== TESTING
Verified my WiiU GC adapter detected properly
2018-03-29 23:37:11 -07:00
gblues ae19eed00f implement hid device search 2018-03-29 23:37:11 -07:00
i30817 7e43db9cf1 fix scanner skipping directories with dots 2018-03-30 06:15:10 +01:00
Brad Parker ecd42f1aa8 C89 buildfix, correct spacing 2018-03-29 22:15:16 -04:00
Twinaphex 05e34654c6 Update CHANGES.md 2018-03-30 03:03:03 +02:00
Twinaphex 50f19630bd Update CHANGES.md 2018-03-30 03:00:58 +02:00
twinaphex 58df2e6427 update 2018-03-30 02:50:18 +02:00
Twinaphex 12bf69fa29 Update CHANGES.md 2018-03-30 02:44:06 +02:00
Twinaphex 33d9eee436 Update CHANGES.md 2018-03-30 02:41:40 +02:00
Twinaphex e8a77e6b91 Update CHANGES.md 2018-03-30 02:41:09 +02:00
Twinaphex d8787ef805 Update CHANGES.md 2018-03-30 02:37:07 +02:00
twinaphex 008900e73d (D3D11/D3D12) Fix crashes with completely black or white thumbnail
textures in XMB
2018-03-30 02:30:56 +02:00
Twinaphex be5e0dfb1f Merge pull request #6493 from bearoso/master
Prioritize _NET_WM_STATE_FULLSCREEN in true fullscreen mode
2018-03-30 01:52:45 +02:00
Brandon Wright 3bbff3c689 Use _NET_WM_STATE_FULLSCREEN as a first measure, only falling back to override-redirect when not supported. 2018-03-29 17:13:51 -05:00
Twinaphex 9ca3d40018 Merge pull request #6491 from bearoso/master
Allow compositor disabling on X11 fullscreen through _NET_WM_BYPASS_COMPOSITOR
2018-03-29 22:59:39 +02:00
Twinaphex 3c3f1a2661 Merge pull request #6481 from alfrix/right_thumb
Right thumbnail auto size
2018-03-29 22:55:08 +02:00
twinaphex ef039c2c08 Cleanups 2018-03-29 22:39:41 +02:00
Brandon Wright 5da1aa0af7 Allow compositor disabling on X11 fullscreen through _NET_WM_BYPASS_COMPOSITOR.
Note: KWin doesn't bypass compositor on override-redirect windows, so enabling windowed fullscreen is necessary.
2018-03-29 15:20:14 -05:00
Twinaphex dca622b4a8 Merge pull request #6490 from Dwedit/runahead_submission_4
more cleanup, remove malloc_zero, remove free_ptr
2018-03-29 21:14:27 +02:00
Dwedit dd392dcdfb Remove malloc_zero, replace with calloc
Replace free_ptr with FREE macro
2018-03-29 13:22:20 -05:00
twinaphex d04d1c0214 (Runahead) Fix for mingw as suggested by Dwedit 2018-03-29 20:01:34 +02:00
twinaphex 1103f4f630 (input_overlay.c) Cleanups 2018-03-29 19:43:04 +02:00
twinaphex 54636ea5f3 (OSX PPC) Define HAVE_RUNAHEAD 2018-03-29 19:35:26 +02:00
alfrix 647abd6aba Buildfix 2018-03-29 14:07:22 -03:00
alphanu1 1377b2e7cf Merge pull request #27 from alphanu1/alphanu1-patch-28
Add files via upload
2018-03-29 17:56:56 +01:00
alphanu1 d06386d0a5 Add files via upload
Variables removed from headers.
2018-03-29 17:54:46 +01:00
alphanu1 0fe838bfcd Merge pull request #26 from alphanu1/alphanu1-patch-27
Add files via upload
2018-03-29 17:46:24 +01:00
alfrix 0777a6d625 Do not draw the thumbnail if there is no space available 2018-03-29 13:45:54 -03:00
alfrix 5076569c81 Limit right thumb width 2018-03-29 13:45:54 -03:00
twinaphex 25e99ba75b Cleanups 2018-03-29 18:41:19 +02:00
alphanu1 6d536974d8 Add files via upload
Removed comments
2018-03-29 17:37:39 +01:00
twinaphex 65909fd1db free_file no longer necessary 2018-03-29 18:36:53 +02:00
twinaphex 8703ad8374 Get rid of free_str 2018-03-29 18:29:25 +02:00
Twinaphex 2db0c21f52 Fix C11 typedef redefinition issues 2018-03-29 18:10:28 +02:00
twinaphex e85f11ea38 (runahead) Remove unused variable 2018-03-29 18:05:52 +02:00
Twinaphex 425e1d9043 (OSX) Define HAVE_RUNAHEAD 2018-03-29 18:04:15 +02:00
twinaphex 8819b2a2f6 (MSVC 2005/2010/2013/2015/2017) Add HAVE_RUNAHEAD 2018-03-29 18:02:18 +02:00
twinaphex adb2274fc6 - Enable HAVE_RUNAHEAD for MSVC 2003
- Remove some unreferenced labels
2018-03-29 17:55:06 +02:00
Twinaphex 254932af04 Merge pull request #6488 from Tatsuya79/master
XMB Left thumb dynamic positioning and scaling.
2018-03-29 17:47:29 +02:00
twinaphex 0712c0ba99 Fix call to filestream_write to filestream_write_file 2018-03-29 17:45:25 +02:00
twinaphex 67c3fd88f4 Buildfixes - wrong function names were used 2018-03-29 17:35:28 +02:00
Twinaphex 039820f367 Merge pull request #6487 from Dwedit/runahead_submission_3
Runahead cleanup
2018-03-29 17:17:22 +02:00
Dwedit cbc18c74ea resolve conflicts 2018-03-29 09:52:14 -05:00
Tatsuya79 8859fa0213 XMB Left thumb dynamic positioning and scaling. 2018-03-29 16:39:38 +02:00
Dwedit 77f2b7d326 Replace the file handling code from secondary_core.c with the file streams
Hide secondary instance menu item if dynamic libraries are not supported
Remove unlink_utf8 stuff
Fix a compiler warning
2018-03-29 09:37:35 -05:00
twinaphex 77f7e1da8c Make menu_driver_load_image a static function 2018-03-29 16:27:19 +02:00
twinaphex a8b810760b (runahead) Get rid of a bunch of unnnecessary forward declarations 2018-03-29 16:18:45 +02:00
twinaphex b4859cde59 Update copyright attributions as said to PR OP 2018-03-29 16:12:56 +02:00
Twinaphex abdad9bc16 Merge pull request #6471 from alfrix/left_thumb
Left thumbnails
2018-03-29 16:12:32 +02:00
twinaphex c5ec1885f2 Don't use malloc.h anymore 2018-03-29 15:52:49 +02:00
twinaphex 40594a3059 Buildfix 2018-03-29 15:51:20 +02:00
twinaphex 76b025d70e malloc.h not available on OSX 2018-03-29 15:49:39 +02:00
twinaphex 4347517604 Buildfixes 2018-03-29 15:46:39 +02:00
twinaphex ca7c374303 Fix OSX compilation 2018-03-29 15:41:02 +02:00
alfrix a84facf636 Add Left Thumbnails
Fix behaviour when right thumb is off and use as fallback in filebrowser
Remove update_left_thumbnail_path
Fix dual image in imageviewer
Remove xmb_left_thumbnails_ident
Requested Changes
Fix last warning and button not switching thumb
Better scaling
Limit vertical size without changing position
Change thumb cycling behaviour
Remove update_left_thumbnail_image it was causing problems
2018-03-29 10:38:23 -03:00
twinaphex c041470bb0 Add HAVE_RUNAHEAD ifdef 2018-03-29 15:38:22 +02:00
twinaphex 6e662a8064 (D3D12) Buildfix 2018-03-29 15:29:36 +02:00
twinaphex ef5830b233 Silence some CXX_BUILD warnings 2018-03-29 15:27:30 +02:00
twinaphex 4372db491a Cleanup some warnings for C89_BUILD 2018-03-29 15:20:43 +02:00
twinaphex 1b0420807b (Griffin/MSVC) buildfixes 2018-03-29 15:15:47 +02:00
twinaphex 2bdfd2e1d0 (Runahead) Cleanups / style nits / etc. 2018-03-29 15:13:33 +02:00
Twinaphex eeb2a0a934 Merge pull request #6484 from Dwedit/runahead_submission
Runahead system
2018-03-29 14:46:04 +02:00
twinaphex 3fe6ecbce7 More static analyzer warning fixes 2018-03-29 14:19:24 +02:00
twinaphex 2c882a01c1 Silence some Clang static analyzer warnings 2018-03-29 14:11:52 +02:00
bparker06 265b0560b3 travis: disable all d3d versions for windows 2018-03-28 20:16:59 -04:00
Dwedit bc3d0b2acd Fix some static declarations 2018-03-28 17:41:45 -05:00
Dwedit ff0a2d4f57 Add files to the makefile 2018-03-28 17:32:37 -05:00
Dwedit 361152000d Added the missing file 2018-03-28 17:14:20 -05:00
Dwedit f5e0346fc2 Runahead system 2018-03-28 14:22:07 -05:00
twinaphex 2143540c8c (MSVC 2013/2015/2017) Add HAVE_CHEEVOS support 2018-03-28 18:33:31 +02:00
twinaphex 994ca6b3f8 Enable HAVE_CHEEVOS for MSVC 2003 target too 2018-03-28 18:07:31 +02:00
twinaphex 163be3ccfd (vulkan_common.c) Prevent some more collissions in the future 2018-03-28 17:41:04 +02:00
Twinaphex 02ce39869c Merge pull request #6480 from Dwedit/fix_d3d_duplicate
Rename "cached_device" to "cached_device_d3d11" to avoid a name conflict on griffin builds
2018-03-28 17:38:11 +02:00
Dwedit 2c1cb6cf55 Rename "cached_device" to "cached_device_d3d11" avoid a name conflict on griffin builds 2018-03-28 10:33:37 -05:00
Twinaphex 8c6f05e715 Merge pull request #6479 from Dwedit/fix_command_line
Fix invalid long command line options causing infinite loop on Windows (issue #6477)
2018-03-28 17:19:46 +02:00
Dwedit 86d24a0fc4 Fix invalid long command line options causing infinite loop on Windows (issue #6477) 2018-03-28 10:08:57 -05:00
Twinaphex 55157506a8 Merge pull request #6478 from alfrix/polish
Update Polish translation (DEX357)
2018-03-28 17:08:27 +02:00
alfrix d4558774df Update Polish translation (DEX357) 2018-03-28 11:55:20 -03:00
twinaphex e71f56d4a3 Update libretro-common 2018-03-28 16:45:05 +02:00
twinaphex 89e912087b Put RARCH_INTERNAL ifdef around this 2018-03-28 16:41:37 +02:00
twinaphex d17eee9cca We can actually disable DPI override by default now 2018-03-28 16:33:19 +02:00
twinaphex 5a7c37b819 Revert "(OpenSL) Fix issues with cores using threaded audio - audio thread"
This reverts commit 54708a944a.
2018-03-28 16:26:53 +02:00
Twinaphex 942121462d Merge pull request #6463 from Tatsuya79/patch-2
MUI New dpi calculation. (needs improvement)
2018-03-28 16:22:52 +02:00
twinaphex 167b977c4d Fix some build errors with MSVC 2003/2005 cores 2018-03-28 16:22:35 +02:00
twinaphex bb86387986 Re-enable HAVE_CHEEVOS for MSVC 2010 2018-03-28 14:57:27 +02:00
Twinaphex c30fd2a035 Merge pull request #6475 from meleu/patch-18
CHANGES: cheevos for NeoGeo, CPS1, CPS2 and CPS3
2018-03-28 12:44:13 +02:00
meleu 51f0e6f9d3 CHANGES: cheevos for NeoGeo, CPS1, CPS2 and CPS3
The fbalpha core supports cheevos for these drivers.

Thanks to @barbudreadmon for adding this support ;)
2018-03-28 00:30:01 -03:00
twinaphex d8e382c585 (Cheevos) Take out cheevos support for MSVC 2010 again, CORO_YIELD
macro does not work with MSVC 2010
2018-03-28 01:28:15 +02:00
alphanu1 d8c5718a6e Update README.md
incorrect spelling
2018-03-27 23:01:09 +01:00
alphanu1 e8d90500de Merge pull request #25 from alphanu1/alphanu1-patch-26
Add files via upload
2018-03-27 20:20:04 +01:00
alphanu1 46500e119c Add files via upload
native switch fix
2018-03-27 20:18:31 +01:00
twinaphex 1cfc8a5fc8 (Coverity) Fix some memory leaks 2018-03-27 17:03:36 +02:00
twinaphex 923ab3b6f4 (DRM Ctx) Buildfix 2018-03-27 14:19:36 +02:00
alphanu1 fc173eafab Update README.md 2018-03-27 00:12:46 +01:00
alphanu1 7f3b2474a9 Update README.md 2018-03-27 00:08:59 +01:00
alphanu1 9ce592b648 Update README.md 2018-03-26 23:58:54 +01:00
alphanu1 e55323daa9 Merge pull request #23 from alphanu1/alphanu1-patch-24
Add files via upload
2018-03-26 23:52:28 +01:00
alphanu1 b1fca8fc7e Add files via upload
Removed debug info
2018-03-26 23:51:40 +01:00
alphanu1 9cf0f19c12 Merge pull request #22 from alphanu1/alphanu1-patch-23
Add files via upload
2018-03-26 23:50:47 +01:00
alphanu1 d7d1d1d5b8 Add files via upload
Fixed errors after variable changes
2018-03-26 23:49:33 +01:00
alphanu1 cf422226e6 Merge pull request #21 from alphanu1/alphanu1-patch-22
Add files via upload
2018-03-26 21:25:36 +01:00
alphanu1 316e1ebf66 Add files via upload
Missing var in Linux placeholder
2018-03-26 21:25:16 +01:00
alphanu1 94ea7dde50 Merge pull request #20 from alphanu1/alphanu1-patch-21
Add files via upload
2018-03-26 21:22:38 +01:00
alphanu1 0ef6455c61 Add files via upload
Windows / Linux deps fix
2018-03-26 21:22:19 +01:00
alphanu1 4932b95777 Merge pull request #19 from alphanu1/alphanu1-patch-20
Add files via upload
2018-03-26 21:14:55 +01:00
alphanu1 80e295505e Add files via upload 2018-03-26 21:14:27 +01:00
alphanu1 e9ccb86b09 Merge pull request #18 from alphanu1/alphanu1-patch-19
Add files via upload
2018-03-26 21:08:01 +01:00
alphanu1 2ed38a8481 Add files via upload
Includes Linux place holder
2018-03-26 21:07:22 +01:00
alphanu1 06efb30c46 Merge pull request #17 from alphanu1/alphanu1-patch-18
Add files via upload
2018-03-26 21:03:05 +01:00
alphanu1 2243d7641b Add files via upload
Windows driver
2018-03-26 21:02:50 +01:00
alphanu1 62a0d378dd Merge pull request #16 from alphanu1/alphanu1-patch-17
Add files via upload
2018-03-26 21:02:09 +01:00
alphanu1 ce2d4af103 Add files via upload
Added Linux place holder
2018-03-26 21:01:13 +01:00
alphanu1 7e64052dc8 Merge pull request #14 from alphanu1/alphanu1-patch-16
Add files via upload
2018-03-26 20:29:57 +01:00
alphanu1 024b23aa2c Add files via upload 2018-03-26 20:29:34 +01:00
alphanu1 b2d45beb10 Merge pull request #13 from alphanu1/alphanu1-patch-15
Add files via upload
2018-03-26 20:24:38 +01:00
alphanu1 3b9036cc79 Add files via upload
Requested changes
2018-03-26 20:22:35 +01:00
alphanu1 a44f4d1489 Add files via upload
Change requests
2018-03-26 18:15:18 +01:00
Twinaphex 4b3c37494a Merge pull request #6470 from aliaspider/master
D3D11: hwrender: add support for cache_context.
2018-03-26 18:47:37 +02:00
aliaspider 97ecba8575 D3D11: hwrender: add support for cache_context. 2018-03-26 17:44:08 +01:00
alphanu1 dcc416ca46 Update README.md 2018-03-26 17:41:09 +01:00
alphanu1 d919e93013 Update README.md 2018-03-26 17:39:51 +01:00
alphanu1 e6c1704789 Merge pull request #12 from alphanu1/alphanu1-patch-14
Add files via upload
2018-03-26 17:23:38 +01:00
alphanu1 f6ab07f3fc Add files via upload
Changed variable names and comments
2018-03-26 17:21:37 +01:00
alphanu1 dd8beb48b6 Add files via upload
Changed variable names
2018-03-26 17:19:35 +01:00
alphanu1 51276a682f Add files via upload
Changed variable names
2018-03-26 17:18:43 +01:00
alphanu1 ff68b9244d Merge pull request #11 from alphanu1/alphanu1-patch-13
Add files via upload
2018-03-26 17:17:57 +01:00
alphanu1 540b15d6ef Add files via upload
Changed variable names
2018-03-26 17:17:23 +01:00
alphanu1 43205baa9a Update README.md 2018-03-26 16:20:22 +01:00
alphanu1 7f6f95c215 Merge pull request #10 from alphanu1/alphanu1-patch-11
CRT
2018-03-26 16:09:28 +01:00
alphanu1 b30aca2d6d CRT 2018-03-26 16:08:29 +01:00
alphanu1 af7f1da9fb Update README.md 2018-03-26 15:54:23 +01:00
alphanu1 670216d021 Update README.md 2018-03-26 15:48:53 +01:00
alphanu1 2783a26b97 Merge pull request #9 from alphanu1/alphanu1-patch-10
CRT
2018-03-26 15:40:43 +01:00
alphanu1 71578a43f6 CRT 2018-03-26 15:40:17 +01:00
alphanu1 b297f391ad Merge pull request #8 from alphanu1/alphanu1-patch-9
CRT
2018-03-26 15:37:12 +01:00
alphanu1 2967283b29 CRT 2018-03-26 15:36:53 +01:00
alphanu1 8e5a00d66b Merge pull request #7 from alphanu1/alphanu1-patch-8
CRT SwitchRes
2018-03-26 15:36:18 +01:00
alphanu1 b33cb14ba0 CRT SwitchRes 2018-03-26 15:35:30 +01:00
alphanu1 56bc1757ed CRT SwitchRes 2018-03-26 15:07:46 +01:00
alphanu1 8ce7703970 Merge pull request #5 from alphanu1/alphanu1-patch-5
CRT SwitchRes
2018-03-26 15:07:04 +01:00
alphanu1 99645e2cd7 CRT SwitchRes 2018-03-26 15:06:39 +01:00
alphanu1 2fc350828c Merge pull request #4 from alphanu1/alphanu1-patch-4
CRT SwitchRes
2018-03-26 15:05:38 +01:00
alphanu1 d207986a74 CRT SwitchRes 2018-03-26 15:05:12 +01:00
alphanu1 7eec1f3a24 Merge pull request #3 from alphanu1/alphanu1-patch-3
CRT SwitchRes
2018-03-26 15:04:10 +01:00
alphanu1 635b3b7670 CRT SwitchRes 2018-03-26 15:03:46 +01:00
alphanu1 8eb34f2544 Merge pull request #2 from alphanu1/alphanu1-patch-2
CRT SwitchRes
2018-03-26 15:01:57 +01:00
alphanu1 030b11c372 CRT SwitchRes 2018-03-26 15:01:09 +01:00
alphanu1 697e158d7a Merge pull request #1 from alphanu1/master-1
Add files via upload
2018-03-26 14:56:53 +01:00
alphanu1 9d23af5299 Add files via upload 2018-03-26 14:56:23 +01:00
Twinaphex a32d7d974c Update CHANGES.md 2018-03-26 00:40:48 +02:00
Twinaphex 1ff798b8a5 Merge pull request #6464 from aliaspider/master
add experimental D3D11 hwrender support.
2018-03-26 00:24:38 +02:00
aliaspider 3d96cacd71 add experimental D3D11 hwrender support. 2018-03-25 23:14:14 +01:00
aliaspider 88d1c1fdca msvc build fix. 2018-03-25 23:11:31 +01:00
twinaphex 826a7d199a Remove useless struct 2018-03-25 19:16:39 +02:00
Tatsuya79 8ecba8b2a3 MUI New dpi calculation. 2018-03-25 18:40:22 +02:00
twinaphex aa5525f670 Move core_len/core_buf to menu_handle_t 2018-03-25 17:35:46 +02:00
Twinaphex a130dce708 Update CHANGES.md 2018-03-25 17:09:51 +02:00
Twinaphex 814810aeaf Merge pull request #6462 from theheroGAC/patch-29
Fix and update msg_hash_it.h
2018-03-25 17:07:52 +02:00
twinaphex a2295af556 Make these variables a part of menu_handle_t 2018-03-25 17:02:30 +02:00
theheroGAC 30074b4404 Update msg_hash_it.h 2018-03-25 16:47:31 +02:00
Twinaphex 8a63a0ac52 Update CHANGES.md 2018-03-25 14:47:04 +02:00
twinaphex ae4b604a6f Update 2018-03-25 12:17:05 +02:00
Twinaphex 8bc04f90fe Merge pull request #6456 from fr500/master
Fixes #6453
2018-03-25 12:16:06 +02:00
Twinaphex ad37bc530e Merge pull request #6460 from yoshisuga/ios_config_fix
[iOS]: fixed configuration file path
2018-03-25 12:15:53 +02:00
Yoshi Sugawara baf7aa239d [iOS]: fixed configuration file path to be the retroarch cfg file instead of the config path 2018-03-24 23:47:24 -10:00
Twinaphex 20a73209b6 Merge pull request #6457 from Tatsuya79/patch-1
XMB scale the mouse cursor too.
2018-03-25 09:32:05 +02:00
radius 94e4357fd4 return early in case path is null and move vars to the top 2018-03-24 19:11:07 -05:00
Tatsuya79 1aaaa116d1 XMB scale the mouse cursor too. 2018-03-25 00:48:05 +01:00
twinaphex 02bf41a686 (task_content.c) Minor cleanup 2018-03-25 00:14:35 +01:00
twinaphex 3c6490d828 Update 2018-03-25 00:09:57 +01:00
Twinaphex b1c054e9a5 Merge pull request #6455 from Tatsuya79/master
Fix XMB thumbnail height limit again.
2018-03-24 23:58:10 +01:00
radius 51c9ac4f7a fix crash related to achievements on non-fullpath cores 2018-03-24 17:52:23 -05:00
Tatsuya79 35ae907899 Fix XMB thumbnail height limit again. 2018-03-24 23:22:42 +01:00
Twinaphex 75d2813d47 Merge pull request #6452 from meepingsnesroms/master
Add PokeMini index for 3ds
2018-03-24 20:27:44 +01:00
meepingsnesroms 9c47e24a84 Add PokeMini index for 3ds 2018-03-24 12:10:54 -07:00
Twinaphex ce40bc6446 Merge pull request #6451 from Tatsuya79/master
Fix XMB thumbnail height limit.
2018-03-24 20:05:08 +01:00
Tatsuya79 a32880fd22 Fix XMB thumbnail height limit. 2018-03-24 18:43:15 +01:00
twinaphex e4b955d4d4 Fix sample count reporting 2018-03-24 16:29:39 +01:00
Twinaphex eaf1e1474e Merge pull request #6450 from Tatsuya79/patch-1
Update CHANGES.md
2018-03-24 16:12:28 +01:00
twinaphex df58d5a7d9 Fix C89_BUILD 2018-03-24 16:11:10 +01:00
Tatsuya79 07aa350d7e Update CHANGES.md 2018-03-24 15:47:44 +01:00
twinaphex 875450e228 Statistics - add sample count 2018-03-24 15:42:45 +01:00
twinaphex 33d99fe75b Add fps / ms metrics to statistics 2018-03-24 15:39:02 +01:00
Twinaphex 1818552aeb Merge pull request #6449 from markwkidd/core-association-warning
Core association warning
2018-03-24 15:19:59 +01:00
Twinaphex ea1df738a7 Update CHANGES.md 2018-03-24 15:18:47 +01:00
Twinaphex 131418e371 Update CHANGES.md 2018-03-24 15:18:10 +01:00
markwkidd 007829654e cast and dereference pointer without compiler warn 2018-03-24 10:16:34 -04:00
markwkidd b984abb371 pass address of unsigned index 2018-03-24 10:15:41 -04:00
twinaphex defcde0d1e (OpenSL) buf_count - make sure it can never be lower than 2 (with
current code) - was an issue when setting audio latency to much
lower values
2018-03-24 14:50:59 +01:00
twinaphex 54708a944a (OpenSL) Fix issues with cores using threaded audio - audio thread
would freeze waiting for a signal while toggling the menu
2018-03-24 14:48:58 +01:00
twinaphex 1fb7d14b36 Add audio statistics 2018-03-24 12:38:25 +01:00
twinaphex 9343eacc0a Create public function compute_audio_buffer_statistics 2018-03-24 12:25:52 +01:00
twinaphex 647f1a48a6 Add max size to statistics 2018-03-24 12:08:43 +01:00
twinaphex 9b8713aebd Fix Coverity defects 2018-03-24 11:59:01 +01:00
twinaphex 9057ffbde4 use boolean.h instead of stdbool.h 2018-03-24 11:45:50 +01:00
twinaphex 70f598c619 Use boolean.h instead of stdbool.h 2018-03-24 11:41:17 +01:00
Twinaphex 473d978d78 Merge pull request #6444 from Dwedit/original_suggestion
Functions to suspend and resume audio and video, and environment function for core to query status of enabled/disabled audio and video
2018-03-24 09:54:47 +01:00
Twinaphex 2b1979c3b7 Merge pull request #6447 from markwkidd/patch-1
revert change to core association to fix regression
2018-03-24 09:54:06 +01:00
markwkidd 512dc7fef5 revert change to core association to fix regression 2018-03-23 22:17:43 -04:00
Dwedit 3297900543 Add the early return to audio_driver_sample_batch 2018-03-23 17:22:00 -05:00
Dwedit fbd4900031 Add documentation for RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE to the header file 2018-03-23 16:33:51 -05:00
Dwedit 575265ff06 Remove early return from audio_driver_flush 2018-03-23 14:46:32 -05:00
Dwedit 7deeb6d2fa Functions to enable and disable audio and video, and an environment function to query status of audio and video enables 2018-03-23 14:12:05 -05:00
twinaphex 4d1b4f905f Start adding OSD statistics - doesn't work yet for SDL2/SDL 2018-03-23 17:43:49 +01:00
twinaphex 0ece3d8397 Start implementing frame_time/frame_count to video_info 2018-03-23 13:30:30 +01:00
twinaphex 85d3be1245 Update libretro-common 2018-03-23 11:17:56 +01:00
Twinaphex e179a39491 Merge pull request #6442 from yoshisuga/small_fixes
[iOS]: Some small fixes
2018-03-23 10:02:39 +01:00
Yoshi Sugawara c44dd39dd6 Fixed crash when opening content using "open in..", support for keyboard mapper 2018-03-22 22:43:20 -10:00
markwkidd e9822e0ac7 Update menu_cbs_ok.c (#6439) 2018-03-22 19:46:02 -04:00
Twinaphex 5c82ef3ee3 Merge pull request #6423 from markwkidd/playlist-core-reset
"reset associated core" feature for playlists
2018-03-22 21:40:19 +01:00
twinaphex be796566bc Add HAVE_CHEEVOS support for MSVC 2005 2018-03-22 20:45:35 +01:00
twinaphex f597fd7a11 Add HAVE_CHEEVOS support for MSVC 2010 2018-03-22 20:42:06 +01:00
markwkidd e373d82a58 cherry-pick menu code for core association reset 2018-03-22 13:27:37 -04:00
Twinaphex 0be2b76892 Update slang_process.cpp 2018-03-22 15:24:03 +01:00
twinaphex c318d05803 Fix buffer overlap - pointed out by @leo150, thanks 2018-03-22 15:22:17 +01:00
Twinaphex dac6f11547 Merge pull request #6435 from GregorR/netplay-device-availability-bug
Fix a bug in remembering device availability for netplay
2018-03-22 12:29:20 +01:00
Gregor Richards 06b402bc14 Fix a bug in remembering device availability for netplay
Really silly bug had netplay forgetting to unset device availability
when a client goes to spectator mode. As a consequence, in certain
configurations, later joins would automatically choose the wrong device,
and you'd have to manually specify a device to get the right one. This
fixes that.
2018-03-21 19:24:58 -04:00
Twinaphex 59bf897561 Merge pull request #6431 from meleu/patch-17
cheevos.c: getting the hash from ROM's filename
2018-03-21 20:33:18 +01:00
meleu d2d8f00b29 cheevos.c: getting the hash from ROM's filename
This is the method we'll use for arcade games.
2018-03-21 11:21:33 -03:00
Twinaphex c29ff4304c Merge pull request #6428 from GregorR/fix-appendconfig
Fix --appendconfig conflict with load order
2018-03-21 05:29:22 +01:00
Twinaphex 4fa50d14ea Merge pull request #6429 from orbea/snow
Fix apitrace shader compiler warning.
2018-03-21 05:28:59 +01:00
orbea 7526b12338 Fix apitrace shader compiler warning.
2418: message: major shader compiler issue 2: 0:3(311): warning: `atime' used uninitialized
  2418 @0 glCompileShader(shader = 27)
  2418: warning: 0:3(311): warning: `atime' used uninitialized
2018-03-20 17:39:33 -07:00
Gregor Richards ea85727b3c Fix --appendconfig conflict with load order
I'd previously changed the load order of command line options to make
overrides work with less hassle. I didn't notice --appendconfig, which,
as a where-is-the-config-file option, needs to come before config file
loading. This fixes that.
2018-03-20 18:48:51 -04:00
hizzlekizzle 813c7ad1f7 Merge pull request #6425 from vickychenglau/README.md-edits
Edited README.md for grammar and formatting
2018-03-20 08:36:01 -05:00
Vicky C Lau 7928c03e3c Edited for grammar and formatting 2018-03-20 00:54:23 -07:00
twinaphex 319d87cf6f Bump up version 2018-03-20 08:35:17 +01:00
Twinaphex ab672c4394 Merge pull request #6424 from fr500/staging
try to fix building SPIRV on android yet again
2018-03-20 08:03:56 +01:00
radius e9fdfd2334 try to fix building yet again 2018-03-20 01:46:30 -05:00
Andrés 8e3fb86115 Merge pull request #6421 from fr500/master
subsystem part 5: show subsystem roms within archives
2018-03-19 19:28:05 -05:00
radius caafe61f07 show subsystem roms within archives 2018-03-19 18:44:15 -05:00
twinaphex f78f5c27ce Try to silence more Coverity warnings 2018-03-19 14:18:39 +01:00
Twinaphex 719a3e52c7 Merge pull request #6400 from altiereslima/master
Update Translation (Portuguese Brazilian)
2018-03-19 13:51:09 +01:00
twinaphex 6bf011a700 Silence another warning 2018-03-19 12:25:56 +01:00
twinaphex 72dc03a1c6 Try to fix Coverity warnings 2018-03-19 06:58:36 +01:00
Twinaphex 62d2b9a54e Merge pull request #6417 from Tatsuya79/patch-1
xmb_scale_factor min limit to 20
2018-03-19 03:46:50 +01:00
Twinaphex a357198bda Merge pull request #6418 from bearoso/master
Fix multi-line text spacing in menus with Vulkan driver.
2018-03-19 03:46:35 +01:00
Brandon Wright eb6d04d430 With X context set vk.swapchain to VK_NULL_HANDLE when failing to create swapchain so Vulkan common functions don't try and use it and crash. 2018-03-18 19:31:25 -05:00
Andrés c7f070113a Merge pull request #6419 from fr500/master
reset retroarch.cfg
2018-03-18 19:06:37 -05:00
radius 9b022c5904 reset retroarch.cfg 2018-03-18 19:06:07 -05:00
Brandon Wright 1f472db2aa Fix multi-line text spacing in menus with Vulkan driver. 2018-03-18 18:57:24 -05:00
Tatsuya79 ac556e0b7c xmb_scale_factor min limit to 20 2018-03-18 23:05:57 +01:00
markwkidd 1354526345 fix whitespace typo 2018-03-18 16:43:20 -04:00
markwkidd 4312c11d31 demonstration of core association reset
fix .cfg:

tweak
2018-03-18 16:41:49 -04:00
Twinaphex adc4f27eb9 Merge pull request #6416 from fr500/staging
try to fix android compilation issues
2018-03-18 19:12:07 +01:00
Twinaphex 4d8d6478f4 Merge pull request #6415 from fr500/master
fix potential crash on task_push_http_transfer
2018-03-18 19:11:42 +01:00
radius fd9d8c9512 fix potential crash on task_push_http_transfer 2018-03-18 12:52:04 -05:00
radius eb1d3f612f try to fix android compilation issues 2018-03-18 11:55:54 -05:00
Andrés a8fc4b204a Merge pull request #6413 from fr500/staging
remove task_push_http_transfer_raw, encode before sending data to the…
2018-03-18 11:13:03 -05:00
Twinaphex 3e3b24bbaf Merge pull request #6414 from bearoso/master
Fix X11 Vulkan bug from Wayland driver.
2018-03-18 04:41:32 +01:00
Brandon Wright e8de264b75 Fix X11 Vulkan bug from Wayland driver. 2018-03-17 19:45:01 -05:00
Twinaphex 8f0c94a322 Merge pull request #6412 from fr500/master
Fix #6411
2018-03-17 22:47:19 +01:00
radius 05b6c4eafa update CHANGES.md 2018-03-17 15:04:55 -05:00
radius 1a4db72e82 shader left / right fixes and cleanup 2018-03-17 14:56:34 -05:00
radius c52fdc469f remove task_push_http_transfer_raw, encode before sending data to the task 2018-03-16 22:38:21 -05:00
Twinaphex 9721c7c4be Merge pull request #6407 from QuarkTheAwesome/master
[WiiU] Fix OOB read/write in keyboard driver
2018-03-17 03:36:47 +01:00
Ash aeea0e6ca8 [WiiU] Fix OOB read/write in keyboard driver
This code used a keyboardState size of 256 and indexed it with a
retro_key, which can be any value (RETROK_RALT is 307). This fixes
that by using RETROK_LAST as the array size.

Should fix #6322.
2018-03-17 13:00:47 +11:00
meleu 176cde31fc decreasing verbosity in Achievements menu 2018-03-16 21:04:56 -03:00
twinaphex fb011f8377 Fix MSVC 2013 build 2018-03-16 22:04:34 +01:00
Brad Parker 450fc90a15 griffin: add vc2015 Makefile target 2018-03-16 21:03:58 +00:00
Brad Parker 614521b238 fix building on windows without dinput 2018-03-16 21:03:43 +00:00
twinaphex ffbb439fb5 Fix MSVC 2015 solution 2018-03-16 21:45:14 +01:00
Brad Parker 3d378fd772 add back missing UTF8 BOMs 2018-03-16 16:21:19 -04:00
Twinaphex 65c903de3c Merge pull request #6403 from fr500/staging
fix shader parameter increase decrease
2018-03-16 19:24:10 +01:00
radius 6b150ba38d fix shader parameter increase decrease 2018-03-16 09:32:22 -05:00
altiereslima 24783b21cf Update Translation (Portuguese Brazilian) 2018-03-16 02:35:29 -03:00
Twinaphex aa4ded4bc7 Merge pull request #6399 from meleu/patch-16
fixing cheevos (broken after #6389)
2018-03-16 05:12:26 +01:00
meleu eb5a69ded3 fixing cheevos (broken after #6389) 2018-03-16 01:03:57 -03:00
Twinaphex 29a057ac98 Merge pull request #6397 from meleu/patch-11
cheevos: console ID for Game Gear
2018-03-15 21:39:35 +01:00
meleu ca6df1ae32 Support Game Gear
The Console ID 15 was changed to Game Gear at RetroAchievements database.

http://retroachievements.org/gameList.php?c=15
2018-03-15 16:40:19 -03:00
Twinaphex 83fae86b6f Merge pull request #6395 from RobLoach/achievement-list
cheevos: Rename "Achievement List" to "Achievements"
2018-03-15 18:03:58 +01:00
Rob Loach 518ff36ed4 cheevos: Rename 'Achievement List' to 'Achievements' 2018-03-15 12:56:20 -04:00
Twinaphex 1c045de7a6 Merge pull request #6392 from meleu/patch-15
Update CHANGES.md
2018-03-15 16:42:31 +01:00
Twinaphex e07be500ee Merge pull request #6390 from aliaspider/master
(Vulkan) add missing queue locks when calling vkQueueWaitIdle.
2018-03-15 16:41:33 +01:00
meleu d02d48da24 Update CHANGES.md 2018-03-15 07:52:03 -03:00
aliaspider b948cf46e7 (Vulkan) add missing queue locks when calling vkQueueWaitIdle. 2018-03-15 09:21:23 +01:00
Twinaphex ee809abf6b Merge pull request #6388 from meleu/patch-12
added cheevos_auto_screenshot
2018-03-15 06:42:10 +01:00
twinaphex 6653818dc8 Revert "(input_overlay.c) Cleanups"
This reverts commit 56389466aa.
2018-03-15 06:39:06 +01:00
Twinaphex 1eaa902b6d Merge pull request #6389 from fr500/master
make sure to always encode urls, also change the PS3 default urls
2018-03-15 06:36:40 +01:00
radius b01e63e2cd make sure to always encode urls, also change the PS3 default urls 2018-03-14 23:04:50 -05:00
meleu 6346f18133 added cheevos_auto_screenshot 2018-03-14 22:41:51 -03:00
twinaphex 6bf34c36ed Update net_http_test 2018-03-15 00:38:30 +01:00
twinaphex 9cac3175c3 Buildfix 2018-03-15 00:31:29 +01:00
twinaphex 32b2808fe0 Revert "Turn scaler_ctx_scale_direct into inline function"
This reverts commit d51edd8239.
2018-03-14 23:48:47 +01:00
twinaphex e5eeed688e Add some stuff to net sample Makefile 2018-03-14 23:48:29 +01:00
twinaphex fd206a7dd0 Update https links 2018-03-14 19:09:05 +01:00
Twinaphex 0d4833fb76 Merge pull request #6385 from meleu/patch-11
Update CHANGES.md
2018-03-14 06:32:40 +01:00
meleu a419c524f7 Update CHANGES.md
- CHEEVOS: Support Atari 2600, Virtual Boy, Neo Geo (Arcade).
- VITA: Bugfix for 'PS Vita takes many time to start to accept input' issue.
2018-03-13 23:08:25 -03:00
Twinaphex d170cb5469 Merge pull request #6379 from RobLoach/morningblue
xmb: Add Morning Blue theme
2018-03-12 02:49:51 +01:00
Rob Loach ddb0f81cf2 xmb: Add Morning Blue theme 2018-03-11 20:37:49 -04:00
twinaphex d51edd8239 Turn scaler_ctx_scale_direct into inline function 2018-03-11 18:14:17 +01:00
twinaphex d6eda2502d Improve scaler_ctx_scale_direct macro 2018-03-11 17:46:39 +01:00
Twinaphex 4552002945 Merge pull request #6375 from GregorR/override-load-order
Make command-line overrides (somewhat) clearer
2018-03-11 01:32:14 +01:00
Twinaphex 173f6a23e3 Merge pull request #6377 from Ryunam/master
Implement Slow motion toggle under Input Hotkey Binds
2018-03-10 22:15:04 +01:00
Ryunam c5775fd73c Implement Slow motion toggle 2018-03-10 18:42:45 +01:00
Gregor Richards 2be56942da Since directories can't be post-overridden, that case still needs to be handled separately. 2018-03-09 17:33:41 -05:00
Gregor Richards b33d29aecf Make command-line overrides (somewhat) clearer
This commit:

(1) Changes the order of command-line loading so that config loading
happens before command line overrides. This way, config loading does not
itself have to be concerned with being pre-overridden.

(2) Adds overrides to the data structures that configuration saving uses
to save configuration blocks of the same type, so that they can easily
be added in the future.

(3) Corrects some (all?) existing problems with command-line overrides
being ignored.
2018-03-09 17:23:34 -05:00
twinaphex d991c7d471 Fix warning 2018-03-09 15:44:11 +01:00
twinaphex 96e154cb8f Fixes PS3 build hopefully 2018-03-09 15:39:10 +01:00
Twinaphex 6d8544c26d Merge pull request #6373 from ajefr/patch-2
declaration error
2018-03-09 04:02:16 +01:00
ajefr 1da67cecf3 declaration error 2018-03-08 21:44:26 +01:00
Andrés 07ecc641fe Merge pull request #6372 from ajefr/patch-1
typo
2018-03-08 15:25:06 -05:00
ajefr 98f8ed637c typo
stati -> static
2018-03-08 21:19:00 +01:00
twinaphex 7a99694a1a Update PS3 buildbot URLs 2018-03-08 03:45:55 +01:00
meleu d5503e9e7c fix a bad in_addr manipulation on VITA - fixes #6127 (#6366)
added VITA condition
2018-03-07 22:11:30 +01:00
Twinaphex 1bccf5cf27 Merge pull request #6365 from Tatsuya79/patch-3
Fix MaterialUI scaling bug in long lists, lower res devices.
2018-03-07 16:07:16 +01:00
Tatsuya79 5dda583a94 Fix MaterialUI scaling bug in long lists, lower res devices. 2018-03-07 12:17:10 +01:00
Twinaphex d532f108fc Merge pull request #6364 from reswitched/master
[NSW] Graphics driver speed improvements/fixes and audio driver improvement
2018-03-07 06:35:39 +01:00
misson20000 35f796d65d NSW(audio): use alloc_pages to acquire buffers instead of using ones in bss 2018-03-06 21:18:42 -08:00
misson20000 e934f11065 NSW: skip frames if we can't acquire a buffer (newer libtransistors use three buffers, making this very unlikely to happen) 2018-03-06 20:55:40 -08:00
misson20000 4a4de74518 NSW(gfx): clear image row-by row for better caching (it's seriously a LOT faster), do pixel format conversion in scalers, and remove timing debug messages 2018-03-06 19:52:03 -08:00
misson20000 dd53be15ae let scalers output in ABGR8888 2018-03-06 19:52:03 -08:00
Twinaphex 82fb34a3ce Merge pull request #6327 from ramiro/add-arab-lang-name-en-literal
Add "Arabic" to intl/msg_hash_us.h missed in 45580cb9a8.
2018-03-06 20:52:31 +01:00
twinaphex 82213266e6 (PS3) Change back to SNC 2018-03-06 19:03:51 +01:00
twinaphex 2b300b96e2 Update Makefile.ps3.cobra too 2018-03-06 18:32:00 +01:00
twinaphex 3e6ffe3983 See if this fixes PS3 builds 2018-03-06 18:31:25 +01:00
twinaphex 14e6d42935 (XMB) Get rid of some unnecessary pointer passing 2018-03-06 15:55:06 +01:00
twinaphex aa57331569 (MaterialUI) Attempt to make things more readable 2018-03-06 15:34:58 +01:00
Twinaphex b815c64814 Merge pull request #6355 from 777sha/master
More french translations
2018-03-06 15:33:41 +01:00
Twinaphex 2e61eecbdd Merge pull request #6363 from reswitched/master
NSW: Menu toggle combo, build fix, graphics driver fixes
2018-03-06 12:57:42 +01:00
misson20000 90c36c52ce NSW: fix graphics driver colors for rgb32 and don't break aspect ratio when scaling menu texture 2018-03-05 23:45:28 -08:00
misson20000 22c95b31ea NSW: cpu_features_get_time_usec: put SWITCH block before POSIX_MONOTONIC_CLOCK block 2018-03-05 20:23:49 -08:00
misson20000 7487d938b3 NSW: remove global state in graphics driver, as it is no longer necessary 2018-03-05 20:14:52 -08:00
Lubosz Sarnecki be64bf08e4 config.def.h: Toggle menu with start & select (- & +) on Switch. 2018-03-05 20:03:56 -08:00
Twinaphex a4e2c8c75c Update Makefile.ps3.salamander 2018-03-06 04:47:58 +01:00
Twinaphex 34ec4b9dcb Update Makefile.ps3.cobra 2018-03-06 04:47:34 +01:00
Twinaphex 7d8e8291ec Update Makefile.ps3 2018-03-06 04:47:16 +01:00
Twinaphex 333ef62e25 Merge pull request #6362 from aliaspider/master
update SPIRV-Cross.
2018-03-06 04:47:01 +01:00
aliaspider bb972a6dab (spirv) set flip_vert_y to true when emitting HLSL. 2018-03-06 04:12:58 +01:00
aliaspider ff6d24cbef (SPIRV-Cross) Merge commit 'f48c1800c0122e8e7957f572c359e4594932cd4c' 2018-03-06 04:11:59 +01:00
aliaspider f48c1800c0 Squashed 'deps/SPIRV-Cross/' changes from 33c5cd9..c9516fa
c9516fa Fix OSX Travis.
94cd777 Move `rename_interface_variable` to util
467c956 Merge pull request #480 from KhronosGroup/fix-476
1e4db56 Run format_all.sh.
eecbeaa Take execution model into account for entry point methods.
337150f Merge pull request #479 from KhronosGroup/fix-477
3c1b147 Support Invariant for BuiltInPosition.
cae1722 Merge pull request #475 from KhronosGroup/fix-convert-cast
e69b1ae Fix implicit conversion bug.
b39c063 Merge pull request #474 from KhronosGroup/fix-pointer-overload
fda36f8 Fix function overload when SPIR-V overloads on pointer type.
a61e728 Merge pull request #472 from KhronosGroup/fix-446
6a12ff7 Fix multiple declaration of spvDet2x2 on MSL.
b380a21 Implement MatrixInverse on HLSL.
6066fe4 Merge pull request #471 from KhronosGroup/fix-462
f6d08e6 Add workaround for PointCoord builtin on HLSL.
fb196c2 Merge pull request #470 from KhronosGroup/fix-459
dd603ea Support spec constant array size in blocks.
32b1c7d Merge pull request #469 from KhronosGroup/fix-454
a04bdcc Handle overloaded functions which share the same OpName.
f887b20 Merge pull request #468 from KhronosGroup/fix-461
4543dac Run format_all.sh.
047ad7d Support special float constants (NaN/Inf).
3f64f56 Merge pull request #465 from KhronosGroup/fix-445
0673f27 Fix incorrect loop range.
114c2c5 Add clip/cull-distance support to HLSL.
fb3f92a Overhaul clip/cull distance support in GLSL.
11bbccb Merge pull request #464 from billhollings/master
50ef6cd CompilerMSL remove incorrect packing of non-interface type-aliased structs.
3925fe8 Merge pull request #460 from KhronosGroup/fix-424
47b3742 Run format_all.sh.
1a2e4de Add test for texelFetch without sampler.
4db7061 Begin implementing texelFetch(texture2D) workaround on GLSL.
d871a89 Remove "EXPERIMENTAL" tag from MSL/HLSL.
218b0a5 Merge pull request #455 from KhronosGroup/fix-452
8a3bef2 Add OpFRem tests.
54a065b Run format_all.sh.
3fa6cc8 Implement FRem.
a9a6bca Merge pull request #453 from KhronosGroup/fix-444
843e34b Add IsFrontFace support to HLSL.
3d0c61f Merge pull request #451 from KhronosGroup/fix-437
636cc30 Fix case where hoisted temporaries were used before being declared.
4d1c5ad Merge pull request #450 from jodavis42/OpCopyMemoryCrash
b4b629b Null crash fix in OpCopyMemory.
6a0f698 Set width when creating NumWorkgroups buffer.
2bda0d5 Merge pull request #449 from billhollings/master
2964e32 CompilerMSL support gl_SampleMask and convert it to scalar uint from array.
64d3083 Merge pull request #448 from billhollings/master
b453348 Merge branch 'master' of https://github.com/billhollings/SPIRV-Cross
607b0d6 CompilerMSL support smaller offsets for 3-row row-major matrices.
7be30aa Merge pull request #442 from KhronosGroup/fix-435
a3104e9 Also check that type we load is an image.
a3ae861 Fix depth image usage in MSL for separate image/samplers.
702e086 Support passing implicit frag_coord arguments down to functions.
0912427 Begin implementing subpassLoad in MSL.
18a594a Implement subpass input support in HLSL.
f4bce68 Merge pull request #433 from KhronosGroup/fix-428
c9db3e5 Overload on constant storage.
b2c9487 Attempt to deduce constant/thread storage.
1a9c960 MSL cannot declare inline arrays except in certain cases.
156dd90 Implicit return value takes thread storage.
d89b790 Fix wrong function declaration in MSL.
00ccd59 Return arrays in HLSL/MSL by writing to an output variable instead.
9fa91f7 Support returning arrays from functions in GLSL/MSL.
ed6b775 Merge pull request #417 from msiglreith/root_constants_overwrite
369f5f6 Add missing include
d096f5c hlsl: Support custom root constant layout
4b58f65 Merge pull request #438 from zeux/msvc-warning-fix
24cf308 Fix MSVC 2015 warning
8b53b70 Merge pull request #434 from KhronosGroup/fix-429
18e8833 Support gl_NumWorkgroups in HLSL.
181a5fa Fix formatting after merge.
e3f4041 Fixes MSVC 2013 compilation
ef33770 Merge pull request #431 from twinaphex/master
59a12c7 Uniquely name these static functions

git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: c9516fa91709b68ac20fa614625e85e0ced3f23f
2018-03-06 04:10:13 +01:00
Twinaphex c104a232fd Merge pull request #6361 from FIX94/master
(GX) allow audio output rate to be changed in the settings
2018-03-05 20:45:12 +01:00
FIX94 13a2246c50 (GX) allow audio output rate to be changed in the settings between 32khz and 48khz 2018-03-05 20:17:51 +01:00
Hugo Sha 810be0cea5 More fixes 2018-03-04 23:25:50 +01:00
Hugo Sha 7c1ee8b24b Added changes recommended by Tatsuya79 3 2018-03-04 22:33:33 +01:00
Twinaphex d51048b0df Merge pull request #6358 from fr500/subsystem
subsystem part 4: set savestates properly
2018-03-04 21:09:56 +01:00
Hugo Sha f3c3bc9f6e Some more changes 2018-03-04 19:59:28 +01:00
Hugo Sha 29c75105d4 Added changes recommended by Tatsuya79 2 2018-03-04 19:44:55 +01:00
Hugo Sha fc4a24e4c9 Added changes recommended by Tatsuya79 2018-03-04 19:34:57 +01:00
radius 7b0c0b63c9 subsystem part 4: set savestates properly 2018-03-04 12:34:51 -05:00
Twinaphex 32bf9cd716 Merge pull request #6356 from GregorR/netplay-no-double-check
Remove an incorrect double-check
2018-03-04 05:46:11 +01:00
Gregor Richards a39bff6e03 Remove an incorrect double-check
Netplay sync incorrectly checked whether the replay pointer was behind
the unread pointer twice, when in the second check it should only have
been checking if it was behind the current execution pointer. Because of
how resimulation works with device sharing, I THINK this could affect
sync. Even if it can't, it's wrong.
2018-03-03 23:03:35 -05:00
Twinaphex 112600e0db Merge pull request #6354 from Tatsuya79/patch-1
Move variable.
2018-03-04 02:51:24 +01:00
Hugo Sha 03e0d0fe99 More french translations 2 2018-03-04 02:26:01 +01:00
Tatsuya79 4c561a2de1 Move variable. 2018-03-04 01:56:29 +01:00
Twinaphex 340a368465 Merge pull request #6340 from Tatsuya79/master
XMB Dynamic Scaling Mod. (For Testing)
2018-03-04 01:08:59 +01:00
Tatsuya79 28a7357fca Thumbnails height limitation. Linear Image scaling. 2018-03-04 01:06:02 +01:00
twinaphex 1d1acc8940 Cleanup 2018-03-03 16:33:49 +01:00
Hugo Sha 1212b88bae More french translations 1 2018-03-03 16:21:32 +01:00
twinaphex 542cd6b6bf Uniquely name variables 2018-03-03 15:51:00 +01:00
twinaphex 63823b339a Buildfix for D3D8 2018-03-03 15:34:21 +01:00
twinaphex 858af5fbe2 Fix Griffin build 2018-03-03 15:30:35 +01:00
twinaphex b4a743fff4 Split up menu display drivers for D3D8/D3D9 into separate drivers;
split up d3d_common into separate files
2018-03-03 15:28:58 +01:00
twinaphex 0566b056a5 Take out d3d_common function call from d3d_w32_font.c 2018-03-03 05:42:14 +01:00
twinaphex 59dae251b0 Change to system dir include 2018-03-02 18:34:29 +01:00
twinaphex 64b36ef5d8 (MSVC) Buildfix for Cg renderchain 2018-03-02 18:32:14 +01:00
twinaphex 3f1ae25713 (D3D8) Buildfix 2 2018-03-02 17:44:48 +01:00
twinaphex ed67653086 (D3D8) Buildfix 2018-03-02 17:43:58 +01:00
twinaphex 371b6a604e (Xbox) Buildfix 2018-03-02 17:43:18 +01:00
twinaphex 588707f543 Cleanups 2018-03-02 17:30:21 +01:00
twinaphex 0ec5ce8cfe Get rid of d3d context drivers 2018-03-02 17:23:43 +01:00
twinaphex 95371cbda1 (Xbox 360) Buildfix 2018-03-02 17:05:30 +01:00
twinaphex dfdbc00a84 Cleanup Xbox 360 code from d3d_ctx 2018-03-02 17:03:34 +01:00
twinaphex dbf2fae5c1 (D3D9) Get rid of context driver 2018-03-02 17:00:11 +01:00
twinaphex fc9e018534 Implement d3d9_set_video_mode 2018-03-02 16:53:15 +01:00
twinaphex 7c599b715e Implement d3d9_has_windowed 2018-03-02 16:46:32 +01:00
twinaphex 9606db6f79 Start untangling more functions from context driver 2018-03-02 16:38:57 +01:00
twinaphex af5a2f61a1 (D3D9) Start getting rid of context driver for D3D9 driver 2018-03-02 15:30:39 +01:00
Twinaphex 0a1bcab732 Update CHANGES.md 2018-03-02 02:18:49 +01:00
twinaphex 9f33ba8607 (Vulkan/D3D11/D3D12) Add HAVE_GLSLANG now to both Android and MSVC solutions - shaders
should work now
2018-03-02 02:14:29 +01:00
twinaphex 3cd2018cc1 Update video_shader_parse.c 2018-03-02 01:41:05 +01:00
twinaphex df7f47d00a Create string_is_equal_case_insensitive 2018-03-01 23:16:34 +01:00
twinaphex 2f457af8bf Buildfix 2018-03-01 22:51:43 +01:00
twinaphex 25b7e54bdb Fix mistake 2018-03-01 22:44:27 +01:00
twinaphex 7a7902c4ac string_is_equal_noncase has issues in video_shader_get_type_from_ext 2018-03-01 22:42:03 +01:00
Twinaphex ae6e410de1 Remove unused variables 2018-03-01 22:28:26 +01:00
twinaphex 4c08bdc0e9 Add GFX_CTX_GX_API 2018-03-01 22:22:13 +01:00
Brad Parker 6329eca684 add patch to enable gdb/debugging on android 2018-03-01 16:01:04 -05:00
twinaphex 9d45d26f56 Update 2018-03-01 21:26:32 +01:00
twinaphex 13b6a016fc Fix d3d swap buffers call 2018-03-01 21:23:15 +01:00
twinaphex 16c1bd7a03 Create context get_api function 2018-03-01 21:16:54 +01:00
twinaphex ba0e6bcdea Get rid of warning that is inaccurate 2018-03-01 18:17:04 +01:00
twinaphex 128dff15ab Add better fallback in case current_video_context_api is none 2018-03-01 18:15:04 +01:00
twinaphex c8028f3150 Set current_video_context_api for GL and Vulkan 2018-03-01 17:51:55 +01:00
Twinaphex a22131b452 Update CHANGES.md 2018-03-01 17:35:49 +01:00
twinaphex c72a68faf8 Disable XMB shadow icons by default for PowerPC and ARM for performance
reasons
2018-03-01 17:34:08 +01:00
twinaphex 7da491d009 * menu_shader.c - cleanup
* Nothing uses HAVE_SHADERS define anymore, so get rid of it* Nothing
uses HAVE_SHADERS define anymore, so get rid of it* Nothing uses
HAVE_SHADERS define anymore, so get rid of it* Nothing uses HAVE_SHADERS
define anymore, so get rid of it* Nothing uses HAVE_SHADERS define
anymore, so get rid of it* Nothing uses HAVE_SHADERS define anymore, so
get rid of it* Nothing uses HAVE_SHADERS define anymore, so get rid of
it* Nothing uses HAVE_SHADERS define anymore, so get rid of it
2018-03-01 17:19:19 +01:00
twinaphex 8b8b08aefd - Simplify video_shader_parse_type
- Fix welcome screen
2018-03-01 15:58:06 +01:00
twinaphex 0de23512e7 Should fix APK extraction (hopefully) 2018-03-01 14:59:37 +01:00
twinaphex b3d3cbd4e1 sthread_isself - make Win32 codepath use GetCurrentThreadId instead 2018-02-28 16:18:48 +01:00
twinaphex 18d27468ae Set handles_transform for 3DS/D3D11/D3D12/Vita/WiiU menu
display drivers - this skips a bunch of costly matrix calculations
for menu display drivers that have a geometry shader or something
similar
2018-02-28 04:52:47 +01:00
Tatsuya79 4ab8fb9423 Dynamic Scaling Mod. 2018-02-27 19:01:15 +01:00
twinaphex f0f3df3043 Get rid of some menu shader functions 2018-02-27 05:07:34 +01:00
Twinaphex 502f3ddc74 Update CHANGES.md 2018-02-26 19:42:48 +01:00
twinaphex 7e8b9135c3 (Cg) If GL context is GLES2/3/Core context, Cg shaders are unavailable 2018-02-26 19:39:42 +01:00
twinaphex fbead501f3 Move SHADER_DIR_INIT to end of video driver init function 2018-02-26 19:33:27 +01:00
twinaphex 826ca302ca video_shader_get_type_from_ext - the switch now covers the APIs
that support the shader type, not the ones that don't
2018-02-26 19:04:01 +01:00
twinaphex 88ab8ceb24 Conditionally build up shader list 2018-02-26 18:56:56 +01:00
Twinaphex 4dc9c408d4 Merge pull request #6329 from markand/fix-vid-pid
Use EVIOCGID's ioctl to get vendor/product id, #6325
2018-02-26 18:39:33 +01:00
twinaphex bf22eeff21 Update CHANGES.md 2018-02-26 18:37:14 +01:00
twinaphex f2e80fd8e8 hide cg and glsl for D3D10/11/12 drivers 2018-02-26 18:36:10 +01:00
twinaphex a34c066e07 Hide glsl/cg shaders from Vulkan driver 2018-02-26 18:35:16 +01:00
twinaphex e9d0834a39 Selectively filter away slang/slangp shaders for now with GL driver 2018-02-26 18:32:22 +01:00
twinaphex 2f241d10d4 Update CHANGELOG 2018-02-26 18:17:19 +01:00
twinaphex d45189b853 Prevent crashes from occurring if we have the GL video driver
in use and we try to skip to a slang shader through next/previous
hotkeys
2018-02-26 18:15:38 +01:00
twinaphex 696fa900a1 Refactor macro functions which were unsafe 2018-02-26 18:08:17 +01:00
twinaphex b67777f664 Update d3d9_hlsl_renderchainc. 2018-02-26 17:52:38 +01:00
twinaphex 5b79d2b942 Refactor video_shader_driver_set_parameters 2018-02-26 17:51:52 +01:00
twinaphex 5665e27324 Nits 2018-02-26 15:12:19 +01:00
twinaphex b4733fd6c2 Cleanups 2018-02-26 00:13:01 +01:00
twinaphex 826a5009b0 Cleanups 2018-02-25 23:54:46 +01:00
twinaphex d8498d0de7 Cleanups 2018-02-25 23:49:00 +01:00
twinaphex 8dbe653e9f Cleanup 2018-02-25 23:24:21 +01:00
twinaphex e75992a66f Get rid of HAVE_SHADER_MANAGER 2018-02-25 23:03:39 +01:00
twinaphex 7bc9e5260e Start getting rid of HAVE_SHADER_MANAGER ifdefs 2018-02-25 22:54:17 +01:00
twinaphex 7a3d7e784a (menu_generic.c) Get rid of hashes 2018-02-25 22:27:05 +01:00
twinaphex dd91373f35 Remove unused function 2018-02-25 22:08:16 +01:00
twinaphex b4ea072ce7 (database_info.c) Cleanups 2018-02-25 21:58:52 +01:00
twinaphex 33f0009a11 Fix UNIX build 2018-02-25 20:49:44 +01:00
twinaphex 8d7911976c Refactor menu_shader.c 2018-02-25 20:42:44 +01:00
twinaphex b4a9ac37ff Get rid of more unnecessary hashing 2018-02-25 18:07:29 +01:00
twinaphex 366a1d58f8 (menu) Get rid of name_hash 2018-02-25 18:04:32 +01:00
twinaphex 78406bef69 (platform_unix.c) Remove lots of hashes 2018-02-25 17:58:36 +01:00
twinaphex d6d89e10ba Get rid of msg_hash dependency 2018-02-25 17:48:00 +01:00
twinaphex fa40be2aa5 Simplify sorting 2018-02-25 17:47:36 +01:00
twinaphex 071476174d database_info.c - get rid of hashes 2018-02-25 17:43:12 +01:00
twinaphex 74309e6e1c shader code - Get rid of more hashes 2018-02-25 17:20:22 +01:00
twinaphex f00d194ae3 Get rid of more hashes 2018-02-25 16:32:54 +01:00
Twinaphex b2c3a2c2db Merge pull request #6333 from r-type/patch-1
Update imports.h
2018-02-25 15:21:06 +01:00
not6 af8559bc19 Update imports.h
add OSGetCurrentThread and OSExitThread.
2018-02-25 13:53:57 +00:00
twinaphex b0f29a6743 (platform_unix.c) Remove more hashes 2018-02-25 13:16:17 +01:00
twinaphex fae9223641 Remove hashes from task_overlay 2018-02-25 13:03:54 +01:00
twinaphex 938f6cc26e Get rid of hashes in shader_gl_cg 2018-02-25 01:13:34 +01:00
twinaphex 016e24e5a5 (video_shader_parse) Get rid of hashes 2018-02-25 01:07:14 +01:00
twinaphex 8d9fbf4a62 Cleanups 2018-02-25 00:50:01 +01:00
twinaphex 36f9d359c2 Combine menu_list and menu_entries 2018-02-25 00:39:20 +01:00
twinaphex 2a6af87d23 Remove unused function 2018-02-25 00:28:31 +01:00
twinaphex 865fec4282 Update libretro-mpv core - only use dlopen for HAVE_OPENGLES builds 2018-02-23 14:40:31 +01:00
Ramiro Morales 7a0428fc76 Add "Arabic" to intl/msg_hash_us.h missed in 45580cb9a8. 2018-02-23 08:17:13 -03:00
David Demelier e99049a8ff Use EVIOCGID's ioctl to get vendor/product id, #6325
The current code get the USB vendor/product controller, in case of
bluetooth connection this means that you get the bluetooth dongle ids
instead of gamepads. This is not fine as we match gamepads using their
product and vendor ids.

Credits go to SDL which helped me to figure out this issue.

http://hg.libsdl.org/SDL/file/f7c6b974d5af/src/joystick/linux/SDL_sysjoystick.c#l208
2018-02-23 09:19:43 +01:00
Twinaphex cf7785d784 Merge pull request #6318 from fr500/master
nitpicking fix: makes shader next start at the first shader
2018-02-20 09:04:15 +01:00
radius 2f25ec6f8b nitpicking fix: makes shader next start at the first shader 2018-02-19 20:01:23 -05:00
orbea 72a02b7647 qb: Add --sysconfdir
This also deprecates --global-config-dir.
2018-02-11 09:54:57 -08:00
3943 changed files with 517892 additions and 179420 deletions

No files matched your search

+18
View File
@@ -68,6 +68,12 @@ menu/driverspzarch.c
.pc
/media/shaders_glsl/
/obj-w32/
.cproject
.settings
libretro-super
run.sh
convert_rumble.awk
*~
# Wii U
*.depend
@@ -114,6 +120,9 @@ wiiu/wut/elf2rpl/elf2rpl
pkg/apple/iOS/build/
pkg/apple/iOS/modules/
pkg/apple/build/
ui/drivers/qt/moc_*
ui/drivers/moc_*
obj-unix/
.vagrant/
@@ -145,3 +154,12 @@ retroarch.js.mem
# only ignore .js files in the repo root
/*.js
# Switch
*.d
exefs/*
retroarch_switch.pfs0
retroarch_switch.lst
retroarch_switch.nacp
retroarch_switch.nro
retroarch_switch.nso
+16
View File
@@ -5,7 +5,23 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<triggers>clean,full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures>
</projectDescription>
+18 -2
View File
@@ -10,7 +10,7 @@ matrix:
- g++-mingw-w64-i686
- mingw-w64-i686-dev
script:
- CROSS_COMPILE=i686-w64-mingw32- ./configure --disable-d3d9 && make HAVE_ZLIB=1 HAVE_BUILTINZLIB=1 HAVE_RPNG=1
- CROSS_COMPILE=i686-w64-mingw32- CFLAGS="-D_WIN32_WINNT=0x0501" ./configure --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12 && make HAVE_ZLIB=1 HAVE_BUILTINZLIB=1 HAVE_RPNG=1
- compiler: mingw-x64
addons:
apt:
@@ -18,7 +18,7 @@ matrix:
- g++-mingw-w64-x86-64
- mingw-w64-x86-64-dev
script:
- CROSS_COMPILE=x86_64-w64-mingw32- ./configure --disable-d3d9 && make HAVE_ZLIB=1 HAVE_BUILTINZLIB=1 HAVE_RPNG=1
- CROSS_COMPILE=x86_64-w64-mingw32- CFLAGS="-D_WIN32_WINNT=0x0501" ./configure --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12 && make HAVE_ZLIB=1 HAVE_BUILTINZLIB=1 HAVE_RPNG=1
- compiler: gcc
- compiler: clang
addons:
@@ -34,6 +34,20 @@ matrix:
osx_image: xcode7.3
script:
- xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj
- os: osx
osx_image: xcode9.3
script:
- cd ~/
- brew install --force-bottle qt5
- git clone --depth=50 https://github.com/libretro/libretro-super
- cd libretro-super/travis
- ./build-retroarch-metal.sh
deploy:
skip_cleanup: true
provider: script
script: cd ../retroarch; bash travis_metal_deploy.sh
on:
branch: master
script:
- ./configure
@@ -64,3 +78,5 @@ addons:
build_command_prepend: "./configure; make clean"
build_command: "make"
branch_pattern: coverity_scan
notifications:
email: false
+127 -124
View File
@@ -1,125 +1,128 @@
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
]
},
{
"name": "Linux",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw32",
"includePath": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw64",
"includePath": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 3
{
"configurations": [
{
"name": "Mac",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}",
"${workspaceRoot}/libretro-common/include"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"macFrameworkPath": [
"/System/Library/Frameworks",
"/Library/Frameworks"
]
},
{
"name": "Linux",
"includePath": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"defines": [],
"intelliSenseMode": "clang-x64",
"browse": {
"path": [
"/usr/include",
"/usr/local/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "Win32",
"includePath": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/um",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/ucrt",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/shared",
"C:/Program Files (x86)/Windows Kits/10/Include/10.0.15063.0/winrt",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
},
{
"name": "msys2-mingw32",
"includePath": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw32/include",
"C:/msys64/mingw32/i686-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
},
{
"name": "msys2-mingw64",
"includePath": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"C:/msys64/mingw64/include",
"C:/msys64/mingw64/x86_64-w64-mingw32/include",
"${workspaceRoot}/libretro-common/include",
"${workspaceRoot}/include",
"${workspaceRoot}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 4
}
+20 -23
View File
@@ -5,44 +5,41 @@
"version": "0.2.0",
"configurations": [
{
"name": "msys2-mingw64 debug",
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/retroarch.exe",
"args": [],
"args": ["-v"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
{
"name": "msys2-mingw32 debug",
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "launch",
"request": "attach",
"program": "${workspaceFolder}/retroarch.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"processId": "${command:pickProcess}",
"MIMode": "gdb",
"miDebuggerPath": "c:\\msys64\\mingw32\\bin\\gdb.exe",
"miDebuggerPath": "c:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
},
]
}
+9 -1
View File
@@ -12,6 +12,14 @@
"files.associations": {
"frontend_driver.h": "c",
"*.in": "c",
"*.rh": "c"
"*.rh": "c",
"array": "c",
"file_stream.h": "c",
"driver.h": "c",
"iosfwd": "c",
"xlocbuf": "c",
"xmemory0": "c",
"ios": "c"
},
"C_Cpp.dimInactiveRegions": false,
}
+273
View File
@@ -0,0 +1,273 @@
static const char *retroarch_contributors_list = R"(
RetroArch and the libretro team would like to
acknowledge the following contributors:
1ch (L0sted)
Aaahh Ahh (Aaahh)
Aaron Oneal (aarononeal)
Adam Mechtley (amechtley)
Adolfo Ketzer (reztek)
AdrianoML
ajefr
Alberto Simon (asimonf)
Alcaro
Alessandro Mangone (Vektor) (zevektor)
Alex Eckhart (alex34567)
Alex Folland (AlexFolland)
Alexander Spady (alkaseltzerspadt)
Alexandre Garcia (Alexandre-Garcia)
Alfredo Monclus (alfrix)
aliaspider
alphanu1
altiereslima
Alwin Garside (Yogarine)
Amiga1200Gamer (amigagamer)
Andre Leiradella (leiradel)
Andrés (fr500)
Anthony J. Bentley (bentley)
AridRayne
Arto Vainiolehto (arakerlu)
asako (asakous)
Ash (QuarkTheAwesome)
Ashura (CoalaJoe)
Autechre64
Avton1
barbudreadmon
bearoso
blackgur
Boris Timofeev (btimofeev)
bparker06
Brandon Johnson (Denu8thell)
Brian Koropoff (bkoropoff)
Brian S. Stephan (bsstephan)
Brunnis
bubuleur
Casey Borders (CaseyB)
ceb33
celerizer
Chris Merrett (chrisfu)
chu (9chu)
CidVonHighwind
clienthax
Conn O'Griofa (psyke83)
cpsw
Cray Elliott (MP2E)
Cristian Sandu (crazyquark)
ctult
cubtekki
cucholix
cudencuden
cxd4
dalter
Dan Weiss (Dwedit)
danieljg
Daniil Zhilin (GeneralFailer)
dankcushions
Danny Glover (DannyGlover)
Dave (freakdave)
Dave Leaver (danzel)
David Demelier (markand)
David Erickson (daviderickson)
David Shah (daveshah1)
David Walters (hiddenasbestos)
DEX357
diablodiab
dibas
Diego A. (SuperrSonic)
Diego Viola (diegoviola)
Diogo Barros (BlueKore)
DogParty
dor3k
Dudu Akiva (duduke)
duganchen
duskgao
ekipan
ensra
erbridge
esoptron
Ethan Lee (flibitijibibo)
Ezio-PS
Fabio (Oibaf66)
Fabio Ritrovato (Sephiroth87)
Fayne Aldan (FayneAldan)
FIX94
Flame Sage (chris062689)
flyinghead
Francisco José García García (frangarcj)
GameDragon2k
Garrett Brown (garbear)
gblues
Geoffrey Plitt (GeoffreyPlitt)
Glenn Hevey (hevey)
Googer
gouchi
Gregor Richards (GregorR)
Gui Andrade (archshift)
Gustavo Maciel Dias Vieira (gmdvieira)
gvbr
H. İbrahim Güngör (igungor)
hadess
Hans-Kristian Arntzen (Themaister)
Henri Gomez (hgomez)
Henri Gomez (hgomez-sonarsource)
Higor Eurípedes (heuripedes)
hizzlekizzle
Hugo B. (777sha)
hunterk
Hyllian
i30817
iAmGhost
Jack (jakcron)
James Le Cuirot (chewi)
James Sexton (Bezier89)
Jan Holthuis (Holzhaus)
Jay McCarthy (jeapostrophe)
Jean-André Santoni (kivutar)
Jean-Paul Mari (djipi)
Jean-Sébastien Guay (Skylark13)
Jesse Bryan (winneon)
Joel (joel16)
Joerg Sonnenberger (jsonn)
Johannes Schickel (lordhoto)
John Regan (jprjr)
Jon Maddox (maddox)
Jonathan Relf (jonathanrelf)
Joohan Lee (losernator)
Jools Wills (joolswills)
Joseph Carter (iKarith)
Joseph Conan Montgomery (Grotke)
Josh Palmer (ShiftyAxel)
JuanVCS
Justin Jacobs (dorkster)
Justin Weiss (justinweiss)
Ken Rossato (rossato)
kurumushi
kwyxz
l3iggs
lasers
Lawrence Kesteloot (lkesteloot)
liffy (lifning)
Lionel Flandrin (simias)
littleguy77
Logan (loganmc10)
lordashram
Lothar Serra Mari (lotharsm)
Lubosz Sarnecki (lubosz)
lucianposton
lxerandrew
Mahyar Koshkouei (deltabeard)
Marcelo Munhoz Pélos (mpelos)
markwkidd
Maschell
Mat M. (lioncash)
Matt Sephton (gingerbeardman)
Maxime Gauduin (alucryd)
mcrisostomo
meancoot
meepingsnesroms
meleu
Michael K. (kuxii2016)
Michał Durak (micechal)
Mico Chopitea (micochops)
miguelpinheiro
Mike Swanson (chungy)
miqlas (extrowerk)
misson20000
Monroe88
mprobinson
MrHuu
muzuiget
mwtremblay
Nathan S. (natinusala)
nattycleopatra
netux79
nfnty
Nicolas Adenis-Lamarre (nadenislamarre)
Nicolas Guillaumin (nguillaumin)
Nicolas Lopez Fernandez (pyroesp)
Nikita Vakhrushev (JesterIOS)
Nikola Kocic (nikola-kocic)
Niouby
nosh01
not6 (r-type)
notaz
nstCactus
nurupo
Oggom
Oleg Shevchenko (olsh)
opendata26
orbea
OV2
pamapa
Paolo Bonzini (bonzini)
Paul McCarty (a-shark)
Pedro Ribeiro (pedrib)
pinumbernumber
pponso1
Ramiro Morales (ramiro)
retro-wertz
Richard Howell (rmaz)
Rob Loach (RobLoach)
Romain Gay (vikbez)
Romain Graillot (notnotme)
Romain TISSERAND (rtissera)
Roman Kalashnikov (lunixoid)
Royerson
rrooij
rsn8887
Ryunam
rz5
Saggi Mizrahi (ficoos)
SAKUJ0
Sam Pagenkopf (44100hertz)
Sam Stenvall (Jalle19)
Scheiker
Sebastien Ronsse (sronsse)
Sergi Granell (xerpi)
Sergio Padrino (sergiou87)
sergio-br2 (sergiobenrocha2)
Seth Kingsley (sethk)
Shane Mouton (ismouton)
Shizeeg Unadequatov (shizeeg)
Skarsnik
slotek
sparklewind
spec-chum
Stefan (gizmo98)
stefan-gr
Steven M. Vascellaro (stevoisiak)
Stuart Carnie (stuartcarnie)
Sunguk Lee (d3m3vilurr)
Supernature2k
Sven (RetroSven)
Swizzy
Tatsuya79
Terry Lewis (terry-au)
The Last Cabra (vanfanel)
thedax
theheroGAC
TheOfficialFloW
thiolliere
Toad King (ToadKing)
Tobias Jakobi (tobiasjakobi)
Tomáš Kelemen (ToKe79)
Torsten Paul (t-paul)
TotalCaesar659
TroggleMonkey
Twinaphex
URBANsUNITED
vgmoose
Vicky C Lau (vickychenglau)
Vladimir Panteleev (CyberShadow)
Víctor "IlDucci" (IlDucci)
Wang Vincent (susemm)
webgeek1234
Wiktor Strzębała (wiktorek140)
xhp-creations
Yarsan Hoessain (hyarsan)
Yongwoon Cho (ssangkong)
yoshisuga
zeromus
zlice
Zoran Vuckovic (casdevel)
)";
+159 -5
View File
@@ -1,4 +1,159 @@
# 1.7.2 (future)
# 1.7.5 (future)
- CAMERA: Fix Video4Linux2 driver that broke years ago.
- CHEEVOS: Support headerless NES hashing.
- CRT: New porches and interlaced bug fix.
- COMMON: Support for "OEM-102" key (usually '\' on Euro keyboards).
- DISCORD: Add 'Ask To Join' Feature.
- LOCALIZATION: Update Portuguese / Brazilian translation.
- LOCALIZATION: Update Japanese translation.
- LOCALIZATION: Update Polish translation.
- LOCALIZATION: Update Spanish translation.
- MENU/QT/WIMP: Add option to filter extensions inside archives when adding to a playlist.
- MENU/QT/WIMP: Rename playlist entries with 2 single clicks.
- METAL: Add screenshot support.
- NETPLAY: Save lobby details received back from server after first announcement.
- OPENGL/GLX: Implement Adaptive VSync - GLX_EXT_swap_control_tear.
- OPENGL/WGL: Implement Adaptive VSync - WGL_EXT_swap_control_tear.
- SWITCH: Merging of RetroNX Nintendo Switch port, based on libnx SDK.
- VULKAN: Fix race condition in threaded mailbox emulation.
- VULKAN: Maintenance fixes.
# 1.7.4
- ANDROID: Add sustained performance mode, can be turned on/off in Power Management settings menu.
- ANDROID: Powerstate/battery level support.
- CHEEVOS: Fix crash when scrolling Achievement List while Unofficial Achievements enabled (#6732).
- CHEEVOS: Added hitcounts support for PauseIf/ResetIf (#6817).
- COMMON: Automatically hide "Configuration Override options" in Quick Menu.
- COMMON: Small Bugfix to not trigger savestate code when pressing Reset.
- COMMON: Added libsixel video driver.
- EMSCRIPTEN: Fix Game Focus Toggle.
- HID/OSX: Fix to set hid device registration deterministic (#6497), to address issue #6640 re-adding dynamic device registration.
- LOCALIZATION: Update Italian translation.
- LOCALIZATION: Update Japanese translation.
- LOCALIZATION: Update Polish translation.
- LOCALIZATION: Update Portuguese / Brazilian translation.
- LOCALIZATION: Update Russian translation.
- LOCALIZATION: Update Spanish translation.
- MIDI: Add MIDI support to the libretro API. Dosbox is the first proof of concept core implementing libretro MIDI.
- MIDI: Add a Windows driver for MIDI, based on winmm.
- MENU/QT/WIMP: Qt QSlider styling for Dark Theme.
- MENU/QT/WIMP: Remove button ghostly inside highlighting.
- MENU/QT/WIMP: Initial grid view.
- MENU/QT/WIMP: Drag&drop to add new playlist items, add option to add/edit/delete playlists.
- MENU/QT/WIMP: Add menu option to update RetroArch (Windows only for now).
- MENU/QT/WIMP: Add menu option to manage shaders.
- MENU/QT/WIMP: Add menu option to manage core options.
- MENU/XMB: Add new icons for the settings
- MENU/XMB: Add an option to show the desktop ui
- METAL: Initial work-in-progress video driver for Metal. macOS-only right now, and currently requires macOS 10.13.
- METAL: Supports XMB/MaterialUI, has a menu display driver. Has a font rendering driver.
- METAL/SLANG: Slang shaders should be compatible with Metal video driver.
- NETWORK: Enable SSL/TLS support by default for desktop platforms.
- QNX: Fix Game Focus Toggle.
- PS3: Add audio mixer support for FLAC and MP3.
- PSP: Use proper button labels, fix inverted R-Stick Y axis.
- REMAPS: Fix the way offsets are calculated for keyboard remapping.
- RUNAHEAD: Fix full-screen mode change breaking Secondary Core's environment variables.
- VITA: Use proper button labels, fix inverted R-Stick Y axis.
- VITA: Add imc0: mount.
- VITA: Use sceCtrlIsMultiControllerSupported to detect.
- VULKAN: Fix two validation errors.
- VULKAN: Try to avoid creating swapchains redundantly. Should fix black screen and having to alt tab out of window again to get display working on Nvidia GPUs (Windows).
- VULKAN/OSX: Initial MoltenVK support. Not enabled yet, several MoltenVK bugs should be fixed first before we can have it fully working.
- WINDOWS/DINPUT: Add rumble support.
- WINDOWS/DINPUT: Fix Game Focus Toggle.
- WINDOWS/RAWINPUT: Fix Game Focus Toggle.
- X11: Fix Game Focus Toggle.
- WII: Change deflicker setting to work in 480p or higher, and always enables vfilter so that the user can easily change brightness.
- WIIU: Fix out-of-bounds rendering bug
- WIIU: Implement UDP broadcast network logging on Wii U.
- WIIU: Audio should no longer clip.
# 1.7.3
- AUDIO: Audio mixer supports FLAC/MP3 file types now!
- COMMON: Fixed bug 'crashing in cores that don't range check retro_set_controller_type'. Some people were having crashes when device is set to RETRO_DEVICE_NONE and the cores don't check the number of ports, in VBAM's case it was overflowing and crashing. QuickNES was crashing too.
- COMMON: Fixed buffer overflow in url encoding (affecting MSVC2010/2013).
- COMMON: (QuickMenu) Added Configuration Override submenu.
- HID: Merge new HID subsystem.
- HID: Fix WaveBird support for the Wii U GCA.
- HID/OSX: Fix regression with IODHIDManager - gamepads which are connected later would not be autoconfigured.
- LOCALIZATION: Update Italian translation.
- LOCALIZATION: Update Japanese translation.
- LOCALIZATION: Update Portuguese translation.
- MENU: New WIMP Qt GUI!
- MENU: Audio mixer now works in the menu without any cores loaded. You have to enable the setting 'Enable menu audio' for this to work.
- REMAPPING/OVERLAYS: Fix regression - overlays could no longer be remapped.
- SCANNER: Add Wii Backup File WBFS support.
- X11: CRT SwitchRes support for X11/Linux.
# 1.7.2
- ANDROID/OPENSL: Prevent crashes when setting audio latency too low (buffer count can never be lower than 2 now).
- CRT: Added CRT SwitchRes.
- COMMON: Hide the 'Core delete' option if the 'Core updater' is also hidden.
- COMMON: Add way to reset core association for playlist entry.
- COMMON: Fix invalid long command line options causing infinite loop on Windows
- COMMON: Add OSD statistics for video/audio/core.
- COMMON: Added runahead system; allows you to drive down latency even further.
- COMMON: Fix buggy behavior that could happen with ZIP file reading on some platforms as a result of not initializing struct.
- CHEEVOS: Support Atari 2600, Virtual Boy, and Arcade (only Neo Geo, CPS-1, CPS-2 and CPS-3 and only with fbalpha core).
- CHEEVOS: Add option to automatically take a screenshot when an achievement is triggered.
- CHEEVOS: Fixed incompatibilities with Neo Geo Pocket achievement sets.
- CHEEVOS: Store only login token, not password.
- D3D10: Added D3D10 driver to release build. Has working shaders (Slang), overlay, and menu display driver support. Should be on par capabilities wise
with D3D11 driver except for there being no hardware rendering right now.
- D3D11: Experimental hardware renderer. Allows for libretro cores to use D3D11 for hardware rendering. First core to use this is PPSSPP.
- D3D11: Increase backwards compatibility, shaders compile with Shader Model 4.0 now, added support for more feature levels.
- D3D10/D3D11/D3D12: Fix crashes with completely black or white thumbnail textures in XMB.
- GUI: Support disabling window decorations on Windows and Linux.
- LIBRETRO: Addition - Functions to enable and disable audio and video, and an environment function to query status of audio and video enables.
- LOCALIZATION: Update Italian translation.
- LOCALIZATION: Update Polish translation.
- MENU: Add Rewind/Latency/Overlay settings to Quick Menu, add options to show/hide them (User Interface -> Views -> Quick Menu)
- MENU/RGUI: Only show Menu Linear Filter for RGUI and only show it for
video drivers that implement it (D3D8/9/10/11/12/GL)
- MENU/RGUI: Add User Interface -> Appearance options.
- MENU/RGUI: D3D8/D3D9: Hookup Menu Linear Filter
- MENU/XMB: Disable XMB shadow icons by default for PowerPC and ARM for performance reasons.
- MENU/XMB: Left/right thumbnails are now automatically scaled according to layout.
- MENU/XMB: Add Left Thumbnails (additional to the right).
- MENU/XMB: Fixed left/right tab regression.
- MENU/XMB: Fix scaling of tall images that were cut on bottom previously.
- MENU/XMB: Menu scale factor setting now changes texts length, image scaling and margins.
- MENU/XMB: Mouse cursor scales correctly now.
- MENU/XMB: Add toggle to show/hide Playlist tabs.
- MENU/XMB: Add menu layout - can switch between Desktop, Handheld and Auto.
- MENU/XMB: Don't load menu pipeline shaders unless XMB is selected (D3D10/D3D11/D3D12/GL/Vulkan)
- MENU/VIDEO: Only show black frame insertion for the video drivers/context drivers
that support it (so far this includes - D3D8/D3D9, OpenGL, Vulkan)
- MENU/VIDEO: Only show max swapchain images if supported by video driver and/or context driver (so far this includes - DRM EGL context driver, VideoCore EGL context driver, Vulkan)
- MENU/MaterialUI: Automatic DPI Scaling should be much improved now, now scales as expected at 1440p and 4K resolutions.
- MENU/MaterialUI: Fix wrong calculation of an entry height causing long playlists to end up outside of screen range. This also could cause crashes on low DPI screens.
- IOS: Fixed crash when opening downloaded roms from Safari or using the "Open in.." functionality. Added the compiler flag to support keyboard remapping to controls.
- IOS: Fixed buffer overlap that caused a crash while trying to download GLSL shaders from the buildbot.
- PS3: fix URLS
- REMAPS: Mapping keyboard keys from more than one gamepad (works with dosbox)
- REMAPS: Mapping more than one button to the same action
- REMAPS: Unmapping buttons
- REMAPS: Unmapping analogs
- REMAPS: Mapping a button to trigger an analog response (tested with mupen, can run on SM64 with the d-pad now, triggers a full analog tilt)
- REMAPS: Mapping an analog to another analog (having more than one analog mapped to the same output causes issues)
- REMAPS: Mapping an analog to produce a button response
- SCANNER: Should be able to scan dual-layer Wii disc images now, filestream code now supports files larger than 4GB.
- SHADERS/SLANG: Slang shaders should work again on Android version and MSVC versions (basically all the Griffin-based versions).
- SHADERS: If GL context is GLES2/3/Core context, Cg shaders are unavailable. Applies to shader list too.
- SHADERS: Hide cg/glsl shaders from being able to be selected if D3D8/9/10/11/Vulkan video drivers are selected.
- SHADERS: Hide slang shaders from being able to be selected if D3D8/9/OpenGL video drivers are selected.
- SHADERS: Prevent crashes from occurring if we have the GL video driver in use and we try to skip to a slang shader through next/previous hotkeys
- SHADERS: Fix shader parameter increase / decrease functions
- SUBSYSTEM: handle savestates properly (cart1 + cart2.state0)
- VULKAN/X11: Fix X11 Vulkan bug from Wayland driver.
- VULKAN: Fix multi-line text spacing in menus with Vulkan driver.
- WINDOWS XP: Add Cheevos support.
- WINDOWS/MSVC 2003/2005/2010/2013/2015/2017: Add Cheevos support.
- VITA: Bugfix for 'PS Vita takes many time to start to accept input' issue.
- X11: Allow compositor disabling on X11 fullscreen through _NET_WM_BYPASS_COMPOSITOR
- X11: Prioritize _NET_WM_STATE_FULLSCREEN_ in true fullscreen mode
- WIIU: Fix OOB read/write in keyboard driver.
# 1.7.1
- 3DS: Now correctly reports amount of CPU cores.
@@ -38,9 +193,8 @@
- LOCALIZATION: Update Spanish translation.
- NETPLAY: Add menu option to select different MITM (relay) server locations.
- OSX: Modify HID buttons detection algorithm.
- QB: Added --datarootdir.
- QB: Added --bindir and --mandir and deprecated --with-bin_dir and --with-man_dir.
- QB: Added --docdir.
- QB: Added --datarootdir, --sysconfdir, --bindir, --docdir and --mandir.
- QB: Deprecated --global-config-dir, --with-bin_dir and --with-man_dir.
- SHADERS: Allow saving of shader presets based on the parent directory (Saving one for */foo/bar/mario.sfc* would result in *shaders/presets/corename/bar.ext*). We decided it's safer to still isolate the presets to a single core because different cores may treat video output differently.
- SHADERS: Don't save the path to the current preset to the main config. This was causing weird behavior, instead it will try to load *currentconfig.ext* and it will save a preset with that name when select *apply shader preset*. The resulting shader will restore properly after restarting and even after core/parent/game specific presets are loaded
- SOLARIS: Initial port.
@@ -279,7 +433,7 @@ Skipped this one.
- MISC: Various frontend optimizations.
- NET: Fix bug #4703 (https://github.com/libretro/RetroArch/issues/4703)
- OSX/MACOS: Fixes serious memory leak
- THUMBNAILS: Thumbnails show up now in Load Content -> Collection, Information -> Database
- THUMBNAILS: Thumbnails show up now in Load Content -> Collection, Information -> Database
- VIDEO: Fix threaded video regression; tickering of menu entries would no longer work.
- VITA: Fix 30fps menu (poke into input now instead of reading the entire input buffer which apparently is slow)
- VITA: Fix frame throttle
+38 -13
View File
@@ -46,7 +46,7 @@ endif
include Makefile.common
ifeq ($(shell $(CC) -v 2>&1 | grep -c "clang"),1)
DEFINES += -Wno-invalid-source-encoding
DEFINES += -Wno-invalid-source-encoding -Wno-incompatible-ms-struct
endif
ifeq ($(shell $(CC) -v 2>&1 | grep -c "tcc"),1)
@@ -92,21 +92,22 @@ APPEND_CFLAGS := $(CFLAGS)
CXXFLAGS += $(APPEND_CFLAGS) -std=c++11 -D__STDC_CONSTANT_MACROS
OBJCFLAGS := $(CFLAGS) -D__STDC_CONSTANT_MACROS
ifeq ($(CXX_BUILD), 1)
LINK = $(CXX)
CFLAGS := $(CXXFLAGS) -xc++
CFLAGS += -DCXX_BUILD
CXXFLAGS += -DCXX_BUILD
else
ifeq ($(NEED_CXX_LINKER),1)
ifeq ($(HAVE_CXX), 1)
ifeq ($(CXX_BUILD), 1)
LINK = $(CXX)
CFLAGS := $(CXXFLAGS) -xc++
CFLAGS += -DCXX_BUILD
CXXFLAGS += -DCXX_BUILD
else ifeq ($(NEED_CXX_LINKER),1)
LINK = $(CXX)
else ifeq ($(findstring Win32,$(OS)),)
LINK = $(CC)
else
# directx-related code is c++
LINK = $(CXX)
LINK = $(CC)
endif
else
LINK = $(CC)
endif
ifneq ($(CXX_BUILD), 1)
ifneq ($(GNU90_BUILD), 1)
ifneq ($(findstring icc,$(CC)),)
CFLAGS += -std=c99 -D_GNU_SOURCE
@@ -133,7 +134,7 @@ RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
ifneq ($(X86),)
CFLAGS += -m32
CXXLAGS += -m32
CXXFLAGS += -m32
LDFLAGS += -m32
endif
@@ -150,8 +151,29 @@ ifneq ($(findstring $(GPERFTOOLS),tcmalloc),)
LIBS += -ltcmalloc
endif
# Qt MOC generation, required for QObject-derived classes
ifneq ($(MOC_HEADERS),)
# prefix moc_ to base filename of paths and change extension from h to cpp, so a/b/foo.h becomes a/b/moc_foo.cpp
MOC_SRC := $(join $(addsuffix moc_,$(addprefix $(OBJDIR)/,$(dir $(MOC_HEADERS)))), $(notdir $(MOC_HEADERS:.h=.cpp)))
MOC_OBJ := $(patsubst %.cpp,%.o,$(MOC_SRC))
RARCH_OBJ += $(MOC_OBJ)
endif
all: $(TARGET) config.mk
$(MOC_SRC):
@$(if $(Q), $(shell echo echo MOC $<),)
$(eval MOC_TMP := $(patsubst %.h,%_moc.cpp,$@))
$(Q)$(MOC) -o $(MOC_TMP) $<
$(foreach x,$(join $(addsuffix :,$(MOC_SRC)),$(MOC_HEADERS)),$(eval $x))
$(MOC_OBJ):
@$(if $(Q), $(shell echo echo CXX $<),)
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
$(foreach x,$(join $(addsuffix :,$(MOC_OBJ)),$(MOC_SRC)),$(eval $x))
ifeq ($(MAKECMDGOALS),clean)
config.mk:
else
@@ -250,3 +272,6 @@ clean:
rm -f *.d
.PHONY: all install uninstall clean
print-%:
@echo '$*=$($*)'
+24
View File
@@ -0,0 +1,24 @@
include Makefile.common
# Qt MOC generation, required for QObject-derived classes
ifneq ($(MOC_HEADERS),)
# prefix moc_ to base filename of paths and change extension from h to cpp, so a/b/foo.h becomes a/b/moc_foo.cpp
MOC_SRC := $(join $(addsuffix moc_,$(dir $(MOC_HEADERS))), $(notdir $(MOC_HEADERS:.h=.cpp)))
endif
MOC ?= $(error missing moc path)
.PHONY: generate
$(MOC_SRC):
@$(if $(Q), $(shell echo echo MOC $<),)
$(eval MOC_TMP := $(patsubst %.h,%_moc.cpp,$@))
$(MOC) -o $(MOC_TMP) $<
$(foreach x,$(join $(addsuffix :,$(MOC_SRC)),$(MOC_HEADERS)),$(eval $x))
generate: $(MOC_SRC)
@echo $(MOC_SRC)
print-%:
@echo '$*=$($*)'
+279 -231
View File
@@ -7,6 +7,10 @@ ifeq ($(HAVE_STACK_USAGE), 1)
CFLAGS += -fstack-usage
endif
ifeq ($(HAVE_HAKCHI), 1)
CFLAGS += -DHAVE_HAKCHI
endif
ifeq ($(HAVE_GL_CONTEXT),)
HAVE_GL_CONTEXT=0
@@ -147,6 +151,8 @@ ifneq ($(GIT_VERSION),)
endif
# General object files
DEFINES += -DHAVE_DR_MP3
CFLAGS += -DHAVE_DR_MP3
OBJ += frontend/frontend.o \
frontend/frontend_driver.o \
@@ -198,12 +204,15 @@ OBJ += frontend/frontend.o \
$(LIBRETRO_COMM_DIR)/hash/rhash.o \
audio/audio_driver.o \
$(LIBRETRO_COMM_DIR)/audio/audio_mixer.o \
input/common/input_common.o \
input/input_driver.o \
input/input_mapper.o \
led/led_driver.o \
led/drivers/led_null.o \
gfx/video_coord_array.o \
gfx/video_display_server.o \
gfx/video_driver.o \
gfx/video_crt_switch.o \
camera/camera_driver.o \
wifi/wifi_driver.o \
location/location_driver.o \
@@ -258,7 +267,20 @@ OBJ += frontend/frontend.o \
record/drivers/record_null.o \
$(LIBRETRO_COMM_DIR)/features/features_cpu.o \
performance_counters.o \
verbosity.o
verbosity.o \
midi/midi_driver.o \
midi/drivers/null_midi.o
ifeq ($(HAVE_RUNAHEAD), 1)
DEFINES += -DHAVE_RUNAHEAD
OBJ += runahead/copy_load_info.o \
runahead/dirty_input.o \
runahead/mem_util.o \
runahead/mylist.o \
runahead/run_ahead.o \
runahead/secondary_core.o
endif
ifeq ($(HAVE_CC_RESAMPLER), 1)
@@ -308,12 +330,11 @@ DEFINES += -DHAVE_IMAGEVIEWER
OBJ += cores/libretro-imageviewer/image_core.o
endif
# Qt
# Qt WIMP GUI
ifeq ($(HAVE_QT_WRAPPER), 1)
OBJ += ui/drivers/ui_qt.o
LIBS += -lQt5Quick -lQt5Widgets -lQt5Gui -lQt5Qml -lQt5Network -lQt5Core -L./ui/drivers/qt/build/release/
LIBS += -lwrapper
ifeq ($(HAVE_OPENSSL), 1)
DEFINES += $(OPENSSL_CFLAGS)
LIBS += $(OPENSSL_LIBS)
endif
ifeq ($(HAVE_QT), 1)
@@ -321,10 +342,39 @@ OBJ += ui/drivers/ui_qt.o \
ui/drivers/qt/ui_qt_application.o \
ui/drivers/qt/ui_qt_window.o \
ui/drivers/qt/ui_qt_browser_window.o \
ui/drivers/qt/ui_qt_msg_window.o
ui/drivers/qt/ui_qt_load_core_window.o \
ui/drivers/qt/ui_qt_msg_window.o \
ui/drivers/qt/flowlayout.o \
ui/drivers/qt/shaderparamsdialog.o \
ui/drivers/qt/coreoptionsdialog.o \
ui/drivers/qt/filedropwidget.o \
ui/drivers/qt/coreinfodialog.o \
ui/drivers/qt/playlistentrydialog.o \
ui/drivers/qt/viewoptionsdialog.o \
ui/drivers/qt/playlist.o \
ui/drivers/qt/updateretroarch.o \
ui/drivers/qt/thumbnaildownload.o \
ui/drivers/qt/thumbnailpackdownload.o \
ui/drivers/qt/playlistthumbnaildownload.o
MOC_HEADERS += ui/drivers/ui_qt.h \
ui/drivers/qt/ui_qt_load_core_window.h \
ui/drivers/qt/flowlayout.h \
ui/drivers/qt/shaderparamsdialog.h \
ui/drivers/qt/coreoptionsdialog.h \
ui/drivers/qt/filedropwidget.h \
ui/drivers/qt/coreinfodialog.h \
ui/drivers/qt/playlistentrydialog.h \
ui/drivers/qt/viewoptionsdialog.h
DEFINES += $(QT5CORE_CFLAGS) $(QT5GUI_CFLAGS) $(QT5WIDGETS_CFLAGS) $(QT5CONCURRENT_CFLAGS) $(QT5NETWORK_CFLAGS) -DHAVE_MAIN
#DEFINES += $(QT5WEBENGINE_CFLAGS)
LIBS += $(QT5CORE_LIBS) $(QT5GUI_LIBS) $(QT5WIDGETS_LIBS) $(QT5CONCURRENT_LIBS) $(QT5NETWORK_LIBS)
#LIBS += $(QT5WEBENGINE_LIBS)
NEED_CXX_LINKER = 1
ifneq ($(findstring Linux,$(OS)),)
DEFINES += -I/usr/include/qt -fPIC
DEFINES += -fPIC
endif
endif
@@ -346,199 +396,94 @@ OBJ += libretro-db/bintree.o \
endif
ifneq ($(C89_BUILD), 1)
HAVE_LIBUI = 0
HAVE_GTKPLUS = 0
ifeq ($(HAVE_SSL), 1)
DEFINES += -DHAVE_SSL
DEFINES += -DMBEDTLS_SSL_DEBUG_ALL
ifeq ($(DEBUG), 1)
DEFINES += -DMBEDTLS_SSL_DEBUG_ALL
endif
# MinGW requires this for some reason, even though the include paths are relative to the source
INCLUDE_DIRS += -Ideps/mbedtls
OBJS_TLS_CRYPTO = deps/mbedtls/aes.o deps/mbedtls/aesni.o deps/mbedtls/arc4.o \
deps/mbedtls/asn1parse.o deps/mbedtls/asn1write.o deps/mbedtls/base64.o \
deps/mbedtls/bignum.o deps/mbedtls/blowfish.o deps/mbedtls/camellia.o \
deps/mbedtls/ccm.o deps/mbedtls/cipher.o deps/mbedtls/cipher_wrap.o \
deps/mbedtls/cmac.o deps/mbedtls/ctr_drbg.o deps/mbedtls/des.o \
deps/mbedtls/dhm.o deps/mbedtls/ecdh.o deps/mbedtls/ecdsa.o \
deps/mbedtls/ecjpake.o deps/mbedtls/ecp.o \
deps/mbedtls/ecp_curves.o deps/mbedtls/entropy.o deps/mbedtls/entropy_poll.o \
deps/mbedtls/error.o deps/mbedtls/gcm.o deps/mbedtls/havege.o \
deps/mbedtls/hmac_drbg.o deps/mbedtls/md.o deps/mbedtls/md2.o \
deps/mbedtls/md4.o deps/mbedtls/md5.o deps/mbedtls/md_wrap.o \
deps/mbedtls/memory_buffer_alloc.o deps/mbedtls/oid.o \
deps/mbedtls/padlock.o deps/mbedtls/pem.o deps/mbedtls/pk.o \
deps/mbedtls/pk_wrap.o deps/mbedtls/pkcs12.o deps/mbedtls/pkcs5.o \
deps/mbedtls/pkparse.o deps/mbedtls/pkwrite.o deps/mbedtls/platform.o \
deps/mbedtls/ripemd160.o deps/mbedtls/rsa.o deps/mbedtls/sha1.o \
deps/mbedtls/sha256.o deps/mbedtls/sha512.o deps/mbedtls/threading.o \
deps/mbedtls/timing.o deps/mbedtls/version.o \
deps/mbedtls/version_features.o deps/mbedtls/xtea.o
OBJS_TLS_CRYPTO = deps/mbedtls/aes.o \
deps/mbedtls/aesni.o \
deps/mbedtls/arc4.o \
deps/mbedtls/asn1parse.o \
deps/mbedtls/asn1write.o \
deps/mbedtls/base64.o \
deps/mbedtls/bignum.o \
deps/mbedtls/blowfish.o \
deps/mbedtls/camellia.o \
deps/mbedtls/ccm.o \
deps/mbedtls/cipher.o \
deps/mbedtls/cipher_wrap.o \
deps/mbedtls/cmac.o \
deps/mbedtls/ctr_drbg.o \
deps/mbedtls/des.o \
deps/mbedtls/dhm.o \
deps/mbedtls/ecdh.o \
deps/mbedtls/ecdsa.o \
deps/mbedtls/ecjpake.o \
deps/mbedtls/ecp.o \
deps/mbedtls/ecp_curves.o \
deps/mbedtls/entropy.o \
deps/mbedtls/entropy_poll.o \
deps/mbedtls/error.o \
deps/mbedtls/gcm.o \
deps/mbedtls/havege.o \
deps/mbedtls/hmac_drbg.o \
deps/mbedtls/md.o \
deps/mbedtls/md2.o \
deps/mbedtls/md4.o \
deps/mbedtls/md5.o \
deps/mbedtls/md_wrap.o \
deps/mbedtls/memory_buffer_alloc.o \
deps/mbedtls/oid.o \
deps/mbedtls/padlock.o \
deps/mbedtls/pem.o \
deps/mbedtls/pk.o \
deps/mbedtls/pk_wrap.o \
deps/mbedtls/pkcs12.o \
deps/mbedtls/pkcs5.o \
deps/mbedtls/pkparse.o \
deps/mbedtls/pkwrite.o \
deps/mbedtls/platform.o \
deps/mbedtls/ripemd160.o \
deps/mbedtls/rsa.o \
deps/mbedtls/sha1.o \
deps/mbedtls/sha256.o \
deps/mbedtls/sha512.o \
deps/mbedtls/threading.o \
deps/mbedtls/timing.o \
deps/mbedtls/version.o \
deps/mbedtls/version_features.o \
deps/mbedtls/xtea.o
OBJS_TLS_X509 = deps/mbedtls/certs.o deps/mbedtls/pkcs11.o deps/mbedtls/x509.o \
deps/mbedtls/x509_create.o deps/mbedtls/x509_crl.o deps/mbedtls/x509_crt.o \
deps/mbedtls/x509_csr.o deps/mbedtls/x509write_crt.o deps/mbedtls/x509write_csr.o
OBJS_TLS_X509 = deps/mbedtls/certs.o \
deps/mbedtls/pkcs11.o \
deps/mbedtls/x509.o \
deps/mbedtls/x509_create.o \
deps/mbedtls/x509_crl.o \
deps/mbedtls/x509_crt.o \
deps/mbedtls/x509_csr.o \
deps/mbedtls/x509write_crt.o \
deps/mbedtls/x509write_csr.o
OBJS_TLS = deps/mbedtls/debug.o deps/mbedtls/net_sockets.o \
deps/mbedtls/ssl_cache.o deps/mbedtls/ssl_ciphersuites.o \
deps/mbedtls/ssl_cli.o deps/mbedtls/ssl_cookie.o \
deps/mbedtls/ssl_srv.o deps/mbedtls/ssl_ticket.o \
OBJS_TLS = deps/mbedtls/debug.o \
deps/mbedtls/net_sockets.o \
deps/mbedtls/ssl_cache.o \
deps/mbedtls/ssl_ciphersuites.o \
deps/mbedtls/ssl_cli.o \
deps/mbedtls/ssl_cookie.o \
deps/mbedtls/ssl_srv.o \
deps/mbedtls/ssl_ticket.o \
deps/mbedtls/ssl_tls.o
OBJ += $(OBJS_TLS_CRYPTO) $(OBJS_TLS_X509) $(OBJS_TLS)
endif
ifeq ($(HAVE_LIBUI), 1)
DEFINES += -DHAVE_LIBUI
ifneq ($(findstring Win32,$(OS)),)
OBJ += deps/libui/windows/alloc.o \
deps/libui/windows/area.o \
deps/libui/windows/areadraw.o \
deps/libui/windows/areaevents.o \
deps/libui/windows/areascroll.o \
deps/libui/windows/areautil.o \
deps/libui/windows/box.o \
deps/libui/windows/button.o \
deps/libui/windows/checkbox.o \
deps/libui/windows/colorbutton.o \
deps/libui/windows/colordialog.o \
deps/libui/windows/combobox.o \
deps/libui/windows/container.o \
deps/libui/windows/control.o \
deps/libui/windows/d2dscratch.o \
deps/libui/windows/datetimepicker.o \
deps/libui/windows/debug.o \
deps/libui/windows/draw.o \
deps/libui/windows/drawmatrix.o \
deps/libui/windows/drawpath.o \
deps/libui/windows/drawtext.o \
deps/libui/windows/dwrite.o \
deps/libui/windows/editablecombo.o \
deps/libui/windows/entry.o \
deps/libui/windows/events.o \
deps/libui/windows/fontbutton.o \
deps/libui/windows/fontdialog.o \
deps/libui/windows/form.o \
deps/libui/windows/graphemes.o \
deps/libui/windows/grid.o \
deps/libui/windows/group.o \
deps/libui/windows/init.o \
deps/libui/windows/label.o \
deps/libui/windows/main.o \
deps/libui/windows/menu.o \
deps/libui/windows/multilineentry.o \
deps/libui/windows/parent.o \
deps/libui/windows/progressbar.o \
deps/libui/windows/radiobuttons.o \
deps/libui/windows/separator.o \
deps/libui/windows/sizing.o \
deps/libui/windows/slider.o \
deps/libui/windows/spinbox.o \
deps/libui/windows/stddialogs.o \
deps/libui/windows/tab.o \
deps/libui/windows/tabpage.o \
deps/libui/windows/text.o \
deps/libui/windows/utf16.o \
deps/libui/windows/utilwin.o \
deps/libui/windows/window.o \
deps/libui/windows/winpublic.o \
deps/libui/windows/winutil.o
LIBS += -luxtheme -ld2d1 -ldwrite -lusp10
else
ifneq ($(findstring Darwin,$(OS)),)
OBJ += deps/libui/darwin/alloc.o \
deps/libui/darwin/area.o \
deps/libui/darwin/areaevents.o \
deps/libui/darwin/autolayout.o \
deps/libui/darwin/box.o \
deps/libui/darwin/button.o \
deps/libui/darwin/checkbox.o \
deps/libui/darwin/colorbutton.o \
deps/libui/darwin/combobox.o \
deps/libui/darwin/control.o \
deps/libui/darwin/datetimepicker.o \
deps/libui/darwin/debug.o \
deps/libui/darwin/draw.o \
deps/libui/darwin/drawtext.o \
deps/libui/darwin/editablecombo.o \
deps/libui/darwin/entry.o \
deps/libui/darwin/fontbutton.o \
deps/libui/darwin/form.o \
deps/libui/darwin/grid.o \
deps/libui/darwin/group.o \
deps/libui/darwin/image.o \
deps/libui/darwin/label.o \
deps/libui/darwin/main.o \
deps/libui/darwin/map.o \
deps/libui/darwin/menu.o \
deps/libui/darwin/multilineentry.o \
deps/libui/darwin/progressbar.o \
deps/libui/darwin/radiobuttons.o \
deps/libui/darwin/scrollview.o \
deps/libui/darwin/separator.o \
deps/libui/darwin/slider.o \
deps/libui/darwin/spinbox.o \
deps/libui/darwin/stddialogs.o \
deps/libui/darwin/tab.o \
deps/libui/darwin/text.o \
deps/libui/darwin/util.o \
deps/libui/darwin/window.o \
deps/libui/darwin/winmoveresize.o
else
CFLAGS += -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/atk-1.0
LIBS += -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
OBJ += deps/libui/unix/alloc.o \
deps/libui/unix/area.o \
deps/libui/unix/box.o \
deps/libui/unix/button.o \
deps/libui/unix/cellrendererbutton.o \
deps/libui/unix/checkbox.o \
deps/libui/unix/child.o \
deps/libui/unix/colorbutton.o \
deps/libui/unix/combobox.o \
deps/libui/unix/control.o \
deps/libui/unix/datetimepicker.o \
deps/libui/unix/debug.o \
deps/libui/unix/draw.o \
deps/libui/unix/drawmatrix.o \
deps/libui/unix/drawpath.o \
deps/libui/unix/drawtext.o \
deps/libui/unix/editablecombo.o \
deps/libui/unix/entry.o \
deps/libui/unix/fontbutton.o \
deps/libui/unix/form.o \
deps/libui/unix/future.o \
deps/libui/unix/graphemes.o \
deps/libui/unix/grid.o \
deps/libui/unix/group.o \
deps/libui/unix/image.o \
deps/libui/unix/label.o \
deps/libui/unix/main.o \
deps/libui/unix/menu.o \
deps/libui/unix/multilineentry.o \
deps/libui/unix/progressbar.o \
deps/libui/unix/radiobuttons.o \
deps/libui/unix/separator.o \
deps/libui/unix/slider.o \
deps/libui/unix/spinbox.o \
deps/libui/unix/stddialogs.o \
deps/libui/unix/tab.o \
deps/libui/unix/text.o \
deps/libui/unix/util.o \
deps/libui/unix/window.o
endif
endif
OBJ += deps/libui/common/areaevents.o \
deps/libui/common/control.o \
deps/libui/common/debug.o \
deps/libui/common/matrix.o \
deps/libui/common/shouldquit.o \
deps/libui/common/userbugs.o
OBJ += deps/libui/libui_main.o
endif
endif
# Miscellaneous
@@ -580,6 +525,10 @@ ifeq ($(TARGET), retroarch_3ds)
OBJ += gfx/drivers_font/ctr_font.o
endif
ifeq ($(HAVE_LIBNX), 1)
OBJ += gfx/drivers_font/switch_font.o
endif
ifeq ($(HAVE_OSS), 1)
OBJ += audio/drivers/oss.o
else ifeq ($(HAVE_OSS_BSD), 1)
@@ -666,6 +615,12 @@ ifeq ($(HAVE_XAUDIO), 1)
LIBS += -lole32
endif
ifeq ($(HAVE_WINMM), 1)
OBJ += midi/drivers/winmm_midi.o
DEFINES += -DHAVE_WINMM
LIBS += -lwinmm
endif
# Audio Resamplers
ifeq ($(HAVE_NEON),1)
@@ -713,11 +668,16 @@ ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
ifeq ($(HAVE_XMB),)
HAVE_XMB = 1
endif
ifeq ($(HAVE_STRIPES),)
HAVE_STRIPES = 1
endif
else
HAVE_ZARCH ?= 0
HAVE_MATERIALUI ?= 0
#HAVE_NUKLEAR ?= 0
HAVE_XMB ?= 0
HAVE_STRIPES ?= 0
endif
ifeq ($(HAVE_RGUI), 1)
@@ -749,6 +709,11 @@ ifeq ($(HAVE_XMB), 1)
HAVE_MENU_COMMON = 1
endif
ifeq ($(HAVE_STRIPES), 1)
OBJ += menu/drivers/stripes.o
DEFINES += -DHAVE_STRIPES
endif
ifeq ($(HAVE_LAKKA), 1)
DEFINES += -DHAVE_LAKKA
endif
@@ -767,7 +732,6 @@ ifeq ($(HAVE_MENU_COMMON), 1)
menu/widgets/menu_input_dialog.o \
menu/widgets/menu_input_bind_dialog.o \
menu/widgets/menu_entry.o \
menu/widgets/menu_list.o \
menu/widgets/menu_osk.o \
menu/menu_cbs.o \
menu/cbs/menu_cbs_ok.o \
@@ -860,15 +824,25 @@ ifeq ($(TARGET), retroarch_3ds)
endif
ifeq ($(TARGET), retroarch_switch)
OBJ += gfx/drivers/switch_gfx.o \
input/drivers/switch_input.o \
input/drivers_joypad/switch_joypad.o \
audio/drivers/switch_audio.o
ifeq ($(HAVE_LIBNX), 1)
OBJ += menu/drivers_display/menu_display_switch.o \
gfx/drivers/switch_nx_gfx.o
else
OBJ += gfx/drivers/switch_gfx.o
endif
OBJ += audio/drivers/switch_audio.o \
audio/drivers/switch_thread_audio.o \
input/drivers/switch_input.o \
input/drivers_joypad/switch_joypad.o \
frontend/drivers/platform_switch.o
endif
ifeq ($(HAVE_WAYLAND), 1)
OBJ += gfx/drivers_context/wayland_ctx.o \
input/drivers/wayland_input.o
ifeq ($(HAVE_EGL), 1)
LIBS += $(EGL_LIBS)
endif
DEFINES += $(WAYLAND_CFLAGS) $(WAYLAND_CURSOR_CFLAGS)
LIBS += $(WAYLAND_LIBS) $(WAYLAND_CURSOR_LIBS)
endif
@@ -1017,15 +991,24 @@ ifeq ($(HAVE_CACA), 1)
endif
endif
ifeq ($(HAVE_SIXEL), 1)
DEFINES += -DHAVE_SIXEL
CFLAGS += -I/usr/include/sixel
OBJ += gfx/drivers/sixel_gfx.o gfx/drivers_font/sixel_font.o \
gfx/drivers_context/sixel_ctx.o
LIBS += -lsixel
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_sixel.o
endif
endif
ifeq ($(HAVE_PLAIN_DRM), 1)
OBJ += gfx/drivers/drm_gfx.o
CFLAGS += -I/usr/include/libdrm
LIBS += -ldrm
endif
OBJ += \
gfx/drivers_renderchain/null_renderchain.o
ifeq ($(HAVE_GL_CONTEXT), 1)
DEFINES += -DHAVE_OPENGL -DHAVE_GLSL
OBJ += gfx/drivers/gl.o \
@@ -1077,11 +1060,30 @@ ifneq ($(C89_BUILD), 1)
ifneq ($(HAVE_OPENGLES), 1)
OBJ += cores/libretro-ffmpeg/ffmpeg_fft.o
DEFINES += -I$(DEPS_DIR) -DHAVE_GL_FFT
NEED_CXX_LINKER=1
endif
endif
endif
ifeq ($(HAVE_METAL), 1)
DEFINES += -DHAVE_METAL
OBJ += gfx/common/metal/Context.o \
gfx/common/metal/Filter.o \
gfx/common/metal/RendererCommon.o \
gfx/common/metal/View.o \
gfx/common/metal/TexturedView.o \
gfx/common/metal/MenuDisplay.o \
gfx/common/metal_common.o \
gfx/drivers/metal.o \
menu/drivers_display/menu_display_metal.o \
gfx/drivers_font/metal_raster_font.o
endif
ifeq ($(HAVE_MPV), 1)
OBJ += cores/libretro-mpv/mpv-libretro.o
DEFINES += -I$(DEPS_DIR) -DHAVE_MPV
LIBS += -lmpv
endif
ifeq ($(HAVE_OPENGLES), 1)
LIBS += $(OPENGLES_LIBS)
DEFINES += $(OPENGLES_CFLAGS) -DHAVE_OPENGLES
@@ -1159,7 +1161,7 @@ ifeq ($(HAVE_VULKAN), 1)
CXXFLAGS += -fpermissive
endif
CXXFLAGS += -Wno-switch -Wno-sign-compare -fno-strict-aliasing -Wno-maybe-uninitialized -Wno-reorder -Wno-parentheses
CXXFLAGS += -Wno-switch -Wno-sign-compare -fno-strict-aliasing -Wno-reorder -Wno-parentheses
OBJ += gfx/drivers/vulkan.o \
gfx/common/vulkan_common.o \
@@ -1173,7 +1175,7 @@ ifeq ($(HAVE_VULKAN), 1)
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_vulkan.o
endif
LIBS += -lstdc++
NEED_CXX_LINKER = 1
DEFINES += -DHAVE_VULKAN
INCLUDE_DIRS += -Igfx/include
@@ -1248,19 +1250,23 @@ endif
endif
ifeq ($(HAVE_HLSL), 1)
OBJ += gfx/drivers_renderchain/d3d9_hlsl_renderchain.o \
gfx/drivers_shader/shader_hlsl.o
OBJ += gfx/drivers_renderchain/d3d9_hlsl_renderchain.o
endif
endif
ifeq ($(HAVE_D3D10), 1)
OBJ += gfx/drivers/d3d10.o gfx/common/d3d10_common.o
OBJ += gfx/drivers/d3d10.o \
gfx/common/d3d10_common.o \
gfx/drivers_font/d3d10_font.o \
menu/drivers_display/menu_display_d3d10.o
DEFINES += -DHAVE_D3D10
endif
ifeq ($(HAVE_D3D11), 1)
OBJ += gfx/drivers/d3d11.o gfx/common/d3d11_common.o \
gfx/drivers_font/d3d11_font.o menu/drivers_display/menu_display_d3d11.o
OBJ += gfx/drivers/d3d11.o \
gfx/common/d3d11_common.o \
gfx/drivers_font/d3d11_font.o \
menu/drivers_display/menu_display_d3d11.o
DEFINES += -DHAVE_D3D11
HAVE_SLANG = 1
HAVE_GLSLANG = 1
@@ -1268,8 +1274,10 @@ ifeq ($(HAVE_D3D11), 1)
endif
ifeq ($(HAVE_D3D12), 1)
OBJ += gfx/drivers/d3d12.o gfx/common/d3d12_common.o \
gfx/drivers_font/d3d12_font.o menu/drivers_display/menu_display_d3d12.o
OBJ += gfx/drivers/d3d12.o \
gfx/common/d3d12_common.o \
gfx/drivers_font/d3d12_font.o \
menu/drivers_display/menu_display_d3d12.o
DEFINES += -DHAVE_D3D12
HAVE_SLANG = 1
HAVE_GLSLANG = 1
@@ -1278,8 +1286,8 @@ endif
ifneq ($(findstring 1, $(HAVE_D3D10) $(HAVE_D3D11) $(HAVE_D3D12)),)
INCLUDE_DIRS += -isystemgfx/include/dxsdk
OBJ += gfx/common/d3dcompiler_common.o
OBJ += gfx/common/dxgi_common.o
OBJ += gfx/common/d3dcompiler_common.o \
gfx/common/dxgi_common.o
CFLAGS += -Wno-unknown-pragmas
endif
@@ -1301,23 +1309,27 @@ endif
ifeq ($(HAVE_D3D8), 1)
DEFINES += -DHAVE_D3D8
OBJ += gfx/drivers/d3d9.o
OBJ += gfx/drivers/d3d8.o
OBJ += gfx/common/d3d8_common.o
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_d3d8.o
endif
endif
ifeq ($(HAVE_D3D9), 1)
DEFINES += -DHAVE_D3D9
OBJ += gfx/drivers/d3d9.o
OBJ += gfx/common/d3d9_common.o
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_d3d9.o
endif
endif
ifeq ($(HAVE_D3D_COMMON), 1)
DEFINES += -DHAVE_D3D
OBJ += \
gfx/common/d3d_common.o \
gfx/drivers_context/d3d_ctx.o
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_d3d.o
endif
OBJ += gfx/common/d3d_common.o
endif
ifeq ($(HAVE_SLANG),1)
@@ -1353,9 +1365,14 @@ ifeq ($(HAVE_GLSLANG), 1)
$(wildcard $(DEPS_DIR)/glslang/glslang/OGLCompilersDLL/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent/preprocessor/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/hlsl/*.cpp) \
$(wildcard $(DEPS_DIR)/glslang/glslang/glslang/OSDependent/$(GLSLANG_PLATFORM)/*.cpp)
ifneq ($(findstring Win32,$(OS)),)
DEFINES += -DENABLE_HLSL
GLSLANG_SOURCES += $(wildcard $(DEPS_DIR)/glslang/glslang/hlsl/*.cpp)
endif
OBJ += $(GLSLANG_SOURCES:.cpp=.o)
endif
@@ -1416,6 +1433,8 @@ endif
ifeq ($(HAVE_BUILTINFLAC),1)
HAVE_FLAC = 1
DEFINES += -DHAVE_DR_FLAC -I$(DEPS_DIR)
CFLAGS += -DHAVE_DR_FLAC
CFLAGS += -DHAVE_FLAC -I$(DEPS_DIR)/libFLAC/include
DEFINES += -DHAVE_STDINT_H -DHAVE_LROUND -DFLAC__HAS_OGG=0 \
-DFLAC_PACKAGE_VERSION="\"retroarch\""
@@ -1442,7 +1461,8 @@ ifeq ($(HAVE_BUILTINFLAC),1)
endif
OBJ += $(FLACOBJ)
else ifeq ($(HAVE_FLAC),1)
LIBS += $(FLAC_LIBS)
DEFINES += -DHAVE_FLAC
LIBS += $(FLAC_LIBS)
endif
ifeq ($(HAVE_ZLIB), 1)
@@ -1453,7 +1473,7 @@ ifeq ($(HAVE_ZLIB), 1)
ifeq ($(HAVE_BUILTINZLIB), 1)
OBJ += $(DEPS_DIR)/libz/adler32.o \
$(DEPS_DIR)/libz/compress.o \
$(DEPS_DIR)/libz/crc32.o \
$(DEPS_DIR)/libz/libz-crc32.o \
$(DEPS_DIR)/libz/deflate.o \
$(DEPS_DIR)/libz/gzclose.o \
$(DEPS_DIR)/libz/gzlib.o \
@@ -1472,19 +1492,27 @@ ifeq ($(HAVE_ZLIB), 1)
endif
endif
ifeq ($(HAVE_FLAC), 1)
ifeq ($(HAVE_7ZIP), 1)
ifeq ($(HAVE_ZLIB), 1)
DEFINES += -DHAVE_CHD -DWANT_SUBCODE -DWANT_RAW_DATA_SECTOR
ifeq ($(HAVE_CHD), 1)
CFLAGS += -I$(LIBRETRO_COMM_DIR)/formats/libchdr
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/bitstream.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/cdrom.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/chd.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/flac.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/huffman.o \
DEFINES += -DHAVE_CHD -DWANT_SUBCODE -DWANT_RAW_DATA_SECTOR
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_bitstream.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_cdrom.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_chd.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_huffman.o \
$(LIBRETRO_COMM_DIR)/streams/chd_stream.o
endif
endif
ifeq ($(HAVE_FLAC), 1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_flac.o \
$(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_flac_codec.o
endif
ifeq ($(HAVE_7ZIP), 1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_lzma.o
endif
ifeq ($(HAVE_ZLIB), 1)
OBJ += $(LIBRETRO_COMM_DIR)/formats/libchdr/libchdr_zlib.o
endif
endif
ifeq ($(HAVE_RTGA), 1)
@@ -1586,8 +1614,28 @@ ifeq ($(HAVE_NETWORKING), 1)
$(LIBRETRO_COMM_DIR)/utils/md5.o
endif
ifeq ($(HAVE_KEYMAPPER), 1)
OBJ += input/input_mapper.o
ifeq ($(HAVE_DISCORD), 1)
NEED_CXX_LINKER = 1
DEFINES += -DHAVE_DISCORD
DEFINES += -Ideps/discord-rpc/include/ -Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/
OBJ += deps/discord-rpc/src/discord_rpc.o \
deps/discord-rpc/src/rpc_connection.o \
deps/discord-rpc/src/serialization.o \
discord/discord.o
ifneq ($(findstring Win32,$(OS)),)
OBJ += deps/discord-rpc/src/discord_register_win.o \
deps/discord-rpc/src/connection_win.o
LIBS += -lpsapi -ladvapi32
endif
ifneq ($(findstring Linux,$(OS)),)
OBJ += deps/discord-rpc/src/discord_register_linux.o \
deps/discord-rpc/src/connection_unix.o
endif
ifneq ($(findstring Darwin,$(OS)),)
OBJ += deps/discord-rpc/src/discord_register_osx.o \
deps/discord-rpc/src/connection_unix.o
endif
endif
ifeq ($(HAVE_NETWORKGAMEPAD), 1)
+8 -6
View File
@@ -5,7 +5,7 @@ DEBUG = 0
GRIFFIN_BUILD = 1
WHOLE_ARCHIVE_LINK = 0
BUILD_3DSX = 1
BUILD_3DS = 1
BUILD_3DS = 0
BUILD_CIA = 1
LIBCTRU_NO_DEPRECATION = 1
@@ -31,6 +31,12 @@ OBJ += ctr/ctr_system.o
OBJ += ctr/ctr_memory.o
OBJ += ctr/ctr_linear.o
OBJ += ctr/gpu_old.o
OBJ += ctr/exec-3dsx/exec_cia.o \
ctr/exec-3dsx/exec_3dsx.o \
ctr/exec-3dsx/mini-hb-menu/launch.o \
ctr/exec-3dsx/mini-hb-menu/loaders/rosalina.o \
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o \
ctr/exec-3dsx/mini-hb-menu/loaders/ninjhax1.o
ifeq ($(APP_BIG_TEXT_SECTION), 1)
APP_USE_SVCHAX = 1
@@ -162,7 +168,7 @@ endif
all: $(TARGET)
$(TARGET): $(TARGET_3DSX) $(TARGET_3DS) $(TARGET_CIA) $(TARGET).core
$(TARGET): $(TARGET_3DSX) $(TARGET_3DS) $(TARGET_CIA)
$(TARGET).3dsx: $(TARGET).elf
$(TARGET).elf: $(OBJ) libretro_ctr.a
@@ -255,9 +261,6 @@ $(TARGET).3ds: $(TARGET).elf $(TARGET).bnr $(TARGET).icn $(APP_RSF)
$(TARGET).cia: $(TARGET).elf $(TARGET).bnr $(TARGET).icn $(APP_RSF)
$(MAKEROM) -f cia -o $@ $(MAKEROM_ARGS_COMMON) -DAPP_ENCRYPTED=false
$(TARGET).core: $(TARGET).elf
echo $(APP_UNIQUE_ID) > $(TARGET).core
clean:
rm -f $(OBJ)
@@ -265,7 +268,6 @@ clean:
rm -f $(TARGET).elf
rm -f $(TARGET).3ds
rm -f $(TARGET).cia
rm -f $(TARGET).core
rm -f $(TARGET).smdh
rm -f $(TARGET).bnr
rm -f $(TARGET).icn
+11 -4
View File
@@ -2,12 +2,12 @@ TARGET := retroarch_3ds_salamander
LIBRETRO =
DEBUG = 0
BUILD_3DSX = 0
BUILD_3DSX = 1
BUILD_3DS = 0
BUILD_CIA = 1
APP_TITLE = Retroarch 3DS
APP_DESCRIPTION = Retroarch 3DS
APP_TITLE = RetroArch 3DS
APP_DESCRIPTION = RetroArch 3DS
APP_AUTHOR = Team Libretro
APP_PRODUCT_CODE = RETROARCH-3DS
APP_UNIQUE_ID = 0xBAC00
@@ -39,6 +39,13 @@ OBJ := ctr/ctr_system.o \
libretro-common/hash/rhash.o \
file_path_str.o \
verbosity.o
OBJ += ctr/exec-3dsx/exec_cia.o \
ctr/exec-3dsx/exec_3dsx.o \
ctr/exec-3dsx/mini-hb-menu/launch.o \
ctr/exec-3dsx/mini-hb-menu/loaders/rosalina.o \
ctr/exec-3dsx/mini-hb-menu/loaders/hax2.o \
ctr/exec-3dsx/mini-hb-menu/loaders/ninjhax1.o
ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitpro")
@@ -182,7 +189,7 @@ ifeq ($(APP_BIG_TEXT_SECTION), 1)
else
rm -f $(TARGET).xml
endif
-3dsxtool $< $@ $(_3DSXFLAGS)
$(DEVKITARM)/bin/3dsxtool $< $@ $(_3DSXFLAGS)
$(TARGET).elf: ctr/3dsx_custom_crt0.o
$(LD) $(LDFLAGS) $(OBJ) $(LIBDIRS) $(LIBS) -o $@
+101
View File
@@ -11,6 +11,13 @@ PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
SPACE :=
SPACE := $(SPACE) $(SPACE)
BACKSLASH :=
BACKSLASH := \$(BACKSLASH)
filter_out1 = $(filter-out $(firstword $1),$1)
filter_out2 = $(call filter_out1,$(call filter_out1,$1))
UNAME_ARCH = $(shell uname -m)
ifeq ($(UNAME_ARCH),x86_64)
@@ -171,6 +178,7 @@ else ifeq ($(libogc_platform), 1)
CFLAGS += -DGEKKO -U__INT32_TYPE__ -U __UINT32_TYPE__ -D__INT32_TYPE__=int
HAVE_RUNAHEAD := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_THREADS := 1
HAVE_RPNG := 1
@@ -654,6 +662,95 @@ else ifneq (,$(findstring windows_msvc2013,$(platform)))
export INCLUDE := $(INCLUDE);$(WindowsSdkDir)\Include\um;$(WindowsSdkDir)\Include\shared;libretro-common\include;libretro-common\include\compat\msvc;gfx\include;deps;deps\stb
export LIB := $(LIB);$(WindowsSdkDir)\$(PlatLib)
endif
else ifneq (,$(findstring windows_msvc2015,$(platform)))
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
WANT_ZLIB := 1
HAVE_7ZIP := 1
HAVE_NETWORKING := 1
HAVE_NETWORK_CMD := 1
HAVE_OVERLAY := 1
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_COMMAND := 1
HAVE_STDIN_CMD := 1
HAVE_CMD := 1
HAVE_DYLIB := 1
HAVE_DYNAMIC := 1
HAVE_GRIFFIN_CPP := 1
HAVE_DIRECTX ?= 1
EXT_TARGET := $(TARGET_NAME).exe
EXT_INTER_TARGET := $(TARGET_NAME).exe
CC = cl.exe
CXX = cl.exe
LD = link.exe
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_UPDATE_ASSETS -DWIN32
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
PlatformSuffix = $(subst windows_msvc2015_,,$(platform))
ifneq (,$(findstring x64,$(PlatformSuffix)))
ifeq ($(HOST_ARCH),x86)
# cross-compile for x64 from x86 host
PATH := $(shell IFS=$$'\n'; cygpath "$(VS140COMNTOOLS)../../VC/bin/x86_amd64"):$(PATH)
else
PATH := $(shell IFS=$$'\n'; cygpath "$(VS140COMNTOOLS)../../VC/bin/amd64"):$(PATH)
endif
LIB := $(shell IFS=$$'\n'; cygpath -w "$(VS140COMNTOOLS)../../VC/lib/amd64")
WinArch = x64
PlatLib = um\x64
VCLib = amd64
else ifneq (,$(findstring arm,$(PlatformSuffix)))
PATH := $(shell IFS=$$'\n'; cygpath "$(VS140COMNTOOLS)../../VC/bin/x86_arm"):$(PATH)
LIB := $(shell IFS=$$'\n'; cygpath -w "$(VS140COMNTOOLS)../../VC/lib/arm")
HAVE_DIRECTX = 0
WinArch = arm
PlatLib = um\arm
VCLib = arm
else
PATH := $(shell IFS=$$'\n'; cygpath "$(VS140COMNTOOLS)../../VC/bin"):$(PATH)
LIB := $(shell IFS=$$'\n'; cygpath -w "$(VS140COMNTOOLS)../../VC/lib")
WinArch = x86
PlatLib = um\x86
VCLib =
endif
PATH := $(PATH):$(shell IFS=$$'\n'; cygpath "$(VS140COMNTOOLS)../IDE")
INCLUDE := $(shell IFS=$$'\n'; cygpath -w "$(VS140COMNTOOLS)../../VC/include")
reg_query = $(call filter_out2,$(subst $2,,$(shell reg query "$2" -v "$1" 2>nul)))
fix_path = $(subst $(SPACE),\ ,$(subst \,/,$1))
WindowsSdkDir ?= $(call reg_query,InstallationFolder,HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0)
WindowsSdkDir ?= $(call reg_query,InstallationFolder,HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0)
WindowsSdkDir ?= $(call reg_query,InstallationFolder,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0)
WindowsSdkDir ?= $(call reg_query,InstallationFolder,HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0)
WindowsSdkDir := $(WindowsSdkDir)
WindowsSDKVersion ?= $(firstword $(foreach folder,$(subst $(subst \,/,$(WindowsSdkDir)Include/),,$(wildcard $(call fix_path,$(WindowsSdkDir)Include\*))),$(if $(wildcard $(call fix_path,$(WindowsSdkDir)Include/$(folder)/um/Windows.h)),$(folder),)))$(BACKSLASH)
WindowsSDKVersion := $(WindowsSDKVersion)
export INCLUDE := $(INCLUDE);$(VCINSTALLDIR)INCLUDE;$(VCINSTALLDIR)ATLMFC\INCLUDE;$(WindowsSdkDir)include\$(WindowsSDKVersion)ucrt;$(WindowsSdkDir)include\$(WindowsSDKVersion)shared;$(WindowsSdkDir)include\$(WindowsSDKVersion)um
export LIB := $(LIB);$(VCINSTALLDIR)LIB$(VCLib);$(VCINSTALLDIR)ATLMFC\LIB$(VCLib);$(WindowsSdkDir)lib\$(WindowsSDKVersion)ucrt\$(WinArch);$(WindowsSdkDir)lib\$(WindowsSDKVersion)$(PlatLib)
ifeq ($(HAVE_DIRECTX), 1)
PLATCFLAGS += -DHAVE_DINPUT -DHAVE_DSOUND -DHAVE_D3D -DHAVE_D3D9 -DHAVE_XAUDIO -DHAVE_XINPUT
DXSDK_DIR := $(DXSDK_DIR:\=)
export INCLUDE := $(INCLUDE);$(DXSDK_DIR)\Include;libretro-common\include;libretro-common\include\compat\msvc;gfx\include;deps;deps\stb
export LIB := $(LIB);$(DXSDK_DIR)\Lib\$(WinArch)
else
export INCLUDE := $(INCLUDE);libretro-common\include;libretro-common\include\compat\msvc;gfx\include;deps;deps\stb
export LIB := $(LIB)
endif
endif
ifneq (,$(findstring msvc,$(platform)))
@@ -744,6 +841,10 @@ ifeq ($(HAVE_IMAGEVIEWER), 1)
CFLAGS += -DHAVE_IMAGEVIEWER
endif
ifeq ($(HAVE_RUNAHEAD), 1)
CFLAGS += -DHAVE_RUNAHEAD
endif
ifeq ($(HAVE_7ZIP), 1)
CFLAGS += -DHAVE_7ZIP
endif
+222
View File
@@ -0,0 +1,222 @@
#---------------------------------------------------------------------------------
.SUFFIXES:
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITPRO)),)
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
endif
TOPDIR ?= $(CURDIR)
include $(DEVKITPRO)/libnx/switch_rules
TARGET := retroarch_switch
DEBUG ?= 0
WHOLE_ARCHIVE_LINK = 0
GRIFFIN_BUILD = 0
OBJ :=
# For threading we need to overwrite some vars with global defines because devkitPro's includes
# make it hard for us. This works for the pthread wrapper
DEFINES_THREAD := -Dpthread_t=Thread -Dpthread_mutex_t=Mutex -Dpthread_mutexattr_t='void*' -Dpthread_attr_t=int -Dpthread_cond_t=CondVar -Dpthread_condattr_t='int' -D_SYS__PTHREADTYPES_H_
DEFINES := -U__linux__ -U__linux -DRARCH_INTERNAL -DGLOBAL_CONFIG_DIR='"/switch"' $(DEFINES_THREAD)
HAVE_CC_RESAMPLER = 1
HAVE_MENU_COMMON = 1
HAVE_RTGA = 1
HAVE_RPNG = 1
HAVE_RJPEG = 1
HAVE_RBMP = 1
HAVE_RGUI = 1
HAVE_ZLIB = 1
HAVE_BUILTINZLIB = 1
HAVE_LIBRETRODB = 1
HAVE_ZARCH = 0
HAVE_MATERIALUI = 0
HAVE_XMB = 0
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_MENU = 1
HAVE_RUNAHEAD = 1
# RetroArch libnx useful flags
HAVE_OVERLAY = 0
HAVE_THREADS = 1
HAVE_PTHREADS = 1
HAVE_FREETYPE = 0
HAVE_SWITCH = 1
HAVE_LIBNX = 1
include Makefile.common
BLACKLIST :=
#BLACKLIST += input/input_overlay.o
#BLACKLIST += tasks/task_overlay.o
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# DATA is a list of directories containing data files
# INCLUDES is a list of directories containing header files
# EXEFS_SRC is the optional input directory containing data copied into exefs, if anything this normally should only contain "main.npdm".
# ROMFS is the directory containing data to be added to RomFS, relative to the Makefile (Optional)
#
# NO_ICON: if set to anything, do not use icon.
# NO_NACP: if set to anything, no .nacp file is generated.
# APP_TITLE is the name of the app stored in the .nacp file (Optional)
# APP_AUTHOR is the author of the app stored in the .nacp file (Optional)
# APP_VERSION is the version of the app stored in the .nacp file (Optional)
# APP_TITLEID is the titleID of the app stored in the .nacp file (Optional)
# ICON is the filename of the icon (.jpg), relative to the project folder.
# If not set, it attempts to use one of the following (in this order):
# - <Project name>.jpg
# - icon.jpg
# - <libnx folder>/default_icon.jpg
#---------------------------------------------------------------------------------
BUILD := build
SOURCES := $(CURDIR)/source
DATA := data
INCLUDES := include
EXEFS_SRC := exefs_src
#ROMFS := switch/romfs
APP_TITLE := RetroArch
APP_VERSION := 1.0.0
APP_AUTHOR := libretro Team
NO_ICON := 1
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -mcpu=cortex-a57+crc+fp+simd
CFLAGS := -g -Wall -O3 -ffast-math -ffunction-sections \
$(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include -include $(LIBNX)/include/switch.h #$(shell $(DEVKITPRO)/portlibs/switch/bin/freetype-config --cflags)
CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
ASFLAGS := -g $(ARCH)
LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs $(ARCH) -Wl,--allow-multiple-definition -Wl,-Map,$(notdir $*.map)
LIBS := -lnx -lm -lstdc++ -lbz2 -lpng -lz
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS := $(PORTLIBS) $(LIBNX)
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export OUTPUT := $(TARGET)
export TOPDIR := $(CURDIR)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
#---------------------------------------------------------------------------------
export LD := $(CC)
#---------------------------------------------------------------------------------
else
#---------------------------------------------------------------------------------
export LD := $(CXX)
#---------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------
export OFILES := $(OBJ) libretro_switch.a
export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES)))
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-I$(CURDIR)/$(BUILD)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
export BUILD_EXEFS_SRC := $(TOPDIR)/$(EXEFS_SRC)
ifeq ($(strip $(ICON)),)
icons := $(wildcard *.jpg)
ifneq (,$(findstring $(TARGET).jpg,$(icons)))
export APP_ICON := $(TOPDIR)/$(TARGET).jpg
else
ifneq (,$(findstring icon.jpg,$(icons)))
export APP_ICON := $(TOPDIR)/icon.jpg
endif
endif
else
export APP_ICON := $(TOPDIR)/$(ICON)
endif
ifeq ($(strip $(NO_ICON)),)
export NROFLAGS += --icon=$(APP_ICON)
endif
ifeq ($(strip $(NO_NACP)),)
export NROFLAGS += --nacp=$(CURDIR)/$(TARGET).nacp
endif
ifneq ($(APP_TITLEID),)
export NACPFLAGS += --titleid=$(APP_TITLEID)
endif
ifneq ($(ROMFS),)
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
endif
DEPENDS := $(OFILES:.o=.d)
.PHONY: clean all
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
all : $(OUTPUT).pfs0 $(OUTPUT).nro
$(OUTPUT).pfs0 : $(OUTPUT).nso
$(OUTPUT).nso : $(OUTPUT).elf
ifeq ($(strip $(NO_NACP)),)
$(OUTPUT).nro : $(OUTPUT).elf $(OUTPUT).nacp
else
$(OUTPUT).nro : $(OUTPUT).elf
endif
$(OUTPUT).elf : $(OBJ)
clean:
rm -f $(OBJ) $(OUTPUT).pfs0 $(OUTPUT).nro $(OUTPUT).elf
#---------------------------------------------------------------------------------
# you need a rule like this for each extension you use as binary data
#---------------------------------------------------------------------------------
%.bin.o %_bin.h : %.bin
#---------------------------------------------------------------------------------
@echo $(notdir $<)
@$(bin2o)
#---------------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------------
+1 -1
View File
@@ -25,6 +25,7 @@ HAVE_XAUDIO := 1
HAVE_XINPUT := 1
HAVE_WASAPI := 0
HAVE_THREAD_STORAGE := 1
HAVE_WINMM := 1
HAVE_RPNG := 1
HAVE_ZLIB := 1
@@ -53,7 +54,6 @@ HAVE_NETWORK_CMD := 1
HAVE_OVERLAY := 1
HAVE_LANGEXTRA := 1
HAVE_CHEEVOS := 1
HAVE_KEYMAPPER := 1
HAVE_SHADERPIPELINE := 1
HAVE_IMAGEVIEWER := 1
+62
View File
@@ -0,0 +1,62 @@
# Hakchi version added to ease confusion amongst Hakchi community due to messy past...
#
# Make sure you have readelf installed (sudo apt-get install readelf) to patch the binary
# Might not be needed for your build but it's a useful tool and for safety it should be
# run anyway to ensure the SDL2 link isn't broken...
HAKCHI_VER := Hakchi_Retroarch_Neo_v1_7_3b
HAKCHI_NAME := "Hakchi RetroArch 'Neo' v1.7.3b
MOD_CREATOR := TheOtherGuys
MOD_CATEGORY := RetroArch
HAKCHI_DIR := hakchi
TARGET := retroarch
GIT_COMMIT := $(shell echo "`git rev-parse --short HEAD``git diff-index --quiet HEAD -- || echo '-dirty'`")
all: $(TARGET)
retroarch:
readelf -v #Check if you have readelf installed... (sudo apt-get install readelf)
./configure --host=arm-linux-gnueabihf --disable-freetype --enable-opengles --enable-udev --enable-alsa --enable-neon --enable-floathard
make -f Makefile -j HAVE_HAKCHI=1
patchelf --replace-needed libSDL2-2.0.so.0 libSDL2.so retroarch #libSDL2-2.0.so.0 sym link doesn't exist on native build. Just patch the binary...
#/usr/bin/arm-linux-gnueabihf-strip retroarch
rm -f $(HAKCHI_DIR)/bin/retroarch
cp retroarch $(HAKCHI_DIR)/bin/retroarch
echo $$(echo "Built by: " $$USER @ $$(date) \\\\\\ Git Commit: $(GIT_COMMIT)) > $(HAKCHI_DIR)/etc/libretro/retroarch_version
cp $(HAKCHI_DIR)/readme.md $(HAKCHI_DIR)/readme_COPY.md
printf "%s\n" \
"---" \
"Name: $(HAKCHI_VER)" \
"Creator: $(MOD_CREATOR)" \
"Category: $(MOD_CATEGORY)" \
"Version: $(HAKCHI_VER)" \
"Built on: $(shell date)" \
"Git commit: $(GIT_COMMIT)" \
"---" > $(HAKCHI_DIR)/readme.md
cat $(HAKCHI_DIR)/readme_COPY.md >> $(HAKCHI_DIR)/readme.md
rm $(HAKCHI_DIR)/readme_COPY.md
@echo "** BUILDING HAKCHI $(HAKCHI_VER) HMOD PACKAGE **"
cd $(HAKCHI_DIR)/; tar -czvf "$(HAKCHI_VER).hmod" *
mv $(HAKCHI_DIR)/$(HAKCHI_VER).hmod .
@echo "** BUILT HAKCHI $(HAKCHI_VER) HMOD PACKAGE **"
clean:
rm -f *.o
rm -f audio/*.o
rm -f conf/*.o
rm -f gfx/*.o
rm -f gfx/drivers_font/*.o
rm -f gfx/drivers_font_renderer/*.o
rm -f gfx/drivers_context/*.o
rm -f gfx/py_state/*.o
rm -f compat/*.o
rm -f record/*.o
rm -f input/*.o
rm -f tools/*.o
rm -f $(BINDIR)/retroarch
rm -f $(BINDIR)/retroarch-joyconfig
rm -f $(PNDDIR)/readme.html
rm -f retroarch
rm -f $(HAKCHI_DIR)/bin/retroarch
rm -f $(HAKCHI_VER).hmod
rm -f $(HAKCHI_DIR)/etc/libretro/retroarch_version
+4 -5
View File
@@ -4,7 +4,7 @@ include version.all
#set to GCC for debug builds for use with debugger
CELL_BUILD_TOOLS = SNC
CELL_GPU_TYPE = RSX
CELL_PSGL_VERSION = ultra-opt
CELL_PSGL_VERSION = opt
ASSETS_DIR := media/assets
@@ -63,7 +63,7 @@ endif
PPU_SRCS = griffin/griffin.c
DEFINES += -DHAVE_MENU -DHAVE_RGUI -DHAVE_XMB -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DMSB_FIRST -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT
DEFINES += -DHAVE_MENU -DHAVE_RGUI -DHAVE_XMB -DHAVE_LIBRETRODB -DHAVE_MATERIALUI -DHAVE_SHADERPIPELINE -DRARCH_INTERNAL -DMSB_FIRST -DHAVE_OVERLAY -DHAVE_CC_RESAMPLER -DHAVE_STB_VORBIS -DHAVE_STB_FONT -DHAVE_RUNAHEAD -DHAVE_DR_MP3 -DHAVE_DR_FLAC
ifeq ($(DEX_BUILD), 1)
DEFINES += -DDEX_BUILD
@@ -96,8 +96,7 @@ ifeq ($(CELL_BUILD_TOOLS), SNC)
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
PPU_CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
else
ifneq($(system_platform), win)
else ifneq ($(system_platform), win)
PPU_CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
PPU_CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
PPU_CXXLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
@@ -120,7 +119,7 @@ DEFINES += -DHAVE_THREADS -DRARCH_CONSOLE -DHAVE_OPENGL -DHAVE_HEADSET -DHAVE_LA
ifeq ($(DEBUG), 1)
PPU_OPTIMIZE_LV := -O0 -g
else
PPU_OPTIMIZE_LV := -O3 -g
PPU_OPTIMIZE_LV := -O2 -g
endif
ifeq ($(HAVE_LOGGER), 1)
+2 -3
View File
@@ -2,7 +2,7 @@ include version.all
#which compiler to build with - GCC or SNC
#set to GCC for debug builds for use with debugger
CELL_BUILD_TOOLS = SNC
CELL_BUILD_TOOLS = GCC
CELL_GPU_TYPE = RSX
CELL_PSGL_VERSION = ultra-opt
@@ -94,8 +94,7 @@ ifeq ($(CELL_BUILD_TOOLS), SNC)
PPU_CXXLD = $(CELL_SDK)/host-win32/sn/bin/ps3ppuld.exe
PPU_CXX = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
PPU_CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
else
ifneq($(system_platform), win)
else ifneq($(system_platform), win)
PPU_CXX = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-g++.exe
PPU_CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
PPU_CXXLD = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ld.exe
+1 -1
View File
@@ -1,4 +1,4 @@
CELL_BUILD_TOOLS = SNC
CELL_BUILD_TOOLS = GCC
CELL_SDK ?= /usr/local/cell
HAVE_LOGGER = 0
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
+2 -2
View File
@@ -13,7 +13,7 @@ TARGET = retroarchpsp
ifeq ($(DEBUG), 1)
OPTIMIZE_LV := -O0 -g
else
OPTIMIZE_LV := -O2
OPTIMIZE_LV := -O3
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
@@ -22,7 +22,7 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1)
endif
INCDIR = deps deps/stb deps/libz deps/7zip deps/pthreads deps/pthreads/platform/psp deps/pthreads/platform/helper libretro-common/include
CFLAGS = $(OPTIMIZE_LV) -G0 -std=gnu99 -ffast-math
CFLAGS = $(OPTIMIZE_LV) -G0 -std=gnu99 -ffast-math -fsingle-precision-constant
ASFLAGS = $(CFLAGS)
RARCH_DEFINES = -DPSP -D_MIPS_ARCH_ALLEGREX -DHAVE_LANGEXTRA -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DWANT_ZLIB -DHAVE_GRIFFIN=1 -DRARCH_INTERNAL -DRARCH_CONSOLE -DHAVE_MENU -DHAVE_RGUI -DHAVE_FILTERS_BUILTIN -DHAVE_7ZIP -DHAVE_CC_RESAMPLER
+7 -4
View File
@@ -6,12 +6,13 @@ WHOLE_ARCHIVE_LINK = 0
OBJ :=
DEFINES := -DSWITCH=1 -U__linux__ -U__linux
DEFINES := -DSWITCH=1 -U__linux__ -U__linux -DRARCH_INTERNAL -DHAVE_DYNAMIC
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_NEON -DHAVE_MATERIALUI -DHAVE_LIBRETRODB -DHAVE_CC_RESAMPLER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DWANT_ZLIB
DEFINES += -DHAVE_RUNAHEAD -DHAVE_DYNAMIC
else
HAVE_CC_RESAMPLER = 1
HAVE_MENU_COMMON = 1
@@ -29,6 +30,8 @@ else
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
HAVE_MENU = 1
HAVE_RUNAHEAD = 1
HAVE_DYNAMIC = 1
include Makefile.common
BLACKLIST :=
@@ -39,17 +42,17 @@ endif
ifeq ($(strip $(LIBTRANSISTOR_HOME)),)
$(error "Please set LIBTRANSISTOR_HOME in your environment. export LIBTRANSISTOR_HOME=<path t>o libtransistor")
$(error "Please set LIBTRANSISTOR_HOME in your environment. export LIBTRANSISTOR_HOME=<path/to/libtransistor/dist/>")
endif
include $(LIBTRANSISTOR_HOME)/libtransistor.mk
INCDIRS := -I. -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBTRANSISTOR_HOME)/build/sdl2_install/include/SDL2/
INCDIRS := -I. -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBTRANSISTOR_HOME)/build/sdl2_install/include/SDL2/
LIBDIRS := -L.
TARGETS := $(TARGET).nro
CFLAGS += $(INCDIRS) $(DEFINES) -Wunused-command-line-argument
CFLAGS += $(INCDIRS) $(DEFINES) -Wno-unused-command-line-argument -Werror-implicit-function-declaration
all: $(TARGETS)
+1 -1
View File
@@ -16,7 +16,7 @@ DEFINES :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DWANT_ZLIB -DHAVE_CC_RESAMPLER
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
+32 -25
View File
@@ -6,10 +6,10 @@ DEBUG = 0
GRIFFIN_BUILD = 0
SALAMANDER_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
WIIU_HID = 0
WIIU_HID = 1
HAVE_RUNAHEAD = 1
WIIU_LOG_RPX = 0
BUILD_DIR = objs/wiiu
PC_DEVELOPMENT_IP_ADDRESS ?=
PC_DEVELOPMENT_TCP_PORT ?=
ifeq ($(SALAMANDER_BUILD),1)
@@ -28,11 +28,11 @@ ifneq ($(V), 1)
endif
OBJ :=
OBJ += wiiu/input/wpad_driver.o
OBJ += wiiu/input/kpad_driver.o
OBJ += wiiu/input/pad_functions.o
OBJ += wiiu/main.o
OBJ += wiiu/system/memory.o
OBJ += wiiu/system/atomic.o
OBJ += wiiu/system/exception_handler.o
OBJ += wiiu/system/missing_libc_functions.o
OBJ += wiiu/fs/sd_fat_devoptab.o
OBJ += wiiu/fs/fs_utils.o
OBJ += wiiu/hbl.o
@@ -45,18 +45,14 @@ endif
ifeq ($(WIIU_HID),1)
DEFINES += -DWIIU_HID
OBJ += wiiu/input/hidpad_driver.o
OBJ += wiiu/input/wiiu_hid.o
OBJ += input/drivers_joypad/wiiu/hidpad_driver.o
OBJ += input/drivers_hid/wiiu_hid.o
OBJ += input/connect/joypad_connection.o \
input/connect/connect_ps2adapter.o \
input/connect/connect_psxadapter.o \
input/connect/connect_ps3.o \
input/connect/connect_ps4.o \
input/connect/connect_wii.o \
input/connect/connect_nesusb.o \
input/connect/connect_snesusb.o \
input/connect/connect_wiiupro.o \
input/connect/connect_wiiugca.o
input/common/hid/hid_device_driver.o \
input/common/hid/device_wiiu_gca.o \
input/common/hid/device_ds3.o \
input/common/hid/device_ds4.o \
input/common/hid/device_null.o
endif
ifeq ($(SALAMANDER_BUILD),1)
@@ -88,7 +84,10 @@ else
DEFINES += -DHAVE_SLANG
DEFINES += -DHAVE_SHADERPIPELINE
OBJ += wiiu/system/missing_libc_functions.o
ifeq ($(HAVE_RUNAHEAD),1)
DEFINES += -DHAVE_RUNAHEAD
endif
OBJ += wiiu/shader_utils.o
OBJ += gfx/drivers/gx2_shaders/tex.o
OBJ += gfx/drivers/gx2_shaders/sprite.o
@@ -119,8 +118,7 @@ else
HAVE_RGUI = 1
HAVE_ZLIB = 1
HAVE_7ZIP = 1
HAVE_BUILTINZLIB = 1
HAVE_KEYMAPPER = 1
HAVE_BUILTINZLIB = 0
HAVE_LIBRETRODB = 1
HAVE_ZARCH = 0
HAVE_MATERIALUI = 1
@@ -147,6 +145,10 @@ else
OBJ += menu/drivers_display/menu_display_wiiu.o
OBJ += input/drivers/wiiu_input.o
OBJ += input/drivers_joypad/wiiu_joypad.o
OBJ += input/drivers_joypad/wiiu/wpad_driver.o
OBJ += input/drivers_joypad/wiiu/kpad_driver.o
OBJ += input/drivers_joypad/wiiu/pad_functions.o
OBJ += audio/drivers/wiiu_audio.o
OBJ += frontend/drivers/platform_wiiu.o
endif
@@ -160,10 +162,6 @@ DEFINES += -DWIIU -DMSB_FIRST -D__WUT__
DEFINES += -DHAVE_MAIN
DEFINES += -DRARCH_CONSOLE
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
DEFINES += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
endif
ifneq ($(PC_DEVELOPMENT_TCP_PORT),)
DEFINES += -DPC_DEVELOPMENT_TCP_PORT=$(PC_DEVELOPMENT_TCP_PORT)
endif
@@ -196,7 +194,16 @@ else
ELF2RPL := $(ELF2RPL).exe
endif
INCDIRS := -I. -Ideps -Ideps/stb -Ideps/libz -Ideps/7zip -Ilibretro-common/include -Iwiiu -Iwiiu/include -I$(DEVKITPRO)/portlibs/ppc/include
INCDIRS := -I.
INCDIRS += -Ideps
INCDIRS += -Ideps/stb
INCDIRS += -Ideps/libz
INCDIRS += -Ideps/7zip
INCDIRS += -Ilibretro-common/include
INCDIRS += -Iinput/include
INCDIRS += -Iwiiu
INCDIRS += -Iwiiu/include
INCDIRS += -I$(DEVKITPRO)/portlibs/ppc/include
LIBDIRS := -L. -L$(DEVKITPRO)/portlibs/ppc/lib
CFLAGS := -mwup -mcpu=750 -meabi -mhard-float
@@ -225,7 +232,7 @@ CXXFLAGS = $(CFLAGS) -fno-rtti -fno-exceptions
LDFLAGS += -Wl,--gc-sections
LIBS := $(WHOLE_START) -lretro_wiiu $(WHOLE_END) -lm
LIBS := $(WHOLE_START) -lretro_wiiu $(WHOLE_END) -lm -lpng -lz
ifneq ($(WANT_LIBFAT), 1)
LIBS += -lfat
+1
View File
@@ -18,6 +18,7 @@ HAVE_PYTHON = 0
DYNAMIC = 1
HAVE_XINPUT = 1
HAVE_WINMM = 1
HAVE_SDL := 0
HAVE_SDL2 := 0
+130 -17
View File
@@ -4,7 +4,7 @@
# RetroArch
RetroArch is the reference frontend for the libretro API.
Popular examples of implementations for this API includes videogame system emulators and game engines, but also
Popular examples of implementations for this API includes video game system emulators and game engines as well as
more generalized 3D programs.
These programs are instantiated as dynamic libraries. We refer to these as "libretro cores".
@@ -18,7 +18,7 @@ These programs are instantiated as dynamic libraries. We refer to these as "libr
[libretro](http://libretro.com) is an API that exposes generic audio/video/input callbacks.
A frontend for libretro (such as RetroArch) handles video output, audio output, input and application lifecycle.
A libretro core written in portable C or C++ can run seamlessly on many platforms with very little/no porting effort.
A libretro core written in portable C or C++ can run seamlessly on many platforms with very little to no porting effort.
While RetroArch is the reference frontend for libretro, several other projects have used the libretro
interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use.
@@ -27,12 +27,11 @@ interface to include support for emulators and/or game engines. libretro is comp
## Binaries
Latest Windows binaries are currently hosted on the [buildbot](http://buildbot.libretro.com/).
Latest binaries are currently hosted on the [buildbot](http://buildbot.libretro.com/).
## Support
To reach developers, either make an issue here on GitHub, make a thread on the [forum](http://www.libretro.com/forums/),
or visit our IRC channel: #retroarch @ irc.freenode.org.
To reach developers, either make an issue here on GitHub, make a thread on the [forum](http://www.libretro.com/forums/), chat on [Discord](https://discord.gg/C4amCeV), or visit our IRC channel: #retroarch @ irc.freenode.org.
## Documentation
@@ -49,15 +48,15 @@ More developer-centric stuff is found [here](https://github.com/libretro/libretr
## Philosophy
RetroArch attempts to be small and lean,
RetroArch attempts to be small and lean
while still having all the useful core features expected from an emulator.
It is designed to be very portable and features a gamepad-centric UI.
It is designed to be very portable and features a gamepad-centric and touchscreen UI.
It also has a full-featured command-line interface.
In some areas, RetroArch goes beyond and emphasizes on not-so-common technical features such as multi-pass shader support,
real-time rewind (Braid-style), video recording (using FFmpeg), etc.
real-time rewind (Braid-style), video recording (using FFmpeg), run-ahead input latency removal, etc.
RetroArch also emphasizes on being easy to integrate into various launcher frontends.
RetroArch also emphasizes being easy to integrate into various launcher frontends.
## Platforms
@@ -66,22 +65,24 @@ RetroArch has been ported to the following platforms:
- DOS
- Windows
- Linux
- Emscripten
- Emscripten (WebAssembly and JavaScript)
- FreeBSD
- NetBSD
- OpenBSD
- Haiku
- Solaris
- MacOS X
- macOS (PPC, x86-32 and x86-64)
- PlayStation 3
- PlayStation Portable
- PlayStation Vita
- Original Microsoft Xbox
- Microsoft Xbox 360 (Libxenon/XeXDK)
- Nintendo Wii, GameCube (Libogc)
- Nintendo WiiU
- Nintendo GameCube
- Nintendo Wii
- Nintendo Wii U
- Nintendo 3DS
- Nintendo Switch
- Nintendo NES/SNES Classic Edition
- Raspberry Pi
- Android
- iOS
@@ -121,7 +122,7 @@ RetroArch needs at least one of these audio driver libraries:
- DirectSound (Win32, Xbox 1)
- CoreAudio (OSX, iOS)
To run properly, RetroArch requires a libretro implementation present, however, as it's typically loaded
To run properly, RetroArch requires a libretro implementation present; however, as it's typically loaded
dynamically, it's not required at build time.
## Dependencies (Console ports, mobile)
@@ -131,12 +132,12 @@ anything other than what the respective SDKs provide.
## Configuring
The default configuration is defined in config.def.h.
The default configuration is defined in `config.def.h`.
It is not recommended to change this unless you know what you're doing.
These can later be tweaked by using a config file.
A sample configuration file is installed to /etc/retroarch.cfg. This is the system-wide config file.
A sample configuration file is installed to `/etc/retroarch.cfg`. This is the system-wide config file.
RetroArch will on startup create a config file in $XDG\_CONFIG\_HOME/retroarch/retroarch.cfg if doesn't exist.
RetroArch will on startup create a config file in `$XDG\_CONFIG\_HOME/retroarch/retroarch.cfg` if it does not exist.
Users only need to configure a certain option if the desired value deviates from the value defined in config.def.h.
To configure joypads, use the built-in menu or the `retroarch-joyconfig` command-line tool.
@@ -144,3 +145,115 @@ To configure joypads, use the built-in menu or the `retroarch-joyconfig` command
## Compiling and installing
Instructions for compiling and installing RetroArch can be found in the [Libretro/RetroArch Documentation Center](https://docs.libretro.com/).
## CRT 15Khz Resolution Switching
CRT SwitchRes will turn on, on the fly. However, you will need to restart RetroArch to disable it. With CRT SwitchRes enable RetroArch will start in 2560 x 480 @ 60.
If you are running Windows, before enabling the CRT SwitchRes options please make sure you have installed CRTEmudriver and installed some modelines. The minimum modelines for all games to switch correctly are:
- 2560 x 192 @ 60.000000
- 2560 x 200 @ 60.000000
- 2560 x 240 @ 60.000000
- 2560 x 224 @ 60.000000
- 2560 x 237 @ 60.000000
- 2560 x 256 @ 50.000000
- 2560 x 254 @ 55.000000
- 2560 x 448 @ 60.000000
- 2560 x 480 @ 60.000000
Install these modelines replacing 2560 with your desired super resolution. The above resolutions are NTSC only so if you would be playing any PAL content please add PAL modelines:
- 2560 x 192 @ 50.000000
- 2560 x 200 @ 50.000000
- 2560 x 240 @ 50.000000
- 2560 x 224 @ 50.000000
- 2560 x 288 @ 50.000000
- 2560 x 237 @ 50.000000
- 2560 x 254 @ 55.000000
- 2560 x 448 @ 50.000000
- 2560 x 480 @ 50.000000
Some games will require higher PAL resolutions which should also be installed:
- 2560 x 512 @ 50.000000
- 2560 x 576 @ 50.000000
Ideally install all these modelines and everything will work great.
## Super Resolutions
The default super resolution is 2560. It is displayed just under the CRT switch option, which can be found in video settings. This can be changed within the retroarch.cfg. The only compatible resolutions are 1920, 2560 and 3840. Any other resolutions will be ignored and native switching will be activated.
## Native Resolutions
If native resolutions are activated you will need a whole new set of modelines:
- 512 x 240 @ 50.006977 SNESpal
- 512 x 224 @ 50.006977 SNESpal
- 512 x 448 @ 50.006977 SNESpal
- 512 x 240 @ 60.098812 SNESntsc
- 512 x 224 @ 60.098812 SNESntsc
- 512 x 448 @ 60.098812 SNESntsc
- 256 x 240 @ 50.006977 SNESpal
- 256 x 448 @ 50.006977 SNESpal
- 256 x 240 @ 60.098812 SNESntsc
- 256 x 448 @ 60.098812 SNESntsc
- 320 x 240 @ 59.922745 MDntsc
- 320 x 448 @ 59.922745 MDntp
- 320 x 480 @ 59.922745 MDntsc
- 256 x 192 @ 59.922745 MDntsc
- 320 x 224 @ 59.922745 MDntsc
- 256 x 224 @ 59.922745 MDntsc
- 320 x 288 @ 49.701458 MDpal
- 320 x 576 @ 49.701458 MDpal
- 256 x 192 @ 49.701458 MDpal
- 320 x 224 @ 49.701458 MDpal
- 320 x 240 @ 49.701458 MDpal
- 320 x 448 @ 49.701458 MDpal
- 320 x 480 @ 49.701458 MDpal
- 256 x 224 @ 49.701458 MDpal
- 256 x 288 @ 49.701458 MSYSpal
- 256 x 240 @ 60.098812 NESntsc
- 256 x 240 @ 50.006977 NESpal
- 640 x 480 @ 60.130001 N64ntsc
- 640 x 237 @ 60.130001 N64ntsc
- 640 x 240 @ 60.130001 N64ntsc
- 640 x 480 @ 50.000000 N64pal
- 640 x 576 @ 50.000000 n64pal
- 640 x 288 @ 50.000000 n64pal
- 256 x 252 @ 49.759998 PSXpal
- 384 x 252 @ 49.759998 PSXpal
- 640 x 540 @ 49.759998 PSXpal
- 320 x 252 @ 49.759998 PSXpal
- 640 x 252 @ 49.759998 PSXpal
- 384 x 240 @ 59.941002 PSXntsc
- 256 x 480 @ 59.941002 PSXntsc
- 352 x 240 @ 59.820000 Saturn/SGFX_NTSCp
- 704 x 240 @ 59.820000 SaturnNTSCp
- 352 x 480 @ 59.820000 SaturnNTSCi
- 704 x 480 @ 59.820000 SaturnNTSCi
- 352 x 288 @ 49.701458 SaturnPALp
- 704 x 288 @ 49.701458 SaturnPALp
- 352 x 576 @ 49.701458 SaturnPALi
- 704 x 576 @ 49.701458 SaturnPALi
- 240 x 160 @ 59.730000 GBA
- 320 x 200 @ 60.000000 Doom
// Arcade
- 400 x 254 @ 54.706841 MK
- 384 x 224 @ 59.637405 CPS1
These modelines are more accurate giving exact hz. However, some games may have unwanted results. This is due to mid-scanline resolution changes on the original hardware. For the best results super resolutions are the way to go.
## CRT resolution switching & MAME
Some arcade resolutions can be very different from consumer CRTs. There is resolution detection to ensure MAME games will be displayed in the closest available resolution but drawn at their native resolution within this resolution. Meaning that the MAME game will look just like the original hardware.
MAME ROMs that run in a vertical aspect like DoDonPachi need to be rotated within MAME before resolution switching and aspect correction will work. Do this before enabling CRT SwitchRes so that RetroArch will run in your desktop resolution. Once you have rotated any games that may need it turn CRT SwitchRes on.
+386 -126
View File
@@ -45,7 +45,15 @@
#define AUDIO_BUFFER_FREE_SAMPLES_COUNT (8 * 1024)
#define AUDIO_MIXER_MAX_STREAMS 8
/**
* db_to_gain:
* @db : Decibels.
*
* Converts decibels to voltage gain.
*
* Returns: voltage gain value.
**/
#define db_to_gain(db) (powf(10.0f, (db) / 20.0f))
static const audio_driver_t *audio_drivers[] = {
#ifdef HAVE_ALSA
@@ -117,23 +125,12 @@ static const audio_driver_t *audio_drivers[] = {
#endif
#ifdef SWITCH
&audio_switch,
&audio_switch_thread,
#endif
&audio_null,
NULL,
};
struct audio_mixer_stream
{
audio_mixer_sound_t *handle;
audio_mixer_voice_t *voice;
audio_mixer_stop_cb_t stop_cb;
enum audio_mixer_state state;
float volume;
void *buf;
size_t bufsize;
};
static unsigned audio_mixer_current_max_idx = 0;
static struct audio_mixer_stream audio_mixer_streams[AUDIO_MIXER_MAX_STREAMS] = {{0}};
static size_t audio_driver_chunk_size = 0;
@@ -146,10 +143,8 @@ static size_t audio_driver_rewind_size = 0;
static int16_t *audio_driver_rewind_buf = NULL;
static int16_t *audio_driver_output_samples_conv_buf = NULL;
#ifdef DEBUG
static unsigned audio_driver_free_samples_buf[AUDIO_BUFFER_FREE_SAMPLES_COUNT];
static uint64_t audio_driver_free_samples_count = 0;
#endif
static size_t audio_driver_buffer_size = 0;
static size_t audio_driver_data_ptr = 0;
@@ -183,6 +178,13 @@ static void *audio_driver_resampler_data = NULL;
static const audio_driver_t *current_audio = NULL;
static void *audio_driver_context_audio_data = NULL;
static bool audio_suspended = false;
static void audio_mixer_play_stop_sequential_cb(
audio_mixer_sound_t *sound, unsigned reason);
static void audio_mixer_play_stop_cb(
audio_mixer_sound_t *sound, unsigned reason);
enum resampler_quality audio_driver_get_resampler_quality(void)
{
settings_t *settings = config_get_ptr();
@@ -193,18 +195,31 @@ enum resampler_quality audio_driver_get_resampler_quality(void)
return (enum resampler_quality)settings->uints.audio_resampler_quality;
}
#ifdef DEBUG
audio_mixer_stream_t *audio_driver_mixer_get_stream(unsigned i)
{
if (i > (AUDIO_MIXER_MAX_STREAMS-1))
return NULL;
return &audio_mixer_streams[i];
}
const char *audio_driver_mixer_get_stream_name(unsigned i)
{
if (i > (AUDIO_MIXER_MAX_STREAMS-1))
return "N/A";
if (!string_is_empty(audio_mixer_streams[i].name))
return audio_mixer_streams[i].name;
return "N/A";
}
/**
* compute_audio_buffer_statistics:
*
* Computes audio buffer statistics.
*
**/
static void compute_audio_buffer_statistics(void)
bool compute_audio_buffer_statistics(audio_statistics_t *stats)
{
unsigned i, low_water_size, high_water_size, avg, stddev;
float avg_filled = 0.0f;
float deviation = 0.0f;
uint64_t accum = 0;
uint64_t accum_var = 0;
unsigned low_water_count = 0;
@@ -213,9 +228,21 @@ static void compute_audio_buffer_statistics(void)
(unsigned)audio_driver_free_samples_count,
AUDIO_BUFFER_FREE_SAMPLES_COUNT);
if (samples < 3)
return;
if (!stats || samples < 3)
return false;
stats->samples = (unsigned)audio_driver_free_samples_count;
#ifdef WARPUP
/* uint64 to double not implemented, fair chance
* signed int64 to double doesn't exist either */
/* https://forums.libretro.com/t/unsupported-platform-help/13903/ */
(void)stddev;
#elif defined(_MSC_VER) && _MSC_VER <= 1200
/* FIXME: error C2520: conversion from unsigned __int64
* to double not implemented, use signed __int64 */
(void)stddev;
#else
for (i = 1; i < samples; i++)
accum += audio_driver_free_samples_buf[i];
@@ -223,24 +250,17 @@ static void compute_audio_buffer_statistics(void)
for (i = 1; i < samples; i++)
{
int diff = avg - audio_driver_free_samples_buf[i];
accum_var += diff * diff;
int diff = avg - audio_driver_free_samples_buf[i];
accum_var += diff * diff;
}
#ifdef WARPUP
/* uint64 to double not implemented, fair chance signed int64 to double doesn't exist either */
/* https://forums.libretro.com/t/unsupported-platform-help/13903/ */
(void)stddev; (void)avg_filled; (void)deviation;
#elif defined(_MSC_VER) && _MSC_VER <= 1200
/* FIXME: error C2520: conversion from unsigned __int64 to double not implemented, use signed __int64 */
(void)stddev; (void)avg_filled; (void)deviation;
#else
stddev = (unsigned)sqrt((double)accum_var / (samples - 2));
avg_filled = 1.0f - (float)avg / audio_driver_buffer_size;
deviation = (float)stddev / audio_driver_buffer_size;
stddev = (unsigned)
sqrt((double)accum_var / (samples - 2));
RARCH_LOG("[Audio]: Average audio buffer saturation: %.2f %%, standard deviation (percentage points): %.2f %%.\n",
avg_filled * 100.0, deviation * 100.0);
stats->average_buffer_saturation = (1.0f - (float)avg
/ audio_driver_buffer_size) * 100.0;
stats->std_deviation_percentage = ((float)stddev
/ audio_driver_buffer_size) * 100.0;
#endif
low_water_size = (unsigned)(audio_driver_buffer_size * 3 / 4);
@@ -254,11 +274,29 @@ static void compute_audio_buffer_statistics(void)
high_water_count++;
}
RARCH_LOG("[Audio]: Amount of time spent close to underrun: %.2f %%. Close to blocking: %.2f %%.\n",
(100.0 * low_water_count) / (samples - 1),
(100.0 * high_water_count) / (samples - 1));
stats->close_to_underrun = (100.0 * low_water_count) / (samples - 1);
stats->close_to_blocking = (100.0 * high_water_count) / (samples - 1);
return true;
}
static void report_audio_buffer_statistics(void)
{
audio_statistics_t audio_stats = {0.0f};
if (!compute_audio_buffer_statistics(&audio_stats))
return;
#ifdef DEBUG
RARCH_LOG("[Audio]: Average audio buffer saturation: %.2f %%,"
" standard deviation (percentage points): %.2f %%.\n"
"[Audio]: Amount of time spent close to underrun: %.2f %%."
" Close to blocking: %.2f %%.\n",
audio_stats.average_buffer_saturation,
audio_stats.std_deviation_percentage,
audio_stats.close_to_underrun,
audio_stats.close_to_blocking);
#endif
}
/**
* audio_driver_find_handle:
@@ -343,13 +381,17 @@ static bool audio_driver_deinit_internal(void)
command_event(CMD_EVENT_DSP_FILTER_DEINIT, NULL);
#ifdef DEBUG
compute_audio_buffer_statistics();
#endif
report_audio_buffer_statistics();
return true;
}
static void audio_driver_mixer_init(unsigned out_rate)
{
audio_mixer_init(out_rate);
}
static bool audio_driver_init_internal(bool audio_cb_inited)
{
unsigned new_rate = 0;
@@ -506,7 +548,7 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
{
audio_driver_buffer_size =
current_audio->buffer_size(audio_driver_context_audio_data);
audio_driver_control = true;
audio_driver_control = true;
}
else
RARCH_WARN("Audio rate control was desired, but driver does not support needed features.\n");
@@ -514,11 +556,9 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
command_event(CMD_EVENT_DSP_FILTER_INIT, NULL);
#ifdef DEBUG
audio_driver_free_samples_count = 0;
#endif
audio_mixer_init(settings->uints.audio_out_rate);
audio_driver_mixer_init(settings->uints.audio_out_rate);
/* Threaded driver is initially stopped. */
if (
@@ -560,20 +600,17 @@ void audio_driver_set_nonblocking_state(bool enable)
static void audio_driver_flush(const int16_t *data, size_t samples)
{
struct resampler_data src_data;
bool is_perfcnt_enable = false;
bool is_paused = false;
bool is_idle = false;
bool is_slowmotion = false;
const void *output_data = NULL;
unsigned output_frames = 0;
float audio_volume_gain = !audio_driver_mute_enable ?
bool is_perfcnt_enable = false;
bool is_paused = false;
bool is_idle = false;
bool is_slowmotion = false;
const void *output_data = NULL;
unsigned output_frames = 0;
float audio_volume_gain = !audio_driver_mute_enable ?
audio_driver_volume_gain : 0.0f;
src_data.data_in = NULL;
src_data.data_out = NULL;
src_data.input_frames = 0;
src_data.output_frames = 0;
src_data.ratio = 0.0f;
src_data.data_out = NULL;
src_data.output_frames = 0;
if (recording_data)
recording_push_audio(data, samples);
@@ -581,8 +618,8 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
runloop_get_status(&is_paused, &is_idle, &is_slowmotion,
&is_perfcnt_enable);
if ( is_paused ||
!audio_driver_active ||
if ( is_paused ||
!audio_driver_active ||
!audio_driver_input_data ||
!audio_driver_output_samples_buf)
return;
@@ -590,8 +627,8 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
convert_s16_to_float(audio_driver_input_data, data, samples,
audio_volume_gain);
src_data.data_in = audio_driver_input_data;
src_data.input_frames = samples >> 1;
src_data.data_in = audio_driver_input_data;
src_data.input_frames = samples >> 1;
if (audio_driver_dsp)
@@ -626,13 +663,11 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
int delta_mid = avail - half_size;
double direction = (double)delta_mid / half_size;
double adjust = 1.0 + audio_driver_rate_control_delta * direction;
#ifdef DEBUG
unsigned write_idx = audio_driver_free_samples_count++ &
(AUDIO_BUFFER_FREE_SAMPLES_COUNT - 1);
audio_driver_free_samples_buf
[write_idx] = avail;
#endif
audio_source_ratio_current =
audio_source_ratio_original * adjust;
@@ -648,7 +683,7 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
#endif
}
src_data.ratio = audio_source_ratio_current;
src_data.ratio = audio_source_ratio_current;
if (is_slowmotion)
{
@@ -661,7 +696,7 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
if (audio_mixer_active)
{
bool override = audio_driver_mixer_mute_enable ? true :
(audio_driver_mixer_volume_gain != 0.0f) ? true : false;
(audio_driver_mixer_volume_gain != 1.0f) ? true : false;
float mixer_gain = !audio_driver_mixer_mute_enable ?
audio_driver_mixer_volume_gain : 0.0f;
audio_mixer_mix(audio_driver_output_samples_buf,
@@ -696,6 +731,9 @@ static void audio_driver_flush(const int16_t *data, size_t samples)
**/
void audio_driver_sample(int16_t left, int16_t right)
{
if (audio_suspended)
return;
audio_driver_output_samples_conv_buf[audio_driver_data_ptr++] = left;
audio_driver_output_samples_conv_buf[audio_driver_data_ptr++] = right;
@@ -708,6 +746,22 @@ void audio_driver_sample(int16_t left, int16_t right)
audio_driver_data_ptr = 0;
}
void audio_driver_menu_sample(void)
{
static int16_t samples_buf[1024] = {0};
struct retro_system_av_info
*av_info = video_viewport_get_system_av_info();
const struct retro_system_timing *info =
(const struct retro_system_timing*)&av_info->timing;
unsigned sample_count = (info->sample_rate / info->fps) * 2;
while (sample_count > 1024)
{
audio_driver_flush(samples_buf, 1024);
sample_count -= 1024;
}
audio_driver_flush(samples_buf, sample_count);
}
/**
* audio_driver_sample_batch:
* @data : pointer to audio buffer.
@@ -723,6 +777,9 @@ size_t audio_driver_sample_batch(const int16_t *data, size_t frames)
if (frames > (AUDIO_CHUNK_SIZE_NONBLOCKING >> 1))
frames = AUDIO_CHUNK_SIZE_NONBLOCKING >> 1;
if (audio_suspended)
return frames;
audio_driver_flush(data, frames << 1);
return frames;
@@ -820,19 +877,19 @@ void audio_driver_monitor_adjust_system_rates(void)
{
float timing_skew;
settings_t *settings = config_get_ptr();
struct retro_system_av_info *av_info = video_viewport_get_system_av_info();
float video_refresh_rate = settings->floats.video_refresh_rate;
float max_timing_skew = settings->floats.audio_max_timing_skew;
const struct retro_system_timing *info = av_info ?
(const struct retro_system_timing*)&av_info->timing : NULL;
struct retro_system_av_info *av_info = video_viewport_get_system_av_info();
const struct retro_system_timing *info =
(const struct retro_system_timing*)&av_info->timing;
if (!info || info->sample_rate <= 0.0)
if (info->sample_rate <= 0.0)
return;
timing_skew = fabs(1.0f - info->fps / video_refresh_rate);
audio_driver_input = info->sample_rate;
if (timing_skew <= max_timing_skew)
if (timing_skew <= max_timing_skew && !settings->bools.vrr_runloop_enable)
audio_driver_input *= (video_refresh_rate / info->fps);
RARCH_LOG("[Audio]: Set audio input rate to: %.2f Hz.\n",
@@ -956,6 +1013,12 @@ bool audio_driver_mixer_extension_supported(const char *ext)
string_list_append(str_list, "mod", attr);
string_list_append(str_list, "s3m", attr);
string_list_append(str_list, "xm", attr);
#endif
#ifdef HAVE_DR_FLAC
string_list_append(str_list, "flac", attr);
#endif
#ifdef HAVE_DR_MP3
string_list_append(str_list, "mp3", attr);
#endif
string_list_append(str_list, "wav", attr);
@@ -1001,18 +1064,16 @@ static void audio_mixer_play_stop_cb(
{
unsigned i = (unsigned)idx;
#if 0
if (audio_mixer_streams[i].buf != NULL)
free(audio_mixer_streams[i].buf);
#endif
if (!string_is_empty(audio_mixer_streams[i].name))
free(audio_mixer_streams[i].name);
audio_mixer_streams[i].name = NULL;
audio_mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_mixer_streams[i].volume = 0.0f;
audio_mixer_streams[i].buf = NULL;
audio_mixer_streams[i].stop_cb = NULL;
audio_mixer_streams[i].handle = NULL;
audio_mixer_streams[i].voice = NULL;
audio_mixer_current_max_idx--;
}
break;
case AUDIO_MIXER_SOUND_STOPPED:
@@ -1022,15 +1083,75 @@ static void audio_mixer_play_stop_cb(
}
}
static void audio_mixer_play_stop_sequential_cb(
audio_mixer_sound_t *sound, unsigned reason)
{
int idx = audio_mixer_find_index(sound);
switch (reason)
{
case AUDIO_MIXER_SOUND_FINISHED:
audio_mixer_destroy(sound);
if (idx >= 0)
{
unsigned i = (unsigned)idx;
if (!string_is_empty(audio_mixer_streams[i].name))
free(audio_mixer_streams[i].name);
audio_mixer_streams[i].name = NULL;
audio_mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_mixer_streams[i].volume = 0.0f;
audio_mixer_streams[i].buf = NULL;
audio_mixer_streams[i].stop_cb = NULL;
audio_mixer_streams[i].handle = NULL;
audio_mixer_streams[i].voice = NULL;
i++;
for (; i < AUDIO_MIXER_MAX_STREAMS; i++)
{
if (audio_mixer_streams[i].state == AUDIO_STREAM_STATE_STOPPED)
{
audio_driver_mixer_play_stream_sequential(i);
break;
}
}
}
break;
case AUDIO_MIXER_SOUND_STOPPED:
break;
case AUDIO_MIXER_SOUND_REPEATED:
break;
}
}
bool audio_driver_mixer_get_free_stream_slot(unsigned *id)
{
unsigned i;
for (i = 0; i < AUDIO_MIXER_MAX_STREAMS; i++)
{
if (audio_mixer_streams[i].state == AUDIO_STREAM_STATE_NONE)
{
*id = i;
return true;
}
}
return false;
}
bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
{
unsigned free_slot = 0;
audio_mixer_voice_t *voice = NULL;
audio_mixer_sound_t *handle = NULL;
audio_mixer_stop_cb_t stop_cb = audio_mixer_play_stop_cb;
bool looped = false;
void *buf = NULL;
if (audio_mixer_current_max_idx >= AUDIO_MIXER_MAX_STREAMS)
if (!audio_driver_mixer_get_free_stream_slot(&free_slot))
return false;
if (params->state == AUDIO_STREAM_STATE_NONE)
@@ -1054,9 +1175,18 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
case AUDIO_MIXER_TYPE_MOD:
handle = audio_mixer_load_mod(buf, (int32_t)params->bufsize);
break;
case AUDIO_MIXER_TYPE_FLAC:
#ifdef HAVE_DR_FLAC
handle = audio_mixer_load_flac(buf, (int32_t)params->bufsize);
#endif
break;
case AUDIO_MIXER_TYPE_MP3:
#ifdef HAVE_DR_MP3
handle = audio_mixer_load_mp3(buf, (int32_t)params->bufsize);
#endif
break;
case AUDIO_MIXER_TYPE_NONE:
free(buf);
return false;
break;
}
if (!handle)
@@ -1065,74 +1195,193 @@ bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params)
return false;
}
if (params->state == AUDIO_STREAM_STATE_PLAYING)
switch (params->state)
{
voice = audio_mixer_play(handle, looped, params->volume, stop_cb);
audio_set_bool(AUDIO_ACTION_MIXER, true);
}
else if (params->state == AUDIO_STREAM_STATE_PLAYING_LOOPED)
{
looped = true;
voice = audio_mixer_play(handle, looped, params->volume, stop_cb);
audio_set_bool(AUDIO_ACTION_MIXER, true);
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
looped = true;
voice = audio_mixer_play(handle, looped, params->volume, stop_cb);
break;
case AUDIO_STREAM_STATE_PLAYING:
voice = audio_mixer_play(handle, looped, params->volume, stop_cb);
break;
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
stop_cb = audio_mixer_play_stop_sequential_cb;
voice = audio_mixer_play(handle, looped, params->volume, stop_cb);
break;
default:
break;
}
audio_mixer_streams[audio_mixer_current_max_idx].buf = buf;
audio_mixer_streams[audio_mixer_current_max_idx].handle = handle;
audio_mixer_streams[audio_mixer_current_max_idx].voice = voice;
audio_mixer_streams[audio_mixer_current_max_idx].state = params->state;
audio_mixer_streams[audio_mixer_current_max_idx].volume = params->volume;
audio_mixer_streams[audio_mixer_current_max_idx].stop_cb = stop_cb;
audio_mixer_active = true;
audio_mixer_current_max_idx++;
audio_mixer_streams[free_slot].name = !string_is_empty(params->basename) ? strdup(params->basename) : NULL;
audio_mixer_streams[free_slot].buf = buf;
audio_mixer_streams[free_slot].handle = handle;
audio_mixer_streams[free_slot].voice = voice;
audio_mixer_streams[free_slot].state = params->state;
audio_mixer_streams[free_slot].volume = params->volume;
audio_mixer_streams[free_slot].stop_cb = stop_cb;
return true;
}
static void audio_driver_mixer_remove_stream(unsigned i)
enum audio_mixer_state audio_driver_mixer_get_stream_state(unsigned i)
{
audio_mixer_sound_t *handle = audio_mixer_streams[i].handle;
audio_mixer_voice_t *voice = audio_mixer_streams[i].voice;
if (i >= AUDIO_MIXER_MAX_STREAMS)
return AUDIO_STREAM_STATE_NONE;
return audio_mixer_streams[i].state;
}
static void audio_driver_mixer_play_stream_internal(unsigned i, unsigned type)
{
bool set_state = false;
if (i >= AUDIO_MIXER_MAX_STREAMS)
return;
switch (audio_mixer_streams[i].state)
{
case AUDIO_STREAM_STATE_STOPPED:
audio_mixer_streams[i].voice = audio_mixer_play(audio_mixer_streams[i].handle,
(type == AUDIO_STREAM_STATE_PLAYING_LOOPED) ? true : false,
1.0f, audio_mixer_streams[i].stop_cb);
set_state = true;
break;
case AUDIO_STREAM_STATE_PLAYING:
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
case AUDIO_STREAM_STATE_NONE:
break;
}
if (set_state)
audio_mixer_streams[i].state = (enum audio_mixer_state)type;
}
void audio_driver_mixer_play_stream(unsigned i)
{
audio_mixer_streams[i].stop_cb = audio_mixer_play_stop_cb;
audio_driver_mixer_play_stream_internal(i, AUDIO_STREAM_STATE_PLAYING);
}
void audio_driver_mixer_play_stream_looped(unsigned i)
{
audio_mixer_streams[i].stop_cb = audio_mixer_play_stop_cb;
audio_driver_mixer_play_stream_internal(i, AUDIO_STREAM_STATE_PLAYING_LOOPED);
}
void audio_driver_mixer_play_stream_sequential(unsigned i)
{
audio_mixer_streams[i].stop_cb = audio_mixer_play_stop_sequential_cb;
audio_driver_mixer_play_stream_internal(i, AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL);
}
float audio_driver_mixer_get_stream_volume(unsigned i)
{
if (i >= AUDIO_MIXER_MAX_STREAMS)
return 0.0f;
return audio_mixer_streams[i].volume;
}
void audio_driver_mixer_set_stream_volume(unsigned i, float vol)
{
audio_mixer_voice_t *voice = NULL;
if (i >= AUDIO_MIXER_MAX_STREAMS)
return;
audio_mixer_streams[i].volume = vol;
voice = audio_mixer_streams[i].voice;
if (voice)
audio_mixer_voice_set_volume(voice, db_to_gain(vol));
}
void audio_driver_mixer_stop_stream(unsigned i)
{
bool set_state = false;
if (i >= AUDIO_MIXER_MAX_STREAMS)
return;
switch (audio_mixer_streams[i].state)
{
case AUDIO_STREAM_STATE_PLAYING:
if (voice)
audio_mixer_stop(voice);
if (handle)
audio_mixer_destroy(handle);
break;
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
if (voice)
audio_mixer_stop(voice);
if (handle)
audio_mixer_destroy(handle);
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
set_state = true;
break;
case AUDIO_STREAM_STATE_STOPPED:
if (handle)
audio_mixer_destroy(handle);
case AUDIO_STREAM_STATE_NONE:
break;
}
if (set_state)
{
audio_mixer_voice_t *voice = audio_mixer_streams[i].voice;
if (voice)
audio_mixer_stop(voice);
audio_mixer_streams[i].state = AUDIO_STREAM_STATE_STOPPED;
audio_mixer_streams[i].volume = 1.0f;
}
}
void audio_driver_mixer_remove_stream(unsigned i)
{
bool destroy = false;
if (i >= AUDIO_MIXER_MAX_STREAMS)
return;
switch (audio_mixer_streams[i].state)
{
case AUDIO_STREAM_STATE_PLAYING:
case AUDIO_STREAM_STATE_PLAYING_LOOPED:
case AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL:
audio_driver_mixer_stop_stream(i);
destroy = true;
break;
case AUDIO_STREAM_STATE_STOPPED:
destroy = true;
break;
case AUDIO_STREAM_STATE_NONE:
break;
}
audio_mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_mixer_streams[i].volume = 0.0f;
audio_mixer_streams[i].stop_cb = NULL;
audio_mixer_streams[i].handle = NULL;
audio_mixer_streams[i].voice = NULL;
if (destroy)
{
audio_mixer_sound_t *handle = audio_mixer_streams[i].handle;
if (handle)
audio_mixer_destroy(handle);
if (!string_is_empty(audio_mixer_streams[i].name))
free(audio_mixer_streams[i].name);
audio_mixer_streams[i].state = AUDIO_STREAM_STATE_NONE;
audio_mixer_streams[i].stop_cb = NULL;
audio_mixer_streams[i].volume = 0.0f;
audio_mixer_streams[i].handle = NULL;
audio_mixer_streams[i].voice = NULL;
audio_mixer_streams[i].name = NULL;
}
}
static void audio_driver_mixer_deinit(void)
{
unsigned i;
audio_set_bool(AUDIO_ACTION_MIXER, false);
audio_mixer_active = false;
for (i = 0; i < AUDIO_MIXER_MAX_STREAMS; i++)
{
audio_driver_mixer_stop_stream(i);
audio_driver_mixer_remove_stream(i);
}
audio_mixer_current_max_idx = 0;
audio_mixer_done();
}
@@ -1286,11 +1535,31 @@ bool audio_driver_owns_driver(void)
return audio_driver_data_own;
}
void audio_driver_suspend(void)
{
audio_suspended = true;
}
bool audio_driver_is_suspended(void)
{
return audio_suspended;
}
void audio_driver_resume(void)
{
audio_suspended = false;
}
void audio_driver_set_active(void)
{
audio_driver_active = true;
}
bool audio_driver_is_active(void)
{
return audio_driver_active;
}
void audio_driver_destroy(void)
{
audio_driver_active = false;
@@ -1311,15 +1580,6 @@ void audio_set_bool(enum audio_action action, bool val)
}
}
/**
* db_to_gain:
* @db : Decibels.
*
* Converts decibels to voltage gain.
*
* Returns: voltage gain value.
**/
#define db_to_gain(db) (powf(10.0f, (db) / 20.0f))
void audio_set_float(enum audio_action action, float val)
{
+66 -8
View File
@@ -35,6 +35,8 @@ RETRO_BEGIN_DECLS
#define AUDIO_MAX_RATIO 16
#define AUDIO_MIXER_MAX_STREAMS 16
enum audio_action
{
AUDIO_ACTION_NONE = 0,
@@ -46,6 +48,36 @@ enum audio_action
AUDIO_ACTION_MIXER
};
enum audio_mixer_state
{
AUDIO_STREAM_STATE_NONE = 0,
AUDIO_STREAM_STATE_STOPPED,
AUDIO_STREAM_STATE_PLAYING,
AUDIO_STREAM_STATE_PLAYING_LOOPED,
AUDIO_STREAM_STATE_PLAYING_SEQUENTIAL
};
typedef struct audio_mixer_stream
{
audio_mixer_sound_t *handle;
audio_mixer_voice_t *voice;
audio_mixer_stop_cb_t stop_cb;
enum audio_mixer_state state;
float volume;
void *buf;
char *name;
size_t bufsize;
} audio_mixer_stream_t;
typedef struct audio_statistics
{
float average_buffer_saturation;
float std_deviation_percentage;
float close_to_underrun;
float close_to_blocking;
unsigned samples;
} audio_statistics_t;
typedef struct audio_driver
{
/* Creates and initializes handle to audio driver.
@@ -128,20 +160,13 @@ typedef struct audio_driver
size_t (*buffer_size)(void *data);
} audio_driver_t;
enum audio_mixer_state
{
AUDIO_STREAM_STATE_NONE = 0,
AUDIO_STREAM_STATE_STOPPED,
AUDIO_STREAM_STATE_PLAYING,
AUDIO_STREAM_STATE_PLAYING_LOOPED
};
typedef struct audio_mixer_stream_params
{
float volume;
enum audio_mixer_type type;
enum audio_mixer_state state;
void *buf;
char *basename;
size_t bufsize;
audio_mixer_stop_cb_t cb;
} audio_mixer_stream_params_t;
@@ -152,8 +177,16 @@ void audio_driver_set_own_driver(void);
void audio_driver_unset_own_driver(void);
void audio_driver_suspend(void);
bool audio_driver_is_suspended(void);
void audio_driver_resume(void);
void audio_driver_set_active(void);
bool audio_driver_is_active(void);
void audio_driver_destroy(void);
void audio_driver_deinit_resampler(void);
@@ -254,10 +287,34 @@ bool audio_driver_deinit(void);
bool audio_driver_init(void);
void audio_driver_menu_sample(void);
audio_mixer_stream_t *audio_driver_mixer_get_stream(unsigned i);
bool audio_driver_mixer_add_stream(audio_mixer_stream_params_t *params);
void audio_driver_mixer_play_stream(unsigned i);
void audio_driver_mixer_play_stream_sequential(unsigned i);
void audio_driver_mixer_play_stream_looped(unsigned i);
void audio_driver_mixer_stop_stream(unsigned i);
float audio_driver_mixer_get_stream_volume(unsigned i);
void audio_driver_mixer_set_stream_volume(unsigned i, float vol);
void audio_driver_mixer_remove_stream(unsigned i);
enum resampler_quality audio_driver_get_resampler_quality(void);
enum audio_mixer_state audio_driver_mixer_get_stream_state(unsigned i);
const char *audio_driver_mixer_get_stream_name(unsigned i);
bool compute_audio_buffer_statistics(audio_statistics_t *stats);
extern audio_driver_t audio_rsound;
extern audio_driver_t audio_oss;
extern audio_driver_t audio_alsa;
@@ -281,6 +338,7 @@ extern audio_driver_t audio_psp;
extern audio_driver_t audio_ctr_csnd;
extern audio_driver_t audio_ctr_dsp;
extern audio_driver_t audio_switch;
extern audio_driver_t audio_switch_thread;
extern audio_driver_t audio_rwebaudio;
extern audio_driver_t audio_null;
+27 -1
View File
@@ -32,7 +32,9 @@
#include <retro_inline.h>
#include <retro_miscellaneous.h>
#include <retro_timers.h>
#ifdef HAVE_THREADS
#include <rthreads/rthreads.h>
#endif
#include <queues/fifo_queue.h>
#include "../audio_driver.h"
@@ -59,7 +61,11 @@ typedef struct dsound
CRITICAL_SECTION crit;
HANDLE event;
#ifdef HAVE_THREADS
sthread_t *thread;
#else
HANDLE thread;
#endif
unsigned buffer_size;
@@ -137,7 +143,11 @@ static INLINE void release_region(dsound_t *ds, const struct audio_lock *region)
region->size1, region->chunk2, region->size2);
}
#ifdef HAVE_THREADS
static void dsound_thread(void *data)
#else
static DWORD CALLBACK dsound_thread(PVOID data)
#endif
{
DWORD write_ptr;
dsound_t *ds = (dsound_t*)data;
@@ -219,7 +229,13 @@ static void dsound_stop_thread(dsound_t *ds)
ds->thread_alive = false;
#ifdef HAVE_THREADS
sthread_join(ds->thread);
#else
WaitForSingleObject(ds->thread, INFINITE);
CloseHandle(ds->thread);
#endif
ds->thread = NULL;
}
@@ -228,7 +244,12 @@ static bool dsound_start_thread(dsound_t *ds)
if (!ds->thread)
{
ds->thread_alive = true;
ds->thread = sthread_create(dsound_thread, ds);
#ifdef HAVE_THREADS
ds->thread = sthread_create(dsound_thread, ds);
#else
ds->thread = CreateThread(NULL, 0, dsound_thread, ds, 0, NULL);
#endif
if (!ds->thread)
return false;
}
@@ -261,7 +282,12 @@ static void dsound_free(void *data)
if (ds->thread)
{
ds->thread_alive = false;
#ifdef HAVE_THREADS
sthread_join(ds->thread);
#else
WaitForSingleObject(ds->thread, INFINITE);
CloseHandle(ds->thread);
#endif
}
DeleteCriticalSection(&ds->crit);
+3 -2
View File
@@ -83,12 +83,13 @@ static void *gx_audio_init(const char *device,
AIInit(NULL);
AIRegisterDMACallback(dma_callback);
if (rate < 33000)
//ranges 0-32000 (default low) and 40000-47999 (in settings going down from 48000) -> set to 32000 hz
if (rate <= 32000 || (rate >= 40000 && rate < 48000))
{
AISetDSPSampleRate(AI_SAMPLERATE_32KHZ);
*new_rate = 32000;
}
else
else //ranges 32001-39999 (in settings going up from 32000) and 48000-max (default high) -> set to 48000 hz
{
AISetDSPSampleRate(AI_SAMPLERATE_48KHZ);
*new_rate = 48000;
+3
View File
@@ -133,6 +133,9 @@ static void *sl_init(const char *device, unsigned rate, unsigned latency,
sl->buf_count = (latency * 4 * rate + 500) / 1000;
sl->buf_count = (sl->buf_count + sl->buf_size / 2) / sl->buf_size;
if (sl->buf_count < 2)
sl->buf_count = 2;
sl->buffer = (uint8_t**)calloc(sizeof(uint8_t*), sl->buf_count);
if (!sl->buffer)
goto error;
+137 -74
View File
@@ -1,4 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2018 - misson20000
* Copyright (C) 2018 - m4xw
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@@ -17,56 +19,74 @@
#include <malloc.h>
#include <stdint.h>
#include<libtransistor/nx.h>
#include "switch_audio_compat.h"
#include "../audio_driver.h"
#include "../../verbosity.h"
#ifdef HAVE_LIBNX
#define BUFFER_COUNT 5
#else
#define BUFFER_COUNT 3
#endif
static const int sample_rate = 48000;
static const int max_num_samples = sample_rate;
static const int num_channels = 2;
static const size_t sample_buffer_size = ((max_num_samples * num_channels * sizeof(uint16_t)) + 0xfff) & ~0xfff;
/* don't think this can be in mapped memory, since samples get DMA'd out of it */
static uint16_t __attribute__((aligned(0x1000))) sample_buffer_1[sample_buffer_size/sizeof(uint16_t)];
static uint16_t __attribute__((aligned(0x1000))) sample_buffer_2[sample_buffer_size/sizeof(uint16_t)];
static uint16_t __attribute__((aligned(0x1000))) sample_buffer_3[sample_buffer_size/sizeof(uint16_t)];
static uint16_t *sample_buffers[3] = {sample_buffer_1, sample_buffer_2, sample_buffer_3};
typedef struct
{
audio_output_t output;
handle_t event;
audio_output_buffer_t buffers[3];
audio_output_buffer_t *current_buffer;
bool blocking;
bool is_paused;
uint64_t last_append;
unsigned latency;
compat_audio_out_buffer buffers[BUFFER_COUNT];
compat_audio_out_buffer *current_buffer;
#ifndef HAVE_LIBNX
audio_output_t output;
handle_t event;
#endif
} switch_audio_t;
static uint32_t switch_audio_data_size(void)
{
#ifdef HAVE_LIBNX
static const int framerate = 1000 / 30;
static const int samplecount = (sample_rate / framerate);
return (samplecount * num_channels * sizeof(uint16_t));
#else
return sample_buffer_size;
#endif
}
static size_t switch_audio_buffer_size(void *data)
{
(void) data;
#ifdef HAVE_LIBNX
return (switch_audio_data_size() + 0xfff) & ~0xfff;
#else
return sample_buffer_size;
#endif
}
static ssize_t switch_audio_write(void *data, const void *buf, size_t size)
{
size_t to_write = size;
switch_audio_t *swa = (switch_audio_t*) data;
#if 0
RARCH_LOG("write %ld samples\n", size/sizeof(uint16_t));
#endif
if (!swa)
return -1;
if (!swa->current_buffer)
{
uint32_t num;
if (audio_ipc_output_get_released_buffer(&swa->output, &num, &swa->current_buffer) != RESULT_OK)
if (switch_audio_ipc_output_get_released_buffer(swa, num) != 0)
{
RARCH_LOG("Failed to get released buffer?\n");
return -1;
}
#if 0
RARCH_LOG("got buffer, num %d, ptr %p\n", num, swa->current_buffer);
#endif
if (num < 1)
swa->current_buffer = NULL;
@@ -78,47 +98,46 @@ static ssize_t switch_audio_write(void *data, const void *buf, size_t size)
while(swa->current_buffer == NULL)
{
uint32_t num;
uint32_t handle_idx;
uint32_t handle_idx = 0;
num = 0;
#ifdef HAVE_LIBNX
if (audoutWaitPlayFinish(&swa->current_buffer, &num, U64_MAX) != 0) { }
#else
svcWaitSynchronization(&handle_idx, &swa->event, 1, 33333333);
svcResetSignal(swa->event);
if (audio_ipc_output_get_released_buffer(&swa->output, &num, &swa->current_buffer) != RESULT_OK)
if (switch_audio_ipc_output_get_released_buffer(swa, num) != 0)
return -1;
#endif
}
} else {
}
else
/* no buffer, nonblocking... */
return 0;
}
}
swa->current_buffer->data_size = 0;
}
if (to_write > sample_buffer_size - swa->current_buffer->data_size)
to_write = sample_buffer_size - swa->current_buffer->data_size;
if (to_write > switch_audio_buffer_size(NULL) - swa->current_buffer->data_size)
to_write = switch_audio_buffer_size(NULL) - swa->current_buffer->data_size;
#ifndef HAVE_LIBNX
memcpy(((uint8_t*) swa->current_buffer->sample_data) + swa->current_buffer->data_size, buf, to_write);
#else
memcpy(((uint8_t*) swa->current_buffer->buffer) + swa->current_buffer->data_size, buf, to_write);
#endif
swa->current_buffer->data_size += to_write;
swa->current_buffer->buffer_size = sample_buffer_size;
swa->current_buffer->buffer_size = switch_audio_buffer_size(NULL);
if (swa->current_buffer->data_size > (48000*swa->latency)/1000)
if (swa->current_buffer->data_size > (48000 * swa->latency) / 1000)
{
result_t r = audio_ipc_output_append_buffer(&swa->output, swa->current_buffer);
if (r != RESULT_OK)
{
RARCH_ERR("failed to append buffer: 0x%x\n", r);
return -1;
}
if (switch_audio_ipc_output_append_buffer(swa, swa->current_buffer) != 0)
return -1;
swa->current_buffer = NULL;
}
#if 0
RARCH_LOG("submitted %ld samples, %ld samples since last submit\n",
to_write/num_channels/sizeof(uint16_t),
(svcGetSystemTick() - swa->last_append) * sample_rate / 19200000);
#endif
swa->last_append = svcGetSystemTick();
return to_write;
@@ -130,25 +149,32 @@ static bool switch_audio_stop(void *data)
if (!swa)
return false;
if(!swa->is_paused) {
if(audio_ipc_output_stop(&swa->output) != RESULT_OK)
/* TODO/FIXME - fix libnx codepath */
#ifndef HAVE_LIBNX
if (!swa->is_paused)
if (switch_audio_ipc_output_stop(swa) != 0)
return false;
}
swa->is_paused = true;
#endif
return true;
}
static bool switch_audio_start(void *data, bool is_shutdown)
{
switch_audio_t *swa = (switch_audio_t*) data;
if (!swa)
return false;
if(swa->is_paused) {
if (audio_ipc_output_start(&swa->output) != RESULT_OK)
/* TODO/FIXME - fix libnx codepath */
#ifndef HAVE_LIBNX
if (swa->is_paused)
if (switch_audio_ipc_output_start(swa) != 0)
return false;
}
swa->is_paused = false;
#endif
return true;
}
@@ -164,8 +190,22 @@ static void switch_audio_free(void *data)
{
switch_audio_t *swa = (switch_audio_t*) data;
if (!swa)
return;
#ifdef HAVE_LIBNX
if (!swa->is_paused)
audoutStopAudioOut();
audoutExit();
int i;
for (i = 0; i < BUFFER_COUNT; i++)
free(swa->buffers[i].buffer);
#else
audio_ipc_output_close(&swa->output);
audio_ipc_finalize();
#endif
free(swa);
}
@@ -194,11 +234,10 @@ static void switch_audio_set_nonblock_state(void *data, bool state)
}
static void *switch_audio_init(const char *device,
unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_rate)
unsigned rate, unsigned latency,
unsigned block_frames,
unsigned *new_rate)
{
result_t r;
unsigned i;
char names[8][0x20];
uint32_t num_names = 0;
@@ -207,12 +246,14 @@ static void *switch_audio_init(const char *device,
if (!swa)
return NULL;
r = audio_ipc_init();
if (r != RESULT_OK)
if (switch_audio_ipc_init() != 0)
goto fail;
if (audio_ipc_list_outputs(&names[0], 8, &num_names) != RESULT_OK)
#ifdef HAVE_LIBNX
if (audoutStartAudioOut() != 0)
goto fail;
#else
if (audio_ipc_list_outputs(&names[0], 8, &num_names) != 0)
goto fail_audio_ipc;
if (num_names != 1)
@@ -221,7 +262,7 @@ static void *switch_audio_init(const char *device,
goto fail_audio_ipc;
}
if (audio_ipc_open_output(names[0], &swa->output) != RESULT_OK)
if (audio_ipc_open_output(names[0], &swa->output) != 0)
goto fail_audio_ipc;
if (swa->output.sample_rate != sample_rate)
@@ -244,48 +285,70 @@ static void *switch_audio_init(const char *device,
goto fail_audio_output;
}
if (audio_ipc_output_register_buffer_event(&swa->output, &swa->event) != RESULT_OK)
if (audio_ipc_output_register_buffer_event(&swa->output, &swa->event) != 0)
goto fail_audio_output;
#endif
swa->blocking = block_frames;
*new_rate = swa->output.sample_rate;
for(i = 0; i < 3; i++)
for (i = 0; i < BUFFER_COUNT; i++)
{
swa->buffers[i].ptr = &swa->buffers[i].sample_data;
swa->buffers[i].sample_data = sample_buffers[i];
swa->buffers[i].buffer_size = sample_buffer_size;
swa->buffers[i].data_size = sample_buffer_size;
swa->buffers[i].unknown = 0;
swa->buffers[i].buffer_size = switch_audio_buffer_size(NULL);
swa->buffers[i].data_size = switch_audio_data_size();
if (audio_ipc_output_append_buffer(&swa->output, &swa->buffers[i]) != RESULT_OK)
#ifdef HAVE_LIBNX
swa->buffers[i].next = NULL; /* Unused */
swa->buffers[i].data_offset = 0;
swa->buffers[i].buffer = memalign(0x1000, switch_audio_buffer_size(NULL));
if (swa->buffers[i].buffer == NULL)
goto fail_audio_output;
memset(swa->buffers[i].buffer, 0, switch_audio_buffer_size(NULL));
#else
swa->buffers[i].ptr = &swa->buffers[i].sample_data;
swa->buffers[i].unknown = 0;
swa->buffers[i].sample_data = alloc_pages(sample_buffer_size, switch_audio_buffer_size(NULL), NULL);
if (swa->buffers[i].sample_data == NULL)
goto fail_audio_output;
#endif
if (switch_audio_ipc_output_append_buffer(swa, &swa->buffers[i]) != 0)
goto fail_audio_output;
}
#ifdef HAVE_LIBNX
*new_rate = audoutGetSampleRate();
#else
*new_rate = swa->output.sample_rate;
#endif
swa->current_buffer = NULL;
swa->latency = latency;
swa->last_append = svcGetSystemTick();
swa->blocking = block_frames;
swa->is_paused = true;
RARCH_LOG("[Audio]: Audio initialized\n");
return swa;
fail_audio_output:
/* TODO/FIXME - fix libnx codepath */
#ifndef HAVE_LIBNX
audio_ipc_output_close(&swa->output);
#endif
fail_audio_ipc:
/* TODO/FIXME - fix libnx codepath */
#ifndef HAVE_LIBNX
audio_ipc_finalize();
#endif
fail:
free(swa);
if (swa)
free(swa);
return NULL;
}
static size_t switch_audio_buffer_size(void *data)
{
(void) data;
return sample_buffer_size;
}
audio_driver_t audio_switch = {
switch_audio_init,
switch_audio_write,
+93
View File
@@ -0,0 +1,93 @@
#ifndef _SWITCH_AUDIO_COMPAT_H
#define _SWITCH_AUDIO_COMPAT_H
#ifdef HAVE_LIBNX
#include <switch.h>
#else
#include <libtransistor/nx.h>
#endif
#ifdef HAVE_LIBNX
/* libnx definitions */
/* threading */
typedef Mutex compat_mutex;
typedef Thread compat_thread;
typedef CondVar compat_condvar;
#define compat_thread_create(thread, func, data, stack_size, prio, cpu) \
threadCreate(thread, func, data, stack_size, prio, cpu)
#define compat_thread_start(thread) \
threadStart(thread)
#define compat_thread_join(thread) \
threadWaitForExit(thread)
#define compat_thread_close(thread) \
threadClose(thread)
#define compat_mutex_create(mutex) \
mutexInit(mutex)
#define compat_mutex_lock(mutex) \
mutexLock(mutex)
#define compat_mutex_unlock(mutex) \
mutexUnlock(mutex)
#define compat_condvar_create(condvar) \
condvarInit(condvar)
#define compat_condvar_wait(condvar, mutex) \
condvarWait(condvar, mutex)
#define compat_condvar_wake_all(condvar) \
condvarWakeAll(condvar)
/* audio */
typedef AudioOutBuffer compat_audio_out_buffer;
#define switch_audio_ipc_init audoutInitialize
#define switch_audio_ipc_finalize audoutExit
#define switch_audio_ipc_output_get_released_buffer(a, b) audoutGetReleasedAudioOutBuffer(&a->current_buffer, &b)
#define switch_audio_ipc_output_append_buffer(a, b) audoutAppendAudioOutBuffer(b)
#define switch_audio_ipc_output_stop(a) audoutStopAudioOut()
#define switch_audio_ipc_output_start(a) audoutStartAudioOut()
#else
/* libtransistor definitions */
typedef result_t Result;
#define R_FAILED(r) ((r) != RESULT_OK)
/* threading */
typedef trn_mutex_t compat_mutex;
typedef trn_thread_t compat_thread;
typedef trn_condvar_t compat_condvar;
#define compat_thread_create(thread, func, data, stack_size, prio, cpu) \
trn_thread_create(thread, func, data, prio, cpu, stack_size, NULL)
#define compat_thread_start(thread) \
trn_thread_start(thread)
#define compat_thread_join(thread) \
trn_thread_join(thread, -1)
#define compat_thread_close(thread) \
trn_thread_destroy(thread)
#define compat_mutex_create(mutex) \
trn_mutex_create(mutex)
#define compat_mutex_lock(mutex) \
trn_mutex_lock(mutex)
#define compat_mutex_unlock(mutex) \
trn_mutex_unlock(mutex)
#define compat_condvar_create(condvar) \
trn_condvar_create(condvar)
#define compat_condvar_wait(condvar, mutex) \
trn_condvar_wait(condvar, mutex, -1)
#define compat_condvar_wake_all(condvar) \
trn_condvar_signal(condvar, -1)
/* audio */
typedef audio_output_buffer_t compat_audio_out_buffer;
#define switch_audio_ipc_init audio_ipc_init
#define switch_audio_ipc_finalize audio_ipc_finalize
#define switch_audio_ipc_output_get_released_buffer(a, b) audio_ipc_output_get_released_buffer(&a->output, &b, &a->current_buffer)
#define switch_audio_ipc_output_append_buffer(a, b) audio_ipc_output_append_buffer(&a->output, b)
#define switch_audio_ipc_output_stop(a) audio_ipc_output_stop(&a->output)
#define switch_audio_ipc_output_start(a) audio_ipc_output_start(&a->output)
#endif
#endif
+448
View File
@@ -0,0 +1,448 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2018 - misson20000
* Copyright (C) 2018 - m4xw
* Copyright (C) 2018 - lifajucejo
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdint.h>
#include <sys/unistd.h>
#ifdef HAVE_LIBNX
#include <switch.h>
#else
#include <libtransistor/nx.h>
#endif
#include <queues/fifo_queue.h>
#include "../audio_driver.h"
#include "../../verbosity.h"
#include "../../tasks/tasks_internal.h"
#include "switch_audio_compat.h"
static const size_t thread_stack_size = 1024 * 8;
static const int thread_preferred_cpu = 2;
static const int channel_count = 2;
static const size_t sample_size = sizeof(uint16_t);
static const size_t frame_size = channel_count * sample_size;
#define AUDIO_BUFFER_COUNT 2
typedef struct
{
fifo_buffer_t* fifo;
compat_mutex fifoLock;
compat_condvar cond;
compat_mutex condLock;
size_t fifoSize;
volatile bool running;
bool nonblocking;
bool is_paused;
compat_audio_out_buffer buffers[AUDIO_BUFFER_COUNT];
compat_thread thread;
unsigned latency;
uint32_t sampleRate;
#ifndef HAVE_LIBNX
audio_output_t output;
handle_t event;
#endif
} switch_thread_audio_t;
static void mainLoop(void* data)
{
Result rc;
uint32_t released_out_count = 0;
compat_audio_out_buffer *released_out_buffer = NULL;
switch_thread_audio_t *swa = (switch_thread_audio_t*)data;
if (!swa)
return;
RARCH_LOG("[Audio]: start mainLoop cpu %u tid %u\n", svcGetCurrentProcessorNumber(), swa->thread.handle);
while (swa->running)
{
size_t buf_avail, avail, to_write;
if (!released_out_buffer)
{
#ifdef HAVE_LIBNX
rc = audoutWaitPlayFinish(&released_out_buffer, &released_out_count, U64_MAX);
#else
uint32_t handle_idx = 0;
svcWaitSynchronization(&handle_idx, &swa->event, 1, 33333333);
svcResetSignal(swa->event);
rc = audio_ipc_output_get_released_buffer(&swa->output, &released_out_count, &released_out_buffer);
#endif
if (R_FAILED(rc))
{
swa->running = false;
RARCH_LOG("[Audio]: audoutGetReleasedAudioOutBuffer failed: %d\n", (int)rc);
break;
}
released_out_buffer->data_size = 0;
}
buf_avail = released_out_buffer->buffer_size - released_out_buffer->data_size;
compat_mutex_lock(&swa->fifoLock);
avail = fifo_read_avail(swa->fifo);
to_write = MIN(avail, buf_avail);
if (to_write > 0)
{
uint8_t *base;
#ifdef HAVE_LIBNX
base = (uint8_t*) released_out_buffer->buffer;
#else
base = (uint8_t*) released_out_buffer->sample_data;
#endif
fifo_read(swa->fifo, base + released_out_buffer->data_size, to_write);
}
compat_mutex_unlock(&swa->fifoLock);
compat_condvar_wake_all(&swa->cond);
released_out_buffer->data_size += to_write;
if (released_out_buffer->data_size >= released_out_buffer->buffer_size / 2)
{
rc = switch_audio_ipc_output_append_buffer(swa, released_out_buffer);
if (R_FAILED(rc))
{
RARCH_LOG("[Audio]: audoutAppendAudioOutBuffer failed: %d\n", (int)rc);
}
released_out_buffer = NULL;
}
else
svcSleepThread(16000000); /* 16ms */
}
}
static void *switch_thread_audio_init(const char *device, unsigned rate, unsigned latency, unsigned block_frames, unsigned *new_rate)
{
Result rc;
unsigned i;
uint32_t prio;
char names[8][0x20];
uint32_t num_names = 0;
switch_thread_audio_t *swa = (switch_thread_audio_t *)calloc(1, sizeof(*swa));
if (!swa)
return NULL;
swa->running = true;
swa->nonblocking = true;
swa->is_paused = true;
swa->latency = MAX(latency, 8);
rc = switch_audio_ipc_init();
if (R_FAILED(rc))
{
RARCH_LOG("[Audio]: audio init failed %d\n", (int)rc);
free(swa);
return NULL;
}
#ifdef HAVE_LIBNX
rc = audoutStartAudioOut();
if (R_FAILED(rc))
{
RARCH_LOG("[Audio]: audio start init failed: %d\n", (int)rc);
goto fail_audio_ipc;
}
swa->sampleRate = audoutGetSampleRate();
#else
if (audio_ipc_list_outputs(&names[0], 8, &num_names) != RESULT_OK)
goto fail_audio_ipc;
if (num_names != 1)
{
RARCH_ERR("[Audio]: got back more than one AudioOut\n");
goto fail_audio_ipc;
}
if (audio_ipc_open_output(names[0], &swa->output) != RESULT_OK)
goto fail_audio_ipc;
swa->sampleRate = swa->output.sample_rate;
if (swa->output.num_channels != 2)
{
RARCH_ERR("expected %d channels, got %d\n", 2,
swa->output.num_channels);
goto fail_audio_output;
}
if (swa->output.sample_format != PCM_INT16)
{
RARCH_ERR("expected PCM_INT16, got %d\n", swa->output.sample_format);
goto fail_audio_output;
}
if (audio_ipc_output_register_buffer_event(&swa->output, &swa->event) != 0)
goto fail_audio_output;
#endif
*new_rate = swa->sampleRate;
swa->fifoSize = (swa->sampleRate * sample_size * swa->latency) / 1000;
for (i = 0; i < AUDIO_BUFFER_COUNT; i++)
{
#ifdef HAVE_LIBNX
swa->buffers[i].next = NULL; /* Unused */
swa->buffers[i].data_offset = 0;
swa->buffers[i].buffer_size = swa->fifoSize;
swa->buffers[i].data_size = swa->buffers[i].buffer_size;
swa->buffers[i].buffer = memalign(0x1000, swa->buffers[i].buffer_size);
if (swa->buffers[i].buffer == NULL)
goto fail;
memset(swa->buffers[i].buffer, 0, swa->buffers[i].buffer_size);
#else
swa->buffers[i].ptr = &swa->buffers[i].sample_data;
swa->buffers[i].unknown = 0;
swa->buffers[i].buffer_size = swa->fifoSize;
swa->buffers[i].data_size = swa->buffers[i].buffer_size;
swa->buffers[i].sample_data = alloc_pages(swa->buffers[i].buffer_size, swa->buffers[i].buffer_size, NULL);
if (swa->buffers[i].sample_data == NULL)
goto fail_audio_output;
memset(swa->buffers[i].sample_data, 0, swa->buffers[i].buffer_size);
#endif
if (switch_audio_ipc_output_append_buffer(swa, &swa->buffers[i]) != 0)
goto fail_audio_output;
}
compat_mutex_create(&swa->fifoLock);
swa->fifo = fifo_new(swa->fifoSize);
compat_condvar_create(&swa->cond);
RARCH_LOG("[Audio]: switch_thread_audio_init device %s requested rate %hu rate %hu latency %hu block_frames %hu fifoSize %lu\n",
device, rate, swa->sampleRate, swa->latency, block_frames, swa->fifoSize);
svcGetThreadPriority(&prio, 0xffff8000);
rc = compat_thread_create(&swa->thread, &mainLoop, (void*)swa, thread_stack_size, prio - 1, thread_preferred_cpu);
if (R_FAILED(rc))
{
RARCH_LOG("[Audio]: thread creation failed create %u\n", swa->thread.handle);
swa->running = false;
return NULL;
}
if (R_FAILED(compat_thread_start(&swa->thread)))
{
RARCH_LOG("[Audio]: thread creation failed start %u\n", swa->thread.handle);
compat_thread_close(&swa->thread);
swa->running = false;
return NULL;
}
return swa;
fail_audio_output:
#ifndef HAVE_LIBNX
audio_ipc_output_close(&swa->output);
#endif
fail_audio_ipc:
switch_audio_ipc_finalize();
fail:
free(swa); // freeing a null ptr is valid
return NULL;
}
static bool switch_thread_audio_start(void *data, bool is_shutdown)
{
/* RARCH_LOG("[Audio]: switch_thread_audio_start\n"); */
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (!swa)
return false;
swa->is_paused = false;
return true;
}
static bool switch_thread_audio_stop(void *data)
{
switch_thread_audio_t* swa = (switch_thread_audio_t*)data;
if (!swa)
return false;
swa->is_paused = true;
return true;
}
static void switch_thread_audio_free(void *data)
{
unsigned i;
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (!swa)
return;
if (swa->running)
{
swa->running = false;
compat_thread_join(&swa->thread);
compat_thread_close(&swa->thread);
}
switch_audio_ipc_output_stop(swa);
switch_audio_ipc_finalize();
if (swa->fifo)
{
fifo_free(swa->fifo);
swa->fifo = NULL;
}
for (i = 0; i < ARRAY_SIZE(swa->buffers); i++)
{
#ifdef HAVE_LIBNX
free(swa->buffers[i].buffer);
#else
free_pages(swa->buffers[i].sample_data);
#endif
}
free(swa);
swa = NULL;
}
static ssize_t switch_thread_audio_write(void *data, const void *buf, size_t size)
{
size_t avail, written;
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (!swa || !swa->running)
return 0;
if (swa->nonblocking)
{
compat_mutex_lock(&swa->fifoLock);
avail = fifo_write_avail(swa->fifo);
written = MIN(avail, size);
if (written > 0)
fifo_write(swa->fifo, buf, written);
compat_mutex_unlock(&swa->fifoLock);
}
else
{
written = 0;
while (written < size && swa->running)
{
compat_mutex_lock(&swa->fifoLock);
avail = fifo_write_avail(swa->fifo);
if (avail == 0)
{
compat_mutex_unlock(&swa->fifoLock);
compat_mutex_lock(&swa->condLock);
if (swa->running)
compat_condvar_wait(&swa->cond, &swa->condLock);
compat_mutex_unlock(&swa->condLock);
}
else
{
size_t write_amt = MIN(size - written, avail);
fifo_write(swa->fifo, (const char*)buf + written, write_amt);
compat_mutex_unlock(&swa->fifoLock);
written += write_amt;
}
}
}
return written;
}
static bool switch_thread_audio_alive(void *data)
{
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (!swa)
return false;
return !swa->is_paused;
}
static void switch_thread_audio_set_nonblock_state(void *data, bool state)
{
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (swa)
swa->nonblocking = state;
}
static bool switch_thread_audio_use_float(void *data)
{
(void)data;
return false;
}
static size_t switch_thread_audio_write_avail(void *data)
{
size_t val;
switch_thread_audio_t* swa = (switch_thread_audio_t*)data;
compat_mutex_lock(&swa->fifoLock);
val = fifo_write_avail(swa->fifo);
compat_mutex_unlock(&swa->fifoLock);
return val;
}
size_t switch_thread_audio_buffer_size(void *data)
{
switch_thread_audio_t *swa = (switch_thread_audio_t *)data;
if (!swa)
return 0;
return swa->fifoSize;
}
audio_driver_t audio_switch_thread = {
switch_thread_audio_init,
switch_thread_audio_write,
switch_thread_audio_stop,
switch_thread_audio_start,
switch_thread_audio_alive,
switch_thread_audio_set_nonblock_state,
switch_thread_audio_free,
switch_thread_audio_use_float,
"switch_thread",
NULL, /* device_list_new */
NULL, /* device_list_free */
switch_thread_audio_write_avail,
switch_thread_audio_buffer_size
};
/* vim: set ts=3 sw=3 */
+1 -1
View File
@@ -84,7 +84,7 @@ static void* ax_audio_init(const char* device, unsigned rate, unsigned latency,
u16 setup_buf[0x30] = {0};
setup_buf[0x25] = 2; /* we request 2 channels */
AXInitParams init = {AX_INIT_RENDERER_48KHZ, 0, 0};
AXVoiceVeData ve = {0xF000, 0};
AXVoiceVeData ve = {0x8000, 0};
ax_audio_t* ax = (ax_audio_t*)calloc(1, sizeof(ax_audio_t));
if (!ax)
+9 -9
View File
@@ -70,7 +70,7 @@ typedef struct video4linux
char dev_name[255];
} video4linux_t;
static int xioctl(int fd, int request, void *args)
static int xioctl(int fd, unsigned long request, void *args)
{
int r;
@@ -91,7 +91,7 @@ static bool init_mmap(void *data)
req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
req.memory = V4L2_MEMORY_MMAP;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_REQBUFS, &req) == -1)
if (xioctl(v4l->fd, VIDIOC_REQBUFS, &req) == -1)
{
if (errno == EINVAL)
RARCH_ERR("[V4L2]: %s does not support memory mapping.\n", v4l->dev_name);
@@ -122,7 +122,7 @@ static bool init_mmap(void *data)
buf.memory = V4L2_MEMORY_MMAP;
buf.index = v4l->n_buffers;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYBUF, &buf) == -1)
if (xioctl(v4l->fd, VIDIOC_QUERYBUF, &buf) == -1)
{
RARCH_ERR("[V4L2]: Error - xioctl VIDIOC_QUERYBUF.\n");
return false;
@@ -152,7 +152,7 @@ static bool init_device(void *data)
struct v4l2_cropcap cropcap = {0};
video4linux_t *v4l = (video4linux_t*)data;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QUERYCAP, &cap) < 0)
if (xioctl(v4l->fd, VIDIOC_QUERYCAP, &cap) < 0)
{
if (errno == EINVAL)
RARCH_ERR("[V4L2]: %s is no V4L2 device.\n", v4l->dev_name);
@@ -176,7 +176,7 @@ static bool init_device(void *data)
cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_CROPCAP, &cropcap) == 0)
if (xioctl(v4l->fd, VIDIOC_CROPCAP, &cropcap) == 0)
{
crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
crop.c = cropcap.defrect;
@@ -190,7 +190,7 @@ static bool init_device(void *data)
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_NONE;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_S_FMT, &fmt) < 0)
if (xioctl(v4l->fd, VIDIOC_S_FMT, &fmt) < 0)
{
RARCH_ERR("[V4L2]: Error - VIDIOC_S_FMT\n");
return false;
@@ -248,7 +248,7 @@ static bool v4l_start(void *data)
buf.memory = V4L2_MEMORY_MMAP;
buf.index = i;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
if (xioctl(v4l->fd, VIDIOC_QBUF, &buf) == -1)
{
RARCH_ERR("[V4L2]: Error - VIDIOC_QBUF.\n");
return false;
@@ -364,7 +364,7 @@ static bool preprocess_image(void *data)
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
if (xioctl(v4l->fd, (uint8_t)VIDIOC_DQBUF, &buf) == -1)
if (xioctl(v4l->fd, VIDIOC_DQBUF, &buf) == -1)
{
switch (errno)
{
@@ -384,7 +384,7 @@ static bool preprocess_image(void *data)
scaler_ctx_scale_direct(ctx, v4l->buffer_output, (const uint8_t*)v4l->buffers[buf.index].start);
if (xioctl(v4l->fd, (uint8_t)VIDIOC_QBUF, &buf) == -1)
if (xioctl(v4l->fd, VIDIOC_QBUF, &buf) == -1)
RARCH_ERR("[V4L2]: VIDIOC_QBUF\n");
return true;
+418 -583
View File
File diff suppressed because it is too large. Load diff
+17 -1
View File
@@ -38,6 +38,20 @@ End of setup
#define CHEEVOS_TAG "[CHEEVOS]: "
#ifdef CHEEVOS_VERBOSE
#define CHEEVOS_LOG RARCH_LOG
#define CHEEVOS_ERR RARCH_ERR
#else
void cheevos_log(const char *fmt, ...);
#define CHEEVOS_LOG cheevos_log
#define CHEEVOS_ERR cheevos_log
#endif
typedef struct cheevos_ctx_desc
{
unsigned idx;
@@ -64,7 +78,7 @@ typedef enum
CHEEVOS_CONSOLE_PLAYSTATION = 12,
CHEEVOS_CONSOLE_ATARI_LYNX = 13,
CHEEVOS_CONSOLE_NEOGEO_POCKET = 14,
CHEEVOS_CONSOLE_XBOX_360 = 15,
CHEEVOS_CONSOLE_GAME_GEAR = 15,
CHEEVOS_CONSOLE_GAMECUBE = 16,
CHEEVOS_CONSOLE_ATARI_JAGUAR = 17,
CHEEVOS_CONSOLE_NINTENDO_DS = 18,
@@ -139,6 +153,8 @@ bool cheevos_get_support_cheevos(void);
cheevos_console_t cheevos_get_console(void);
extern bool cheevos_loaded;
extern bool cheevos_hardcore_active;
extern bool cheevos_hardcore_paused;
extern int cheats_are_enabled;
extern int cheats_were_enabled;
+1 -4
View File
@@ -65,7 +65,7 @@ static cheevos_cond_op_t cheevos_cond_parse_operator(const char** memaddr)
}
else
{
RARCH_ERR(CHEEVOS_TAG "unknown operator %c\n.", *str);
CHEEVOS_ERR(CHEEVOS_TAG "unknown operator %c\n.", *str);
op = CHEEVOS_COND_OP_EQUALS;
}
@@ -168,9 +168,6 @@ void cheevos_cond_parse_in_set(cheevos_cond_t* cond, const char* memaddr, unsign
if (index == which)
{
cheevos_cond_parse(cond, &memaddr);
#ifdef CHEEVOS_VERBOSE
/*cheevos_log_cond(cond);*/
#endif
cond++;
}
else
+1
View File
@@ -47,6 +47,7 @@ typedef struct
cheevos_cond_type_t type;
unsigned req_hits;
unsigned curr_hits;
char pause;
cheevos_var_t source;
cheevos_cond_op_t op;
+1 -18
View File
@@ -24,17 +24,6 @@
#include "../core.h"
#include "../verbosity.h"
static void STUB_LOG(const char *fmt, ...)
{
(void)fmt;
}
#ifdef CHEEVOS_VERBOSE
#define CHEEVOS_LOG RARCH_LOG
#else
#define CHEEVOS_LOG STUB_LOG
#endif
/*****************************************************************************
Parsing
*****************************************************************************/
@@ -191,12 +180,6 @@ void cheevos_var_patch_addr(cheevos_var_t* var, cheevos_console_t console)
var->value -= 0x2000;
}
}
else if (console == CHEEVOS_CONSOLE_NEOGEO_POCKET)
{
if (var->value >= 0x4000 && var->value <= 0x7fff)
CHEEVOS_LOG(CHEEVOS_TAG "NGP memory address %X adjusted to %X\n", var->value, var->value - 0x004000);
var->value -= 0x4000;
}
if (system->mmaps.num_descriptors != 0)
{
@@ -333,7 +316,7 @@ uint8_t* cheevos_var_get_memory(const cheevos_var_t* var)
meminfo.id = RETRO_MEMORY_RTC;
break;
default:
RARCH_ERR(CHEEVOS_TAG "invalid bank id: %s\n", var->bank_id);
CHEEVOS_ERR(CHEEVOS_TAG "invalid bank id: %s\n", var->bank_id);
break;
}
+282 -135
View File
@@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2015-2017 - Andrés Suárez
* Copyright (C) 2015-2017 - Andres Suarez
* Copyright (C) 2016-2017 - Brad Parker
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@@ -44,6 +44,12 @@
#include "cheevos/var.h"
#endif
#ifdef HAVE_DISCORD
#include "discord/discord.h"
#endif
#include "midi/midi_driver.h"
#ifdef HAVE_MENU
#include "menu/menu_driver.h"
#include "menu/menu_content.h"
@@ -87,10 +93,13 @@
#include "retroarch.h"
#include "configuration.h"
#include "input/input_remapping.h"
#include "version.h"
#define DEFAULT_NETWORK_CMD_PORT 55355
#define STDIN_BUF_SIZE 4096
extern bool discord_is_inited;
enum cmd_source_t
{
CMD_NONE = 0,
@@ -124,6 +133,8 @@ struct command
#endif
};
static bool command_version(const char *arg);
#if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS)
static bool command_read_ram(const char *arg);
static bool command_write_ram(const char *arg);
@@ -131,6 +142,7 @@ static bool command_write_ram(const char *arg);
static const struct cmd_action_map action_map[] = {
{ "SET_SHADER", command_set_shader, "<shader path>" },
{ "VERSION", command_version, "No argument"},
#if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS)
{ "READ_CORE_RAM", command_read_ram, "<address> <number of bytes>" },
{ "WRITE_CORE_RAM", command_write_ram, "<address> <byte1> <byte2> ..." },
@@ -140,6 +152,8 @@ static const struct cmd_action_map action_map[] = {
static const struct cmd_map map[] = {
{ "FAST_FORWARD", RARCH_FAST_FORWARD_KEY },
{ "FAST_FORWARD_HOLD", RARCH_FAST_FORWARD_HOLD_KEY },
{ "SLOWMOTION", RARCH_SLOWMOTION_KEY },
{ "SLOWMOTION_HOLD", RARCH_SLOWMOTION_HOLD_KEY },
{ "LOAD_STATE", RARCH_LOAD_STATE_KEY },
{ "SAVE_STATE", RARCH_SAVE_STATE_KEY },
{ "FULLSCREEN_TOGGLE", RARCH_FULLSCREEN_TOGGLE_KEY },
@@ -147,7 +161,7 @@ static const struct cmd_map map[] = {
{ "STATE_SLOT_PLUS", RARCH_STATE_SLOT_PLUS },
{ "STATE_SLOT_MINUS", RARCH_STATE_SLOT_MINUS },
{ "REWIND", RARCH_REWIND },
{ "MOVIE_RECORD_TOGGLE", RARCH_MOVIE_RECORD_TOGGLE },
{ "BSV_RECORD_TOGGLE", RARCH_BSV_RECORD_TOGGLE },
{ "PAUSE_TOGGLE", RARCH_PAUSE_TOGGLE },
{ "FRAMEADVANCE", RARCH_FRAMEADVANCE },
{ "RESET", RARCH_RESET },
@@ -160,7 +174,6 @@ static const struct cmd_map map[] = {
{ "MUTE", RARCH_MUTE },
{ "OSK", RARCH_OSK },
{ "NETPLAY_GAME_WATCH", RARCH_NETPLAY_GAME_WATCH },
{ "SLOWMOTION", RARCH_SLOWMOTION },
{ "VOLUME_UP", RARCH_VOLUME_UP },
{ "VOLUME_DOWN", RARCH_VOLUME_DOWN },
{ "OVERLAY_NEXT", RARCH_OVERLAY_NEXT },
@@ -168,6 +181,7 @@ static const struct cmd_map map[] = {
{ "DISK_NEXT", RARCH_DISK_NEXT },
{ "DISK_PREV", RARCH_DISK_PREV },
{ "GRAB_MOUSE_TOGGLE", RARCH_GRAB_MOUSE_TOGGLE },
{ "UI_COMPANION_TOGGLE", RARCH_UI_COMPANION_TOGGLE },
{ "GAME_FOCUS_TOGGLE", RARCH_GAME_FOCUS_TOGGLE },
{ "MENU_TOGGLE", RARCH_MENU_TOGGLE },
{ "MENU_UP", RETRO_DEVICE_ID_JOYPAD_UP },
@@ -186,8 +200,7 @@ static struct sockaddr_storage lastcmd_net_source;
static socklen_t lastcmd_net_source_len;
#endif
#ifdef HAVE_CHEEVOS
#if defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING)
#if defined(HAVE_CHEEVOS) && (defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING))
static bool command_reply(const char * data, size_t len)
{
switch (lastcmd_source)
@@ -214,31 +227,19 @@ static bool command_reply(const char * data, size_t len)
return false;
}
#endif
#endif
bool command_set_shader(const char *arg)
{
char msg[256];
enum rarch_shader_type type = RARCH_SHADER_NONE;
struct video_shader *shader = menu_shader_get();
bool is_preset = false;
enum rarch_shader_type type = video_shader_get_type_from_ext(
path_get_extension(arg), &is_preset);
#ifdef HAVE_MENU
struct video_shader *shader = menu_shader_get();
#endif
switch (msg_hash_to_file_type(msg_hash_calculate(path_get_extension(arg))))
{
case FILE_TYPE_SHADER_GLSL:
case FILE_TYPE_SHADER_PRESET_GLSLP:
type = RARCH_SHADER_GLSL;
break;
case FILE_TYPE_SHADER_CG:
case FILE_TYPE_SHADER_PRESET_CGP:
type = RARCH_SHADER_CG;
break;
case FILE_TYPE_SHADER_SLANG:
case FILE_TYPE_SHADER_PRESET_SLANGP:
type = RARCH_SHADER_SLANG;
break;
default:
return false;
}
if (type == RARCH_SHADER_NONE)
return false;
snprintf(msg, sizeof(msg), "Shader: \"%s\"", arg);
runloop_msg_queue_push(msg, 1, 120, true);
@@ -247,33 +248,54 @@ bool command_set_shader(const char *arg)
arg);
retroarch_set_shader_preset(arg);
#ifdef HAVE_MENU
return menu_shader_manager_set_preset(shader, type, arg);
#else
return true;
#endif
}
static bool command_version(const char* arg)
{
char reply[256] = {0};
sprintf(reply, "%s\n", PACKAGE_VERSION);
#if defined(HAVE_CHEEVOS) && (defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING))
command_reply(reply, strlen(reply));
#endif
return true;
}
#if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS)
#define SMY_CMD_STR "READ_CORE_RAM"
static bool command_read_ram(const char *arg)
{
cheevos_var_t var;
unsigned i;
unsigned nbytes;
char reply[256];
const uint8_t * data = NULL;
char *reply_at = NULL;
char *reply = NULL;
const uint8_t * data = NULL;
char *reply_at = NULL;
unsigned int nbytes = 0;
unsigned int alloc_size = 0;
int addr = -1;
reply[0] = '\0';
if (sscanf(arg, "%x %d", &addr, &nbytes) != 2)
return true;
strlcpy(reply, "READ_CORE_RAM ", sizeof(reply));
reply_at = reply + strlen("READ_CORE_RAM ");
strlcpy(reply_at, arg, sizeof(reply)-strlen(reply));
alloc_size = 40 + nbytes * 3; /* We alloc more than needed, saving 20 bytes is not really relevant */
reply = (char*) malloc(alloc_size);
reply[0] = '\0';
reply_at = reply + sprintf(reply, SMY_CMD_STR " %x", addr);
var.value = addr;
var.value = strtoul(reply_at, (char**)&reply_at, 16);
cheevos_var_patch_addr(&var, cheevos_get_console());
data = cheevos_var_get_memory(&var);
data = cheevos_var_get_memory(&var);
if (data)
{
unsigned nbytes = strtol(reply_at, NULL, 10);
for (i=0;i<nbytes;i++)
sprintf(reply_at+3*i, " %.2X", data[i]);
reply_at[3*nbytes] = '\n';
@@ -284,13 +306,14 @@ static bool command_read_ram(const char *arg)
strlcpy(reply_at, " -1\n", sizeof(reply)-strlen(reply));
command_reply(reply, reply_at+strlen(" -1\n") - reply);
}
free(reply);
return true;
}
#undef SMY_CMD_STR
static bool command_write_ram(const char *arg)
{
int i;
cheevos_var_t var;
unsigned nbytes = 0;
uint8_t *data = NULL;
@@ -314,6 +337,7 @@ static bool command_write_ram(const char *arg)
}
#endif
#ifdef HAVE_COMMAND
static bool command_get_arg(const char *tok,
const char **arg, unsigned *index)
{
@@ -339,7 +363,7 @@ static bool command_get_arg(const char *tok,
if (str == tok)
{
const char *argument = str + strlen(action_map[i].str);
if (*argument != ' ')
if (*argument != ' ' && *argument != '\0')
return false;
if (arg)
@@ -354,6 +378,7 @@ static bool command_get_arg(const char *tok,
return false;
}
#endif
#if defined(HAVE_NETWORKING) && defined(HAVE_NETWORK_CMD) && defined(HAVE_COMMAND)
static bool command_network_init(command_t *handle, uint16_t port)
@@ -534,10 +559,10 @@ bool command_network_send(const char *cmd_)
}
free(command);
return ret;
#else
return false;
if (ret)
return true;
#endif
return false;
}
#ifdef HAVE_STDIN_CMD
@@ -1029,7 +1054,7 @@ static void command_event_init_controllers(void)
/* Ideally these checks shouldn't be required but if we always
* call core_set_controller_port_device input won't work on
* cores that don't set port information properly */
if (info && info->ports.size != 0 && i < info->ports.size)
if (info && info->ports.size != 0)
set_controller = true;
break;
default:
@@ -1043,7 +1068,7 @@ static void command_event_init_controllers(void)
break;
}
if (set_controller)
if (set_controller && info && i < info->ports.size)
{
pad.device = device;
pad.port = i;
@@ -1058,8 +1083,11 @@ static void command_event_deinit_core(bool reinit)
cheevos_unload();
#endif
RARCH_LOG("Unloading game..\n");
core_unload_game();
RARCH_LOG("Unloading core..\n");
core_unload();
RARCH_LOG("Unloading core symbols..\n");
core_uninit_symbols();
if (reinit)
@@ -1072,7 +1100,9 @@ static void command_event_deinit_core(bool reinit)
static void command_event_init_cheats(void)
{
bool allow_cheats = true;
settings_t *settings = config_get_ptr();
bool allow_cheats = true;
#ifdef HAVE_NETWORKING
allow_cheats &= !netplay_driver_ctl(
RARCH_NETPLAY_CTL_IS_DATA_INITED, NULL);
@@ -1082,7 +1112,12 @@ static void command_event_init_cheats(void)
if (!allow_cheats)
return;
/* TODO/FIXME - add some stuff here. */
cheat_manager_alloc_if_empty() ;
cheat_manager_load_game_specific_cheats() ;
if (settings != NULL && settings->bools.apply_cheats_after_load)
cheat_manager_apply_cheats();
}
static void command_event_load_auto_state(void)
@@ -1101,7 +1136,7 @@ static void command_event_load_auto_state(void)
#endif
#ifdef HAVE_CHEEVOS
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
if (cheevos_hardcore_active)
goto error;
#endif
@@ -1288,8 +1323,8 @@ static bool command_event_init_core(enum rarch_core_type *data)
if (!core_load(settings->uints.input_poll_type_behavior))
return false;
rarch_ctl(RARCH_CTL_SET_FRAME_LIMIT, NULL);
rarch_ctl(RARCH_CTL_SET_FRAME_LIMIT, NULL);
return true;
}
@@ -1310,7 +1345,9 @@ static void command_event_restore_default_shader_preset(void)
static void command_event_restore_remaps(void)
{
if (rarch_ctl(RARCH_CTL_IS_REMAPS_GAME_ACTIVE, NULL))
if (rarch_ctl(RARCH_CTL_IS_REMAPS_CORE_ACTIVE, NULL) ||
rarch_ctl(RARCH_CTL_IS_REMAPS_CONTENT_DIR_ACTIVE, NULL) ||
rarch_ctl(RARCH_CTL_IS_REMAPS_GAME_ACTIVE, NULL))
input_remapping_set_defaults(true);
}
@@ -1339,7 +1376,7 @@ static bool command_event_save_auto_state(void)
goto error;
#ifdef HAVE_CHEEVOS
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
if (cheevos_hardcore_active)
goto error;
#endif
@@ -1400,7 +1437,6 @@ static bool command_event_save_config(
static bool command_event_save_core_config(void)
{
char msg[128];
bool ret = false;
bool found_path = false;
bool overrides_active = false;
const char *core_path = NULL;
@@ -1507,7 +1543,7 @@ static bool command_event_save_core_config(void)
free(config_dir);
free(config_name);
free(config_path);
return ret;
return true;
}
/**
@@ -1533,6 +1569,7 @@ static void command_event_save_current_config(enum override_type type)
break;
case OVERRIDE_GAME:
case OVERRIDE_CORE:
case OVERRIDE_CONTENT_DIR:
if (config_save_overrides(type))
{
strlcpy(msg, msg_hash_to_str(MSG_OVERRIDES_SAVED_SUCCESSFULLY), sizeof(msg));
@@ -1688,14 +1725,12 @@ static bool command_event_resize_windowed_scale(void)
}
void command_playlist_push_write(
void *data,
playlist_t *playlist,
const char *path,
const char *label,
const char *core_path,
const char *core_name)
{
playlist_t *playlist = (playlist_t*)data;
if (!playlist)
return;
@@ -1712,33 +1747,29 @@ void command_playlist_push_write(
}
void command_playlist_update_write(
void *data,
playlist_t *plist,
size_t idx,
const char *core_display_name,
const char *path,
const char *label,
const char *path)
const char *core_path,
const char *core_display_name,
const char *crc32,
const char *db_name)
{
playlist_t *plist = (playlist_t*)data;
playlist_t *playlist = NULL;
playlist_t *playlist = plist ? plist : playlist_get_cached();
if (plist)
playlist = plist;
#ifdef HAVE_MENU
else
menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist);
#endif
if (!playlist)
return;
playlist_update(
playlist,
idx,
label,
NULL,
path,
label,
core_path,
core_display_name,
NULL,
NULL);
crc32,
db_name);
playlist_write_file(playlist);
}
@@ -1753,8 +1784,10 @@ void command_playlist_update_write(
**/
bool command_event(enum event_command cmd, void *data)
{
settings_t *settings = config_get_ptr();
bool boolean = false;
#ifdef HAVE_DISCORD
static bool discord_inited = false;
#endif
bool boolean = false;
switch (cmd)
{
@@ -1804,10 +1837,11 @@ bool command_event(enum event_command cmd, void *data)
return false;
#endif
libretro_get_system_info(
if (!libretro_get_system_info(
core_path,
system,
&system_info->load_no_content);
&system_info->load_no_content))
return false;
info_find.path = core_path;
if (!core_info_load(&info_find))
@@ -1820,11 +1854,18 @@ bool command_event(enum event_command cmd, void *data)
}
break;
case CMD_EVENT_LOAD_CORE:
command_event(CMD_EVENT_LOAD_CORE_PERSIST, NULL);
{
bool success = command_event(CMD_EVENT_LOAD_CORE_PERSIST, NULL);
(void)success;
#ifndef HAVE_DYNAMIC
command_event(CMD_EVENT_QUIT, NULL);
#else
if (!success)
return false;
#endif
break;
}
case CMD_EVENT_LOAD_STATE:
/* Immutable - disallow savestate load when
* we absolutely cannot change game state. */
@@ -1832,20 +1873,24 @@ bool command_event(enum event_command cmd, void *data)
return false;
#ifdef HAVE_CHEEVOS
{
settings_t *settings = config_get_ptr();
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
return false;
}
if (cheevos_hardcore_active)
return false;
#endif
return command_event_main_state(cmd);
if (!command_event_main_state(cmd))
return false;
break;
case CMD_EVENT_UNDO_LOAD_STATE:
return command_event_main_state(cmd);
if (!command_event_main_state(cmd))
return false;
break;
case CMD_EVENT_UNDO_SAVE_STATE:
return command_event_main_state(cmd);
if (!command_event_main_state(cmd))
return false;
break;
case CMD_EVENT_RESIZE_WINDOWED_SCALE:
return command_event_resize_windowed_scale();
if (!command_event_resize_windowed_scale())
return false;
break;
case CMD_EVENT_MENU_TOGGLE:
#ifdef HAVE_MENU
if (menu_driver_is_alive())
@@ -1871,12 +1916,12 @@ bool command_event(enum event_command cmd, void *data)
#if HAVE_NETWORKING
netplay_driver_ctl(RARCH_NETPLAY_CTL_RESET, NULL);
#endif
return command_event_main_state(cmd);
return false;
case CMD_EVENT_SAVE_STATE:
{
settings_t *settings = config_get_ptr();
#ifdef HAVE_CHEEVOS
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
if (cheevos_hardcore_active)
return false;
#endif
@@ -1886,7 +1931,9 @@ bool command_event(enum event_command cmd, void *data)
configuration_set_int(settings, settings->ints.state_slot, new_state_slot);
}
}
return command_event_main_state(cmd);
if (!command_event_main_state(cmd))
return false;
break;
case CMD_EVENT_SAVE_STATE_DECREMENT:
{
settings_t *settings = config_get_ptr();
@@ -1907,7 +1954,7 @@ bool command_event(enum event_command cmd, void *data)
break;
case CMD_EVENT_TAKE_SCREENSHOT:
if (!take_screenshot(path_get(RARCH_PATH_BASENAME), false,
video_driver_cached_frame_has_valid_framebuffer()))
video_driver_cached_frame_has_valid_framebuffer(), false, true))
return false;
break;
case CMD_EVENT_UNLOAD_CORE:
@@ -1933,39 +1980,51 @@ bool command_event(enum event_command cmd, void *data)
core_unload_game();
if (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
core_unload();
#ifdef HAVE_DISCORD
if (discord_is_inited)
{
discord_userdata_t userdata;
userdata.status = DISCORD_PRESENCE_MENU;
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
}
#endif
}
break;
case CMD_EVENT_QUIT:
return retroarch_main_quit();
if (!retroarch_main_quit())
return false;
break;
case CMD_EVENT_CHEEVOS_HARDCORE_MODE_TOGGLE:
#ifdef HAVE_CHEEVOS
cheevos_toggle_hardcore_mode();
#endif
break;
/* this fallthrough is on purpose, it should do
/* this fallthrough is on purpose, it should do
a CMD_EVENT_REINIT too */
case CMD_EVENT_REINIT_FROM_TOGGLE:
retroarch_unset_forced_fullscreen();
case CMD_EVENT_REINIT:
video_driver_reinit();
{
video_driver_reinit();
{
const input_driver_t *input_drv = input_get_ptr();
void *input_data = input_get_data();
/* Poll input to avoid possibly stale data to corrupt things. */
if (input_drv && input_drv->poll)
input_drv->poll(input_data);
}
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
const input_driver_t *input_drv = input_get_ptr();
void *input_data = input_get_data();
/* Poll input to avoid possibly stale data to corrupt things. */
if (input_drv && input_drv->poll)
input_drv->poll(input_data);
}
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
#ifdef HAVE_MENU
{
settings_t *settings = config_get_ptr();
menu_display_set_framebuffer_dirty_flag();
if (settings->bools.video_fullscreen)
video_driver_hide_mouse();
if (menu_driver_is_alive())
command_event(CMD_EVENT_VIDEO_SET_BLOCKING_STATE, NULL);
#endif
}
#endif
break;
case CMD_EVENT_CHEATS_DEINIT:
cheat_manager_state_free();
@@ -1978,21 +2037,17 @@ bool command_event(enum event_command cmd, void *data)
cheat_manager_apply_cheats();
break;
case CMD_EVENT_REWIND_DEINIT:
{
#ifdef HAVE_CHEEVOS
settings_t *settings = config_get_ptr();
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
return false;
if (cheevos_hardcore_active)
return false;
#endif
state_manager_event_deinit();
}
state_manager_event_deinit();
break;
case CMD_EVENT_REWIND_INIT:
{
settings_t *settings = config_get_ptr();
#ifdef HAVE_CHEEVOS
if (cheevos_loaded && settings->bools.cheevos_hardcore_mode_enable)
if (cheevos_hardcore_active)
return false;
#endif
if (settings->bools.rewind_enable)
@@ -2003,7 +2058,7 @@ TODO: Add a setting for these tweaks */
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL))
#endif
{
state_manager_event_init((unsigned)settings->rewind_buffer_size);
state_manager_event_init((unsigned)settings->sizes.rewind_buffer_size);
}
}
}
@@ -2027,7 +2082,7 @@ TODO: Add a setting for these tweaks */
case CMD_EVENT_AUTOSAVE_INIT:
command_event(CMD_EVENT_AUTOSAVE_DEINIT, NULL);
#ifdef HAVE_THREADS
{
{
#ifdef HAVE_NETWORKING
/* Only enable state manager if netplay is not underway
TODO: Add a setting for these tweaks */
@@ -2041,16 +2096,21 @@ TODO: Add a setting for these tweaks */
else
runloop_unset(RUNLOOP_ACTION_AUTOSAVE);
}
}
}
#endif
break;
case CMD_EVENT_AUTOSAVE_STATE:
command_event_save_auto_state();
break;
case CMD_EVENT_AUDIO_STOP:
return audio_driver_stop();
midi_driver_set_all_sounds_off();
if (!audio_driver_stop())
return false;
break;
case CMD_EVENT_AUDIO_START:
return audio_driver_start(rarch_ctl(RARCH_CTL_IS_SHUTDOWN, NULL));
if (!audio_driver_start(rarch_ctl(RARCH_CTL_IS_SHUTDOWN, NULL)))
return false;
break;
case CMD_EVENT_AUDIO_MUTE_TOGGLE:
{
bool audio_mute_enable = *(audio_get_bool_ptr(AUDIO_ACTION_MUTE_ENABLE));
@@ -2109,13 +2169,18 @@ TODO: Add a setting for these tweaks */
video_driver_gpu_record_deinit();
break;
case CMD_EVENT_RECORD_DEINIT:
if (!recording_deinit())
return false;
{
if (!recording_deinit())
return false;
}
break;
case CMD_EVENT_RECORD_INIT:
command_event(CMD_EVENT_HISTORY_DEINIT, NULL);
if (!recording_init())
return false;
{
command_event(CMD_EVENT_RECORD_DEINIT, NULL);
recording_set_state(true);
if (!recording_init())
return false;
}
break;
case CMD_EVENT_HISTORY_DEINIT:
if (g_defaults.content_history)
@@ -2139,7 +2204,7 @@ TODO: Add a setting for these tweaks */
}
g_defaults.music_history = NULL;
#ifdef HAVE_FFMPEG
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
if (g_defaults.video_history)
{
playlist_write_file(g_defaults.video_history);
@@ -2189,7 +2254,7 @@ TODO: Add a setting for these tweaks */
settings->paths.path_content_music_history,
content_history_size);
#ifdef HAVE_FFMPEG
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
RARCH_LOG("%s: [%s].\n",
msg_hash_to_str(MSG_LOADING_HISTORY_FILE),
settings->paths.path_content_video_history);
@@ -2210,14 +2275,26 @@ TODO: Add a setting for these tweaks */
break;
case CMD_EVENT_CORE_INFO_DEINIT:
core_info_deinit_list();
core_info_free_current_core();
break;
case CMD_EVENT_CORE_INFO_INIT:
{
char ext_name[255];
settings_t *settings = config_get_ptr();
ext_name[0] = '\0';
command_event(CMD_EVENT_CORE_INFO_DEINIT, NULL);
if (!frontend_driver_get_core_extension(ext_name, sizeof(ext_name)))
return false;
if (!string_is_empty(settings->paths.directory_libretro))
core_info_init_list();
core_info_init_list(settings->paths.path_libretro_info,
settings->paths.directory_libretro,
ext_name,
settings->bools.show_hidden_files
);
}
break;
case CMD_EVENT_CORE_DEINIT:
@@ -2312,7 +2389,7 @@ TODO: Add a setting for these tweaks */
case CMD_EVENT_RESUME:
rarch_menu_running_finished();
if (ui_companion_is_on_foreground())
ui_companion_driver_toggle();
ui_companion_driver_toggle(false);
break;
case CMD_EVENT_ADD_TO_FAVORITES:
{
@@ -2340,6 +2417,27 @@ TODO: Add a setting for these tweaks */
);
runloop_msg_queue_push(msg_hash_to_str(MSG_ADDED_TO_FAVORITES), 1, 180, true);
break;
}
case CMD_EVENT_RESET_CORE_ASSOCIATION:
{
const char *core_name = "DETECT";
const char *core_path = "DETECT";
size_t *playlist_index = (size_t*)data;
command_playlist_update_write(
NULL,
*playlist_index,
NULL,
NULL,
core_path,
core_name,
NULL,
NULL);
runloop_msg_queue_push(msg_hash_to_str(MSG_RESET_CORE_ASSOCIATION), 1, 180, true);
break;
}
case CMD_EVENT_RESTART_RETROARCH:
if (!frontend_driver_set_fork(FRONTEND_FORK_RESTART))
@@ -2354,6 +2452,9 @@ TODO: Add a setting for these tweaks */
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
command_event_save_current_config(OVERRIDE_CORE);
break;
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR:
command_event_save_current_config(OVERRIDE_CONTENT_DIR);
break;
case CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
command_event_save_current_config(OVERRIDE_GAME);
break;
@@ -2361,10 +2462,14 @@ TODO: Add a setting for these tweaks */
if (!command_event_save_core_config())
return false;
break;
case CMD_EVENT_SHADER_PRESET_LOADED:
ui_companion_event_command(cmd);
break;
case CMD_EVENT_SHADERS_APPLY_CHANGES:
#ifdef HAVE_MENU
menu_shader_manager_apply_changes();
#endif
ui_companion_event_command(cmd);
break;
case CMD_EVENT_PAUSE_CHECKS:
{
@@ -2386,6 +2491,13 @@ TODO: Add a setting for these tweaks */
if (!is_idle)
video_driver_cached_frame();
#ifdef HAVE_DISCORD
discord_userdata_t userdata;
userdata.status = DISCORD_PRESENCE_GAME_PAUSED;
command_event(CMD_EVENT_DISCORD_UPDATE, &userdata);
#endif
}
else
{
@@ -2486,17 +2598,18 @@ TODO: Add a setting for these tweaks */
/* buf is expected to be address|port */
char *buf = (char *)data;
static struct string_list *hostname = NULL;
settings_t *settings = config_get_ptr();
hostname = string_split(buf, "|");
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
RARCH_LOG("[netplay] connecting to %s:%d\n",
hostname->elems[0].data, !string_is_empty(hostname->elems[1].data)
? atoi(hostname->elems[1].data) : 55435);
? atoi(hostname->elems[1].data) : settings->uints.netplay_port);
if (!init_netplay(NULL, hostname->elems[0].data,
!string_is_empty(hostname->elems[1].data)
? atoi(hostname->elems[1].data) : 55435))
? atoi(hostname->elems[1].data) : settings->uints.netplay_port))
{
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
string_list_free(hostname);
@@ -2519,17 +2632,18 @@ TODO: Add a setting for these tweaks */
/* buf is expected to be address|port */
char *buf = (char *)data;
static struct string_list *hostname = NULL;
settings_t *settings = config_get_ptr();
hostname = string_split(buf, "|");
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
RARCH_LOG("[netplay] connecting to %s:%d\n",
hostname->elems[0].data, !string_is_empty(hostname->elems[1].data)
? atoi(hostname->elems[1].data) : 55435);
? atoi(hostname->elems[1].data) : settings->uints.netplay_port);
if (!init_netplay_deferred(hostname->elems[0].data,
!string_is_empty(hostname->elems[1].data)
? atoi(hostname->elems[1].data) : 55435))
? atoi(hostname->elems[1].data) : settings->uints.netplay_port))
{
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
string_list_free(hostname);
@@ -2562,7 +2676,7 @@ TODO: Add a setting for these tweaks */
case CMD_EVENT_FULLSCREEN_TOGGLE:
{
settings_t *settings = config_get_ptr();
bool new_fullscreen_state = !settings->bools.video_fullscreen
bool new_fullscreen_state = !settings->bools.video_fullscreen
&& !retroarch_is_forced_fullscreen();
if (!video_driver_has_windowed())
return false;
@@ -2598,14 +2712,13 @@ TODO: Add a setting for these tweaks */
command_event(CMD_EVENT_REMOTE_DEINIT, NULL);
input_driver_init_remote();
break;
case CMD_EVENT_MAPPER_DEINIT:
input_driver_deinit_mapper();
break;
case CMD_EVENT_MAPPER_INIT:
command_event(CMD_EVENT_MAPPER_DEINIT, NULL);
input_driver_init_mapper();
break;
break;
case CMD_EVENT_LOG_FILE_DEINIT:
retro_main_log_file_deinit();
break;
@@ -2614,8 +2727,10 @@ TODO: Add a setting for these tweaks */
const char *path = (const char*)data;
if (string_is_empty(path))
return false;
return command_event_disk_control_append_image(path);
if (!command_event_disk_control_append_image(path))
return false;
}
break;
case CMD_EVENT_DISK_EJECT_TOGGLE:
{
rarch_system_info_t *info = runloop_get_system_info();
@@ -2721,6 +2836,9 @@ TODO: Add a setting for these tweaks */
video_driver_show_mouse();
}
break;
case CMD_EVENT_UI_COMPANION_TOGGLE:
ui_companion_driver_toggle(true);
break;
case CMD_EVENT_GAME_FOCUS_TOGGLE:
{
static bool game_focus_state = false;
@@ -2789,10 +2907,39 @@ TODO: Add a setting for these tweaks */
case CMD_EVENT_RESTORE_DEFAULT_SHADER_PRESET:
command_event_restore_default_shader_preset();
break;
case CMD_EVENT_LIBUI_TEST:
#if HAVE_LIBUI
extern int libui_main(void);
libui_main();
case CMD_EVENT_DISCORD_INIT:
#ifdef HAVE_DISCORD
{
settings_t *settings = config_get_ptr();
if (!settings->bools.discord_enable)
return false;
if (discord_inited)
return true;
discord_init();
discord_inited = true;
}
#endif
break;
case CMD_EVENT_DISCORD_DEINIT:
#ifdef HAVE_DISCORD
if (!discord_inited)
return false;
discord_shutdown();
discord_inited = false;
#endif
break;
case CMD_EVENT_DISCORD_UPDATE:
#ifdef HAVE_DISCORD
if (!data || !discord_inited)
return false;
{
discord_userdata_t *userdata = (discord_userdata_t*)data;
discord_update(userdata->status);
}
#endif
break;
case CMD_EVENT_NONE:
+19 -5
View File
@@ -27,6 +27,8 @@
#include "config.h"
#endif
#include "playlist.h"
RETRO_BEGIN_DECLS
typedef struct command command_t;
@@ -138,6 +140,8 @@ enum event_command
CMD_EVENT_RESUME,
/* Add a playlist entry to favorites. */
CMD_EVENT_ADD_TO_FAVORITES,
/* Reset playlist entry associated core to DETECT */
CMD_EVENT_RESET_CORE_ASSOCIATION,
/* Toggles pause. */
CMD_EVENT_PAUSE_TOGGLE,
/* Pauses RetroArch. */
@@ -147,6 +151,7 @@ enum event_command
CMD_EVENT_PAUSE_CHECKS,
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG,
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CORE,
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR,
CMD_EVENT_MENU_SAVE_CURRENT_CONFIG_OVERRIDE_GAME,
CMD_EVENT_MENU_SAVE_CONFIG,
CMD_EVENT_MENU_PAUSE_LIBRETRO,
@@ -155,6 +160,8 @@ enum event_command
CMD_EVENT_MENU_REFRESH,
/* Applies shader changes. */
CMD_EVENT_SHADERS_APPLY_CHANGES,
/* A new shader preset has been loaded */
CMD_EVENT_SHADER_PRESET_LOADED,
/* Initializes shader directory. */
CMD_EVENT_SHADER_DIR_INIT,
/* Deinitializes shader directory. */
@@ -216,6 +223,8 @@ enum event_command
CMD_EVENT_GRAB_MOUSE_TOGGLE,
/* Toggles game focus. */
CMD_EVENT_GAME_FOCUS_TOGGLE,
/* Toggles desktop menu. */
CMD_EVENT_UI_COMPANION_TOGGLE,
/* Toggles fullscreen mode. */
CMD_EVENT_FULLSCREEN_TOGGLE,
CMD_EVENT_PERFCNT_REPORT_FRONTEND_LOG,
@@ -226,7 +235,9 @@ enum event_command
CMD_EVENT_DISABLE_OVERRIDES,
CMD_EVENT_RESTORE_REMAPS,
CMD_EVENT_RESTORE_DEFAULT_SHADER_PRESET,
CMD_EVENT_LIBUI_TEST
CMD_EVENT_DISCORD_INIT,
CMD_EVENT_DISCORD_DEINIT,
CMD_EVENT_DISCORD_UPDATE
};
bool command_set_shader(const char *arg);
@@ -260,18 +271,21 @@ bool command_free(command_t *handle);
bool command_event(enum event_command action, void *data);
void command_playlist_push_write(
void *data,
playlist_t *playlist,
const char *path,
const char *label,
const char *core_path,
const char *core_name);
void command_playlist_update_write(
void *data,
playlist_t *playlist,
size_t idx,
const char *core_display_name,
const char *path,
const char *label,
const char *path);
const char *core_path,
const char *core_display_name,
const char *crc32,
const char *db_name);
RETRO_END_DECLS
+98 -29
View File
@@ -20,6 +20,7 @@
#include <boolean.h>
#include <audio/audio_resampler.h>
#include "configuration.h"
#include "gfx/video_defines.h"
#include "input/input_driver.h"
@@ -67,11 +68,15 @@ static bool bundle_assets_extract_enable = false;
static bool materialui_icons_enable = true;
#endif
static const bool def_history_list_enable = true;
static const bool def_playlist_entry_remove = true;
static const bool def_playlist_entry_rename = true;
static const unsigned crt_switch_resolution = CRT_SWITCH_NONE;
static const int crt_switch_resolution_super = 2560;
static const int crt_switch_center_adjust = 0;
static const unsigned int def_user_language = 0;
static const bool def_history_list_enable = true;
static const bool def_playlist_entry_remove = true;
static const bool def_playlist_entry_rename = true;
static const unsigned int def_user_language = 0;
#if (defined(_WIN32) && !defined(_XBOX)) || (defined(__linux) && !defined(ANDROID) && !defined(HAVE_LAKKA)) || (defined(__MACH__) && !defined(IOS)) || defined(EMSCRIPTEN)
static const bool def_mouse_enable = true;
@@ -177,7 +182,7 @@ static unsigned swap_interval = 1;
static const bool video_threaded = false;
#if defined(HAVE_THREADS)
#if defined(GEKKO) || defined(PSP) || defined(_3DS)
#if defined(GEKKO) || defined(PSP)
/* For single-core consoles right now it's better to have this be disabled. */
static const bool threaded_data_runloop_enable = false;
#else
@@ -244,22 +249,32 @@ static const bool overlay_hide_in_menu = true;
static const bool display_keyboard_overlay = false;
#ifdef HAKCHI
static const float default_input_overlay_opacity = 0.5f;
#else
static const float default_input_overlay_opacity = 0.7f;
#endif
#ifdef HAVE_MENU
#include "menu/menu_driver.h"
static bool default_block_config_read = true;
static bool quick_menu_show_take_screenshot = true;
static bool quick_menu_show_save_load_state = true;
static bool quick_menu_show_undo_save_load_state = true;
static bool quick_menu_show_add_to_favorites = true;
static bool quick_menu_show_options = true;
static bool quick_menu_show_controls = true;
static bool quick_menu_show_cheats = true;
static bool quick_menu_show_shaders = true;
static bool quick_menu_show_save_core_overrides = true;
static bool quick_menu_show_save_game_overrides = true;
static bool quick_menu_show_information = true;
static bool quick_menu_show_take_screenshot = true;
static bool quick_menu_show_save_load_state = true;
static bool quick_menu_show_undo_save_load_state = true;
static bool quick_menu_show_add_to_favorites = true;
static bool quick_menu_show_options = true;
static bool quick_menu_show_controls = true;
static bool quick_menu_show_cheats = true;
static bool quick_menu_show_shaders = true;
static bool quick_menu_show_information = true;
static bool quick_menu_show_recording = true;
static bool quick_menu_show_streaming = true;
static bool quick_menu_show_save_core_overrides = true;
static bool quick_menu_show_save_game_overrides = true;
static bool quick_menu_show_save_content_dir_overrides = true;
static bool kiosk_mode_enable = false;
@@ -271,6 +286,7 @@ static bool menu_show_configurations = true;
static bool menu_show_help = true;
static bool menu_show_quit_retroarch = true;
static bool menu_show_reboot = true;
static bool menu_show_shutdown = true;
#if defined(HAVE_LAKKA) || defined(VITA) || defined(_3DS)
static bool menu_show_core_updater = false;
#else
@@ -283,7 +299,7 @@ static bool content_show_favorites = true;
static bool content_show_images = true;
#endif
static bool content_show_music = true;
#ifdef HAVE_FFMPEG
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
static bool content_show_video = true;
#endif
#ifdef HAVE_NETWORKING
@@ -293,6 +309,7 @@ static bool content_show_history = true;
#ifdef HAVE_LIBRETRODB
static bool content_show_add = true;
#endif
static bool content_show_playlists = true;
#ifdef HAVE_XMB
static unsigned xmb_scale_factor = 100;
@@ -300,9 +317,10 @@ static unsigned xmb_alpha_factor = 75;
static unsigned menu_font_color_red = 255;
static unsigned menu_font_color_green = 255;
static unsigned menu_font_color_blue = 255;
static unsigned xmb_menu_layout = 0;
static unsigned xmb_icon_theme = XMB_ICON_THEME_MONOCHROME;
static unsigned xmb_theme = XMB_THEME_ELECTRIC_BLUE;
#ifdef HAVE_LAKKA
#if defined(HAVE_LAKKA) || defined(__arm__) || defined(__PPC64__) || defined(__ppc64__) || defined(__powerpc64__) || defined(__powerpc__) || defined(__ppc__) || defined(__POWERPC__)
static bool xmb_shadows_enable = false;
#else
static bool xmb_shadows_enable = true;
@@ -352,6 +370,8 @@ static bool default_screenshots_in_content_dir = false;
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L3_R3;
#elif defined(VITA)
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_L1_R1_START_SELECT;
#elif defined(SWITCH)
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_START_SELECT;
#else
static unsigned menu_toggle_gamepad_combo = INPUT_TOGGLE_NONE;
#endif
@@ -430,9 +450,11 @@ static const bool font_enable = true;
* If your monitor does not run at 60Hz, or something close to it,
* disable VSync, and leave this at its default. */
#ifdef _3DS
static const float refresh_rate = (32730.0 * 8192.0) / 4481134.0 ;
static const float refresh_rate = (32730.0 * 8192.0) / 4481134.0 ;
static const float crt_refresh_rate = (32730.0 * 8192.0) / 4481134.0 ;
#else
static const float refresh_rate = 60/1.001;
static const float refresh_rate = 60/1.001;
static const float crt_refresh_rate = 60/1.001;
#endif
/* Allow games to set rotation. If false, rotation requests are
@@ -509,10 +531,19 @@ static const bool framecount_show = true;
* depending on the save state buffer. */
static const bool rewind_enable = false;
/* When set, any time a cheat is toggled it is immediately applied. */
static const bool apply_cheats_after_toggle = false;
/* When set, all enabled cheats are auto-applied when a game is loaded. */
static const bool apply_cheats_after_load = false;
/* The buffer size for the rewind buffer. This needs to be about
* 15-20MB per minute. Very game dependant. */
static const unsigned rewind_buffer_size = 20 << 20; /* 20MiB */
/* The amount of MB to increase/decrease the rewind_buffer_size when it is changed via the UI. */
static const unsigned rewind_buffer_size_step = 10; /* 10MB */
/* How many frames to rewind at a time. */
static const unsigned rewind_granularity = 1;
@@ -587,6 +618,18 @@ static const float slowmotion_ratio = 3.0;
/* Maximum fast forward ratio. */
static const float fastforward_ratio = 0.0;
/* Enable runloop for variable refresh rate screens. Force x1 speed while handling fast forward too. */
static const bool vrr_runloop_enable = false;
/* Run core logic one or more frames ahead then load the state back to reduce perceived input lag. */
static const unsigned run_ahead_frames = 1;
/* When using the Run Ahead feature, use a secondary instance of the core. */
static const bool run_ahead_secondary_instance = true;
/* Hide warning messages when using the Run Ahead feature. */
static const bool run_ahead_hide_warnings = false;
/* Enable stdin/network command interface. */
static const bool network_cmd_enable = false;
static const uint16_t network_cmd_port = 55355;
@@ -599,11 +642,7 @@ static const unsigned default_content_history_size = 100;
/* Show Menu start-up screen on boot. */
static const bool default_menu_show_start_screen = true;
#ifdef RARCH_MOBILE
static const bool menu_dpi_override_enable = false;
#else
static const bool menu_dpi_override_enable = true;
#endif
#ifdef RARCH_MOBILE
static const unsigned menu_dpi_override_value = 72;
@@ -620,6 +659,10 @@ static const unsigned libretro_log_level = 1;
#define RARCH_DEFAULT_PORT 55435
#endif
#ifndef RARCH_STREAM_DEFAULT_PORT
#define RARCH_STREAM_DEFAULT_PORT 56400
#endif
/* KEYBINDS, JOYPAD */
/* Axis threshold (between 0.0 and 1.0)
@@ -646,8 +689,14 @@ static const unsigned input_poll_type_behavior = 2;
static const unsigned input_bind_timeout = 5;
static const unsigned input_bind_hold = 2;
static const unsigned menu_thumbnails_default = 3;
static const unsigned menu_left_thumbnails_default = 0;
static const bool xmb_vertical_thumbnails = false;
#ifdef IOS
static const bool ui_companion_start_on_boot = false;
#else
@@ -656,6 +705,12 @@ static const bool ui_companion_start_on_boot = true;
static const bool ui_companion_enable = false;
/* Currently only used to show the WIMP UI on startup */
static const bool ui_companion_toggle = false;
/* Only init the WIMP UI for this session if this is enabled */
static const bool desktop_menu_enable = true;
#if defined(__QNX__) || defined(_XBOX1) || defined(_XBOX360) || defined(__CELLOS_LV2__) || (defined(__MACH__) && defined(IOS)) || defined(ANDROID) || defined(WIIU) || defined(HAVE_NEON) || defined(GEKKO) || defined(__ARM_NEON__)
static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_LOWER;
#elif defined(PSP) || defined(_3DS) || defined(VITA)
@@ -664,13 +719,27 @@ static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_
static enum resampler_quality audio_resampler_quality_level = RESAMPLER_QUALITY_NORMAL;
#endif
#if defined(ANDROID)
#if defined(ANDROID_ARM)
/* MIDI */
static const char *midi_input = "Off";
static const char *midi_output = "Off";
static const unsigned midi_volume = 100;
/* Only applies to Android 7.0 (API 24) and up */
static const bool sustained_performance_mode = false;
#if defined(HAKCHI)
static char buildbot_server_url[] = "http://hakchicloud.com/Libretro_Cores/";
#elif defined(ANDROID)
#if defined(ANDROID_ARM_V7)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi-v7a/";
#elif defined(ANDROID_ARM)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/armeabi/";
#elif defined(ANDROID_AARCH64)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/arm64-v8a/";
#elif defined(ANDROID_X86)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86/";
#elif defined(ANDROID_X64)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/android/latest/x86_64/";
#else
static char buildbot_server_url[] = "";
#endif
@@ -717,11 +786,11 @@ static char buildbot_server_url[] = "";
#elif defined(WIIU)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/nintendo/wiiu/latest/";
#elif defined(__CELLOS_LV2__) && defined(DEX_BUILD)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/playstation/ps3/latest/dex-ps3/";
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/dex-ps3/";
#elif defined(__CELLOS_LV2__) && defined(CEX_BUILD)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/playstation/ps3/latest/cex-ps3/";
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/cex-ps3/";
#elif defined(__CELLOS_LV2__) && defined(ODE_BUILD)
static char buildbot_server_url[] = "http://buildbot.libretro.com/nightly/playstation/ps3/latest/ode-ps3/";
static char buildbot_server_url[] = "http://libretro.xbins.org/libretro/nightly/playstation/ps3/latest/ode-ps3/";
#else
static char buildbot_server_url[] = "";
#endif
+8 -4
View File
@@ -66,6 +66,8 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_FAST_FORWARD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FAST_FORWARD_HOLD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_HOLD_KEY,RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION_HOLD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_HOLD_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_LOAD_STATE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SAVE_STATE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SAVE_STATE_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FULLSCREEN_TOGGLE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FULLSCREEN_TOGGLE_KEY,RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -73,7 +75,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_STATE_SLOT_PLUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_STATE_SLOT_MINUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_REWIND, MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_MOVIE_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_BSV_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_PAUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FRAMEADVANCE, MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_RESET, MENU_ENUM_LABEL_VALUE_INPUT_META_RESET, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -86,7 +88,6 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_MUTE, MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_OSK, MENU_ENUM_LABEL_VALUE_INPUT_META_OSK, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_NETPLAY_GAME_WATCH, MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_GAME_WATCH, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ENABLE_HOTKEY, MENU_ENUM_LABEL_VALUE_INPUT_META_ENABLE_HOTKEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_VOLUME_UP, MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_UP, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_VOLUME_DOWN, MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_DOWN, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -96,6 +97,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_DISK_PREV, MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_PREV, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_GRAB_MOUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_GRAB_MOUSE_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_GAME_FOCUS_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_GAME_FOCUS_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_UI_COMPANION_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_UI_COMPANION_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_MENU_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE, RETROK_SPACE, NO_BTN, NO_BTN, 0, AXIS_NONE },
#else
{ true, RETRO_DEVICE_ID_JOYPAD_B, MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_B, RETROK_z, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -140,6 +142,8 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_FAST_FORWARD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_KEY, RETROK_SPACE, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FAST_FORWARD_HOLD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FAST_FORWARD_HOLD_KEY,RETROK_l, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_KEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION_HOLD_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION_KEY, RETROK_e, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_LOAD_STATE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY, RETROK_F4, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SAVE_STATE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_SAVE_STATE_KEY, RETROK_F2, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FULLSCREEN_TOGGLE_KEY, MENU_ENUM_LABEL_VALUE_INPUT_META_FULLSCREEN_TOGGLE_KEY,RETROK_f, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -147,7 +151,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_STATE_SLOT_PLUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS, RETROK_F7, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_STATE_SLOT_MINUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS, RETROK_F6, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_REWIND, MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND, RETROK_r, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_MOVIE_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE, RETROK_o, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_BSV_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE, RETROK_o, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_PAUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE, RETROK_p, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_FRAMEADVANCE, MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE, RETROK_k, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_RESET, MENU_ENUM_LABEL_VALUE_INPUT_META_RESET, RETROK_h, NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -160,7 +164,6 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_MUTE, MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE, RETROK_F9, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_OSK, MENU_ENUM_LABEL_VALUE_INPUT_META_OSK, RETROK_F12, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_NETPLAY_GAME_WATCH, MENU_ENUM_LABEL_VALUE_INPUT_META_NETPLAY_GAME_WATCH, RETROK_i, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_SLOWMOTION, MENU_ENUM_LABEL_VALUE_INPUT_META_SLOWMOTION, RETROK_e, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_ENABLE_HOTKEY, MENU_ENUM_LABEL_VALUE_INPUT_META_ENABLE_HOTKEY, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_VOLUME_UP, MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_UP, RETROK_KP_PLUS, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_VOLUME_DOWN, MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_DOWN, RETROK_KP_MINUS,NO_BTN, NO_BTN, 0, AXIS_NONE },
@@ -170,6 +173,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
{ true, RARCH_DISK_PREV, MENU_ENUM_LABEL_VALUE_INPUT_META_DISK_PREV, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_GRAB_MOUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_GRAB_MOUSE_TOGGLE, RETROK_F11, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_GAME_FOCUS_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_GAME_FOCUS_TOGGLE, RETROK_SCROLLOCK, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_UI_COMPANION_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_UI_COMPANION_TOGGLE, RETROK_F5, NO_BTN, NO_BTN, 0, AXIS_NONE },
{ true, RARCH_MENU_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE, RETROK_F1, NO_BTN, NO_BTN, 0, AXIS_NONE },
#endif
};
+12
View File
@@ -80,6 +80,12 @@ static const bool _vulkan_supp = true;
static const bool _vulkan_supp = false;
#endif
#ifdef HAVE_METAL
static const bool _metal_supp = true;
#else
static const bool _metal_supp = false;
#endif
#if defined(HAVE_OPENGLES) || defined(HAVE_OPENGLES2) || defined(HAVE_OPENGLES3) || defined(HAVE_OPENGLES_3_1) || defined(HAVE_OPENGLES_3_2)
static const bool _opengles_supp = true;
#else
@@ -272,6 +278,12 @@ static const bool _ffmpeg_supp = true;
static const bool _ffmpeg_supp = false;
#endif
#ifdef HAVE_MPV
static const bool _mpv_supp = true;
#else
static const bool _mpv_supp = false;
#endif
#ifdef HAVE_FREETYPE
static const bool _freetype_supp = true;
#else
+429 -133
View File
File diff suppressed because it is too large. Load diff
+68 -3
View File
@@ -53,10 +53,18 @@
var = newvar; \
}
enum crt_switch_type
{
CRT_SWITCH_NONE = 0,
CRT_SWITCH_15KHZ,
CRT_SWITCH_31KHZ
};
enum override_type
{
OVERRIDE_NONE = 0,
OVERRIDE_CORE,
OVERRIDE_CONTENT_DIR,
OVERRIDE_GAME
};
@@ -72,6 +80,7 @@ typedef struct settings
bool video_fullscreen;
bool video_windowed_fullscreen;
bool video_vsync;
bool video_adaptive_vsync;
bool video_hard_sync;
bool video_black_frame_insertion;
bool video_vfilter;
@@ -92,11 +101,13 @@ typedef struct settings
bool video_shared_context;
bool video_force_srgb_disable;
bool video_fps_show;
bool video_statistics_show;
bool video_framecount_show;
bool video_msg_bgcolor_enable;
/* Audio */
bool audio_enable;
bool audio_enable_menu;
bool audio_sync;
bool audio_rate_control;
bool audio_wasapi_exclusive_mode;
@@ -145,8 +156,16 @@ typedef struct settings
bool menu_show_help;
bool menu_show_quit_retroarch;
bool menu_show_reboot;
bool menu_show_shutdown;
bool menu_show_latency;
bool menu_show_rewind;
bool menu_show_overlays;
bool menu_materialui_icons_enable;
bool menu_rgui_background_filler_thickness_enable;
bool menu_rgui_border_filler_thickness_enable;
bool menu_rgui_border_filler_enable;
bool menu_xmb_shadows_enable;
bool menu_xmb_vertical_thumbnails;
bool menu_content_show_settings;
bool menu_content_show_favorites;
bool menu_content_show_images;
@@ -155,6 +174,7 @@ typedef struct settings
bool menu_content_show_netplay;
bool menu_content_show_history;
bool menu_content_show_add;
bool menu_content_show_playlists;
bool menu_unified_controls;
bool quick_menu_show_take_screenshot;
bool quick_menu_show_save_load_state;
@@ -166,9 +186,14 @@ typedef struct settings
bool quick_menu_show_shaders;
bool quick_menu_show_save_core_overrides;
bool quick_menu_show_save_game_overrides;
bool quick_menu_show_save_content_dir_overrides;
bool quick_menu_show_information;
bool quick_menu_show_recording;
bool quick_menu_show_streaming;
bool kiosk_mode_enable;
bool crt_switch_custom_refresh_enable;
/* Netplay */
bool netplay_public_announce;
bool netplay_start_as_spectator;
@@ -187,6 +212,8 @@ typedef struct settings
bool ui_suspend_screensaver_enable;
bool ui_companion_start_on_boot;
bool ui_companion_enable;
bool ui_companion_toggle;
bool desktop_menu_enable;
/* Cheevos */
bool cheevos_enable;
@@ -195,6 +222,7 @@ typedef struct settings
bool cheevos_leaderboards_enable;
bool cheevos_badges_enable;
bool cheevos_verbose_enable;
bool cheevos_auto_screenshot;
/* Camera */
bool camera_allow;
@@ -214,6 +242,7 @@ typedef struct settings
bool bundle_assets_extract_enable;
/* Misc. */
bool discord_enable;
bool threaded_data_runloop_enable;
bool set_supports_no_game_enable;
bool auto_screenshot_filename;
@@ -221,6 +250,12 @@ typedef struct settings
bool playlist_entry_remove;
bool playlist_entry_rename;
bool rewind_enable;
bool vrr_runloop_enable;
bool apply_cheats_after_toggle;
bool apply_cheats_after_load;
bool run_ahead_enabled;
bool run_ahead_secondary_instance;
bool run_ahead_hide_warnings;
bool pause_nonactive;
bool block_sram_overwrite;
bool savestate_auto_index;
@@ -255,6 +290,8 @@ typedef struct settings
bool automatically_add_content_to_playlist;
bool video_window_show_decorations;
bool sustained_performance_mode;
} bools;
struct
@@ -263,6 +300,7 @@ typedef struct settings
float video_scale;
float video_aspect_ratio;
float video_refresh_rate;
float crt_video_refresh_rate;
float video_font_size;
float video_msg_pos_x;
float video_msg_pos_y;
@@ -295,6 +333,7 @@ typedef struct settings
int location_update_interval_distance;
int state_slot;
int audio_wasapi_sh_buffer_length;
int crt_switch_center_adjust;
} ints;
struct
@@ -310,6 +349,7 @@ typedef struct settings
unsigned input_turbo_duty_cycle;
unsigned input_bind_timeout;
unsigned input_bind_hold;
unsigned input_menu_toggle_gamepad_combo;
unsigned input_keyboard_gamepad_mapping_type;
@@ -324,6 +364,7 @@ typedef struct settings
unsigned content_history_size;
unsigned libretro_log_level;
unsigned rewind_granularity;
unsigned rewind_buffer_size_step;
unsigned autosave_interval;
unsigned network_cmd_port;
unsigned network_remote_base_port;
@@ -331,6 +372,8 @@ typedef struct settings
unsigned video_window_x;
unsigned video_window_y;
unsigned video_window_opacity;
unsigned crt_switch_resolution;
unsigned crt_switch_resolution_super;
unsigned video_monitor_index;
unsigned video_fullscreen_x;
unsigned video_fullscreen_y;
@@ -344,12 +387,15 @@ typedef struct settings
unsigned video_msg_bgcolor_red;
unsigned video_msg_bgcolor_green;
unsigned video_msg_bgcolor_blue;
unsigned video_stream_port;
unsigned menu_thumbnails;
unsigned menu_left_thumbnails;
unsigned menu_dpi_override_value;
unsigned menu_entry_normal_color;
unsigned menu_entry_hover_color;
unsigned menu_title_color;
unsigned menu_xmb_layout;
unsigned menu_xmb_shader_pipeline;
unsigned menu_xmb_scale_factor;
unsigned menu_xmb_alpha_factor;
@@ -373,13 +419,23 @@ typedef struct settings
unsigned input_libretro_device[MAX_USERS];
unsigned input_analog_dpad_mode[MAX_USERS];
unsigned input_keymapper_ids[RARCH_CUSTOM_BIND_LIST_END];
unsigned input_keymapper_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned input_remap_ids[MAX_USERS][RARCH_CUSTOM_BIND_LIST_END];
unsigned led_map[MAX_LEDS];
unsigned run_ahead_frames;
unsigned midi_volume;
} uints;
struct
{
size_t placeholder;
size_t rewind_buffer_size;
} sizes;
struct
{
char placeholder;
@@ -393,11 +449,13 @@ typedef struct settings
char menu_driver[32];
char cheevos_username[32];
char cheevos_password[32];
char cheevos_token[32];
char video_context_driver[32];
char audio_driver[32];
char audio_resampler[32];
char input_driver[32];
char input_joypad_driver[32];
char midi_driver[32];
char input_keyboard_layout[64];
@@ -411,6 +469,9 @@ typedef struct settings
char bundle_assets_dst_subdir[PATH_MAX_LENGTH];
char netplay_mitm_server[255];
char midi_input[32];
char midi_output[32];
} arrays;
struct
@@ -431,6 +492,9 @@ typedef struct settings
char path_cheat_database[PATH_MAX_LENGTH];
char path_content_database[PATH_MAX_LENGTH];
char path_overlay[PATH_MAX_LENGTH];
char path_record_config[PATH_MAX_LENGTH];
char path_stream_config[PATH_MAX_LENGTH];
char path_stream_url[PATH_MAX_LENGTH];
char path_menu_wallpaper[PATH_MAX_LENGTH];
char path_audio_dsp_plugin[PATH_MAX_LENGTH];
char path_softfilter_plugin[PATH_MAX_LENGTH];
@@ -445,7 +509,6 @@ typedef struct settings
char path_shader[PATH_MAX_LENGTH];
char path_font[PATH_MAX_LENGTH];
char directory_audio_filter[PATH_MAX_LENGTH];
char directory_autoconfig[PATH_MAX_LENGTH];
char directory_video_filter[PATH_MAX_LENGTH];
@@ -473,7 +536,6 @@ typedef struct settings
video_viewport_t video_viewport_custom;
size_t rewind_buffer_size;
} settings_t;
/**
@@ -557,6 +619,9 @@ const char *config_get_default_joypad(void);
**/
const char *config_get_default_menu(void);
const char *config_get_default_midi(void);
const char *config_get_midi_driver_options(void);
const char *config_get_default_record(void);
/**
+3 -4
View File
@@ -92,17 +92,16 @@ void content_clear_subsystem(void);
void content_set_subsystem(unsigned subsystem);
/* Get the current subsystem*/
int content_get_subsystem();
int content_get_subsystem(void);
/* Add a rom to the subsystem rom buffer */
void content_add_subsystem(const char* path);
/* Get the current subsystem rom id */
int content_get_subsystem_rom_id();
unsigned content_get_subsystem_rom_id(void);
/* Set environment variables before a subsystem load */
void content_set_subsystem_info();
void content_set_subsystem_info(void);
RETRO_END_DECLS
+3
View File
@@ -170,6 +170,9 @@ bool core_set_poll_type(unsigned *type);
/* Runs the core for one frame. */
bool core_run(void);
/* Runs the core for one frame, but does not trigger any input polling */
bool core_run_no_input_polling(void);
bool core_init(void);
bool core_deinit(void *data);
+36 -1
View File
@@ -43,6 +43,12 @@
#include "verbosity.h"
#include "gfx/video_driver.h"
#include "audio/audio_driver.h"
#include "tasks/tasks_internal.h"
#ifdef HAVE_RUNAHEAD
#include "runahead/copy_load_info.h"
#include "runahead/secondary_core.h"
#endif
struct retro_callbacks retro_ctx;
struct retro_core_t current_core;
@@ -262,6 +268,11 @@ bool core_set_controller_port_device(retro_ctx_controller_info_t *pad)
{
if (!pad)
return false;
#ifdef HAVE_RUNAHEAD
remember_controller_port_device(pad->port, pad->device);
#endif
current_core.retro_set_controller_port_device(pad->port, pad->device);
return true;
}
@@ -280,7 +291,15 @@ bool core_load_game(retro_ctx_load_content_info_t *load_info)
bool contentless = false;
bool is_inited = false;
video_driver_set_cached_frame_ptr(NULL);
#ifdef HAVE_RUNAHEAD
set_load_content_info(load_info);
clear_controller_port_map();
#endif
content_get_status(&contentless, &is_inited);
set_save_state_in_background(false);
if (load_info && load_info->special)
current_core.game_loaded = current_core.retro_load_game_special(
@@ -358,12 +377,16 @@ bool core_get_system_av_info(struct retro_system_av_info *av_info)
bool core_reset(void)
{
video_driver_set_cached_frame_ptr(NULL);
current_core.retro_reset();
return true;
}
bool core_init(void)
{
video_driver_set_cached_frame_ptr(NULL);
current_core.retro_init();
current_core.inited = true;
return true;
@@ -371,6 +394,8 @@ bool core_init(void)
bool core_unload(void)
{
video_driver_set_cached_frame_ptr(NULL);
current_core.retro_deinit();
return true;
}
@@ -379,11 +404,15 @@ bool core_unload(void)
bool core_unload_game(void)
{
video_driver_free_hw_context();
audio_driver_stop();
video_driver_set_cached_frame_ptr(NULL);
current_core.retro_unload_game();
current_core.game_loaded = false;
audio_driver_stop();
return true;
}
@@ -424,6 +453,12 @@ bool core_run(void)
return true;
}
bool core_run_no_input_polling(void)
{
current_core.retro_run();
return true;
}
bool core_load(unsigned poll_type_behavior)
{
current_core.poll_type = poll_type_behavior;
+52 -33
View File
@@ -17,6 +17,7 @@
#include <compat/strl.h>
#include <string/stdstring.h>
#include <file/config_file.h>
#include <file/file_path.h>
#include <lists/dir_list.h>
#include <file/archive_file.h>
@@ -26,14 +27,10 @@
#include "config.h"
#endif
#include "retroarch.h"
#include "verbosity.h"
#include "config.def.h"
#include "core_info.h"
#include "configuration.h"
#include "file_path_special.h"
#include "list_special.h"
static const char *core_info_tmp_path = NULL;
static const struct string_list *core_info_tmp_list = NULL;
@@ -152,8 +149,10 @@ static void core_info_list_free(core_info_list_t *core_info_list)
free(info->path);
free(info->core_name);
free(info->systemname);
free(info->system_id);
free(info->system_manufacturer);
free(info->display_name);
free(info->display_version);
free(info->supported_extensions);
free(info->authors);
free(info->permissions);
@@ -224,21 +223,23 @@ static bool core_info_list_iterate(
return true;
}
static core_info_list_t *core_info_list_new(const char *path)
static core_info_list_t *core_info_list_new(const char *path,
const char *libretro_info_dir,
const char *exts,
bool show_hidden_files)
{
size_t i;
core_info_t *core_info = NULL;
core_info_list_t *core_info_list = NULL;
struct string_list *contents = dir_list_new_special(
path, DIR_LIST_CORES, NULL);
settings_t *settings = config_get_ptr();
const char *path_basedir = !string_is_empty(settings->paths.path_libretro_info) ?
settings->paths.path_libretro_info : settings->paths.directory_libretro;
const char *path_basedir = libretro_info_dir;
struct string_list *contents = dir_list_new(
path, exts,
false,
show_hidden_files,
false, false);
if (!contents)
return NULL;
core_info_list = (core_info_list_t*)calloc(1, sizeof(*core_info_list));
if (!core_info_list)
goto error;
@@ -279,6 +280,13 @@ static core_info_list_t *core_info_list_new(const char *path)
free(tmp);
tmp = NULL;
}
if (config_get_string(conf, "display_version", &tmp)
&& !string_is_empty(tmp))
{
core_info[i].display_version = strdup(tmp);
free(tmp);
tmp = NULL;
}
if (config_get_string(conf, "corename", &tmp)
&& !string_is_empty(tmp))
{
@@ -295,6 +303,14 @@ static core_info_list_t *core_info_list_new(const char *path)
tmp = NULL;
}
if (config_get_string(conf, "systemid", &tmp)
&& !string_is_empty(tmp))
{
core_info[i].system_id = strdup(tmp);
free(tmp);
tmp = NULL;
}
if (config_get_string(conf, "manufacturer", &tmp)
&& !string_is_empty(tmp))
{
@@ -518,7 +534,8 @@ static core_info_t *core_info_find_internal(
static bool core_info_list_update_missing_firmware_internal(
core_info_list_t *core_info_list,
const char *core,
const char *systemdir)
const char *systemdir,
bool *set_missing_bios)
{
size_t i;
core_info_t *info = NULL;
@@ -535,7 +552,6 @@ static bool core_info_list_update_missing_firmware_internal(
path = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
path[0] = '\0';
rarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
for (i = 0; i < info->firmware_count; i++)
{
@@ -547,7 +563,7 @@ static bool core_info_list_update_missing_firmware_internal(
info->firmware[i].missing = !filestream_exists(path);
if (info->firmware[i].missing && !info->firmware[i].optional)
{
rarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
*set_missing_bios = true;
RARCH_WARN("Firmware missing: %s\n", info->firmware[i].path);
}
}
@@ -635,14 +651,13 @@ void core_info_deinit_list(void)
core_info_curr_list = NULL;
}
bool core_info_init_list(void)
bool core_info_init_list(const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files)
{
settings_t *settings = config_get_ptr();
if (settings)
core_info_curr_list = core_info_list_new(settings->paths.directory_libretro);
if (!core_info_curr_list)
if (!(core_info_curr_list = core_info_list_new(dir_cores,
!string_is_empty(path_info) ? path_info : dir_cores,
exts,
show_hidden_files)))
return false;
return true;
}
@@ -655,13 +670,15 @@ bool core_info_get_list(core_info_list_t **core)
return true;
}
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info)
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios)
{
if (!info)
return false;
return core_info_list_update_missing_firmware_internal(
core_info_curr_list,
info->path, info->directory.system);
info->path, info->directory.system,
set_missing_bios);
}
bool core_info_load(core_info_ctx_find_t *info)
@@ -671,6 +688,9 @@ bool core_info_load(core_info_ctx_find_t *info)
if (!info)
return false;
if (!core_info_current)
core_info_init_current_core();
core_info_get_current_core(&core_info);
if (!core_info_curr_list)
@@ -751,16 +771,15 @@ void core_info_list_get_supported_cores(core_info_list_t *core_info_list,
*num_infos = supported;
}
void core_info_get_name(const char *path, char *s, size_t len)
void core_info_get_name(const char *path, char *s, size_t len,
const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files)
{
size_t i;
settings_t *settings = config_get_ptr();
struct string_list *contents = dir_list_new_special(
settings->paths.directory_libretro,
DIR_LIST_CORES, NULL);
const char *path_basedir = !string_is_empty(settings->paths.path_libretro_info) ?
settings->paths.path_libretro_info : settings->paths.directory_libretro;
const char *path_basedir = !string_is_empty(path_info) ?
path_info : dir_cores;
struct string_list *contents = dir_list_new(
dir_cores, exts, false, show_hidden_files, false, false);
if (!contents)
return;
@@ -786,7 +805,7 @@ void core_info_get_name(const char *path, char *s, size_t len)
continue;
}
conf = config_file_new(info_path);
conf = config_file_new(info_path);
if (!conf)
{
+9 -3
View File
@@ -43,9 +43,11 @@ typedef struct
char *path;
void *config_data;
char *display_name;
char *display_version;
char *core_name;
char *system_manufacturer;
char *systemname;
char *system_id;
char *supported_extensions;
char *authors;
char *permissions;
@@ -97,7 +99,9 @@ bool core_info_list_get_display_name(core_info_list_t *list,
bool core_info_get_display_name(const char *path, char *s, size_t len);
void core_info_get_name(const char *path, char *s, size_t len);
void core_info_get_name(const char *path, char *s, size_t len,
const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files);
core_info_t *core_info_get(core_info_list_t *list, size_t i);
@@ -109,11 +113,13 @@ bool core_info_get_current_core(core_info_t **core);
void core_info_deinit_list(void);
bool core_info_init_list(void);
bool core_info_init_list(const char *path_info, const char *dir_cores,
const char *exts, bool show_hidden_files);
bool core_info_get_list(core_info_list_t **core);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info);
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info,
bool *set_missing_bios);
bool core_info_find(core_info_ctx_find_t *info, const char *name);
+1
View File
@@ -21,6 +21,7 @@ enum rarch_core_type
CORE_TYPE_PLAIN = 0,
CORE_TYPE_DUMMY,
CORE_TYPE_FFMPEG,
CORE_TYPE_MPV,
CORE_TYPE_IMAGEVIEWER,
CORE_TYPE_NETRETROPAD,
CORE_TYPE_VIDEO_PROCESSOR
+56
View File
@@ -136,6 +136,62 @@ size_t libretro_ffmpeg_retro_get_memory_size(unsigned id);
#endif
#ifdef HAVE_MPV
/* Internal mpv core. */
void libretro_mpv_retro_init(void);
void libretro_mpv_retro_deinit(void);
unsigned libretro_mpv_retro_api_version(void);
void libretro_mpv_retro_get_system_info(struct retro_system_info *info);
void libretro_mpv_retro_get_system_av_info(struct retro_system_av_info *info);
void libretro_mpv_retro_set_environment(retro_environment_t cb);
void libretro_mpv_retro_set_video_refresh(retro_video_refresh_t cb);
void libretro_mpv_retro_set_audio_sample(retro_audio_sample_t cb);
void libretro_mpv_retro_set_audio_sample_batch(retro_audio_sample_batch_t cb);
void libretro_mpv_retro_set_input_poll(retro_input_poll_t cb);
void libretro_mpv_retro_set_input_state(retro_input_state_t cb);
void libretro_mpv_retro_set_controller_port_device(unsigned port, unsigned device);
void libretro_mpv_retro_reset(void);
void libretro_mpv_retro_run(void);
size_t libretro_mpv_retro_serialize_size(void);
bool libretro_mpv_retro_serialize(void *data, size_t size);
bool libretro_mpv_retro_unserialize(const void *data, size_t size);
void libretro_mpv_retro_cheat_reset(void);
void libretro_mpv_retro_cheat_set(unsigned index, bool enabled, const char *code);
bool libretro_mpv_retro_load_game(const struct retro_game_info *game);
bool libretro_mpv_retro_load_game_special(unsigned game_type,
const struct retro_game_info *info, size_t num_info);
void libretro_mpv_retro_unload_game(void);
unsigned libretro_mpv_retro_get_region(void);
void *libretro_mpv_retro_get_memory_data(unsigned id);
size_t libretro_mpv_retro_get_memory_size(unsigned id);
#endif
#ifdef HAVE_IMAGEVIEWER
/* Internal image viewer core. */
+1 -7
View File
@@ -98,12 +98,6 @@ ifneq (,$(findstring gles,$(platform)))
CFLAGS += -DHAVE_OPENGLES
endif
ifneq (,$(findstring qnx,$(platform)))
CFLAGS += -Wc,-std=c99
else
CFLAGS += -std=gnu99
endif
# Locale support should be enabled by default, as it's most common.
ifneq ($(locale),false)
CFLAGS += -DHAVE_LOCALE
@@ -120,7 +114,7 @@ endif
CFLAGS += -I../../libretro-common/include
OBJECTS := mpv-libretro.o
LDFLAGS += -lmpv
LDFLAGS += -lmpv -lm
CFLAGS += -Wall -pedantic
all: $(TARGET)
+33 -4
View File
@@ -1,17 +1,46 @@
# libretro-mpv
mpv media player as a libretro core. A proof of concept release is now available.
mpv media player as a libretro core. A proof of concept release is now
available.
Aims to use features already established in mpv that are not currently available in Retroarch movieplayer.
Aims to use features already established in mpv that are not currently
available in Retroarch movieplayer.
I want to be able to use Retroarch as my movie player on my embedded devices (Raspberry Pi) and desktop using hardware acceleration without having to use Kodi or mpv directly. Thus allowing for a more integrated experience, and smaller root filesystem.
I want to be able to use Retroarch as my movie player on my embedded devices
(Raspberry Pi) and desktop using hardware acceleration without having to use
Kodi or mpv directly. Thus allowing for a more integrated experience, and
smaller root filesystem.
## Compiling
Retroarch must be compiled with `--disable-ffmpeg` to stop the integrated movieplayer from playing the input file.
### Overview
Retroarch must be compiled with `--disable-ffmpeg` to stop the integrated
movieplayer from playing the input file.
FFmpeg (preferably master branch) must be compiled with `--enable-shared`.
mpv must be compiled with `--enable-libmpv-shared`.
Then run `make` in the mpv-libretro folder.
### Compiling with Mingw-w64 on Windows
RetroArch must be compiled with `--disable-ffmpeg` and have OpenGL or
OpenGLES enabled. Compiling RetroArch is not described here.
1. Open `Minwg-w64 64 bit` (not MSYS2 shell).
2. Install ffmpeg using `pacman -S mingw64/mingw-w64-x86_64-ffmpeg`.
3. Clone the ao_cb branch of https://github.com/deltabeard/mpv.git . This fork has the audio
callback patches required for libretro-mpv.
4. Follow the instructions at https://github.com/mpv-player/mpv/blob/master/DOCS/compile-windows.md#native-compilation-with-msys2 to compile mpv.
5. Download libretro-mpv release 0.3.alpha by either checking out the
`audio-cb-new` branch of `https://github.com/libretro/libretro-mpv.git` or
by downloading
https://github.com/libretro/libretro-mpv/archive/0.3.alpha.tar.gz .
6. Run `make` in the libretro-mpv folder. If using OpenGLES, run `make
platform=gles` instead.
Overall, the dependencies required to build libretro-mpv are:
- ffmpeg 4.0 (provided by mingw64/mingw-w64-x86_64-ffmpeg)
- mpv from https://github.com/deltabeard/mpv.git fork.
+1
View File
@@ -0,0 +1 @@
#include "../internal_cores.h"
+279 -193
View File
@@ -1,35 +1,41 @@
/* mpv media player libretro core
* Copyright (C) 2018 Mahyar Koshkouei
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <dlfcn.h>
#include <math.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_LOCALE
#include <locale.h>
#endif
#include <mpv/client.h>
#include <mpv/opengl_cb.h>
#include <mpv/render_gl.h>
#include <libretro.h>
#ifdef RARCH_INTERNAL
#include "internal_cores.h"
#define CORE_PREFIX(s) libretro_mpv_##s
#else
#define CORE_PREFIX(s) s
#endif
#include "libretro.h"
#include "version.h"
static struct retro_hw_render_callback hw_render;
@@ -37,25 +43,29 @@ static struct retro_hw_render_callback hw_render;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
static retro_video_refresh_t video_cb;
static retro_audio_sample_t audio_cb;
static retro_audio_sample_batch_t audio_batch_cb;
static retro_environment_t environ_cb;
static retro_input_poll_t input_poll_cb;
static retro_input_state_t input_state_cb;
static retro_video_refresh_t CORE_PREFIX(video_cb);
static retro_audio_sample_t CORE_PREFIX(audio_cb);
static retro_audio_sample_batch_t CORE_PREFIX(audio_batch_cb);
static retro_environment_t CORE_PREFIX(environ_cb);
static retro_input_poll_t CORE_PREFIX(input_poll_cb);
static retro_input_state_t CORE_PREFIX(input_state_cb);
static mpv_handle *mpv;
static mpv_opengl_cb_context *mpv_gl;
/* Keep track of the number of events in mpv queue */
static unsigned int event_waiting = 0;
static mpv_render_context *mpv_gl;
/* Save the current playback time for context changes */
static int64_t *playback_time = 0;
static int64_t playback_time = 0;
/* filepath required globaly as mpv is reopened on context change */
static char *filepath = NULL;
static volatile int frame_queue = 0;
void on_mpv_redraw(void *cb_ctx)
{
frame_queue++;
}
static void fallback_log(enum retro_log_level level, const char *fmt, ...)
{
(void)level;
@@ -65,52 +75,59 @@ static void fallback_log(enum retro_log_level level, const char *fmt, ...)
va_end(va);
}
static void print_mpv_logs(void)
/**
* Process various events triggered by mpv, such as printing log messages.
*
* \param event_block Wait until the mpv triggers specified event. Should be
* NULL if no wait is required.
*/
static void process_mpv_events(mpv_event_id event_block)
{
/* Print out mpv logs */
if(event_waiting > 0)
do
{
while(1)
mpv_event *mp_event = mpv_wait_event(mpv, 0);
if(event_block == MPV_EVENT_NONE &&
mp_event->event_id == MPV_EVENT_NONE)
break;
if(mp_event->event_id == event_block)
event_block = MPV_EVENT_NONE;
if(mp_event->event_id == MPV_EVENT_LOG_MESSAGE)
{
mpv_event *mp_event = mpv_wait_event(mpv, 0);
if(mp_event->event_id == MPV_EVENT_NONE)
break;
if(mp_event->event_id == MPV_EVENT_LOG_MESSAGE)
{
struct mpv_event_log_message *msg =
(struct mpv_event_log_message *)mp_event->data;
log_cb(RETRO_LOG_INFO, "mpv: [%s] %s: %s",
msg->prefix, msg->level, msg->text);
}
else if(mp_event->event_id == MPV_EVENT_END_FILE)
{
struct mpv_event_end_file *eof =
(struct mpv_event_end_file *)mp_event->data;
if(eof->reason == MPV_END_FILE_REASON_EOF)
environ_cb(RETRO_ENVIRONMENT_SHUTDOWN, NULL);
#if 0
/* The following could be done instead if the file was not
* closed once the end was reached - allowing the user to seek
* back without reopening the file.
*/
struct retro_message ra_msg = {
"Finished playing file", 60 * 5, /* 5 seconds */
};
environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, &ra_msg);RETRO_ENVIRONMENT_SHUTDOWN
#endif
}
else
{
log_cb(RETRO_LOG_INFO, "mpv: %s\n",
mpv_event_name(mp_event->event_id));
}
struct mpv_event_log_message *msg =
(struct mpv_event_log_message *)mp_event->data;
log_cb(RETRO_LOG_INFO, "mpv: [%s] %s: %s",
msg->prefix, msg->level, msg->text);
}
else if(mp_event->event_id == MPV_EVENT_END_FILE)
{
struct mpv_event_end_file *eof =
(struct mpv_event_end_file *)mp_event->data;
event_waiting = 0;
if(eof->reason == MPV_END_FILE_REASON_EOF)
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SHUTDOWN, NULL);
#if 0
/* The following could be done instead if the file was not
* closed once the end was reached - allowing the user to seek
* back without reopening the file.
*/
struct retro_message ra_msg = {
"Finished playing file", 60 * 5, /* 5 seconds */
};
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_MESSAGE, &ra_msg);RETRO_ENVIRONMENT_SHUTDOWN
#endif
}
else if(mp_event->event_id == MPV_EVENT_NONE)
continue;
else
{
log_cb(RETRO_LOG_INFO, "mpv: %s\n",
mpv_event_name(mp_event->event_id));
}
}
while(1);
}
static void *get_proc_address_mpv(void *fn_ctx, const char *name)
@@ -123,53 +140,38 @@ static void *get_proc_address_mpv(void *fn_ctx, const char *name)
void *proc_addr = (void *) hw_render.get_proc_address(name);
#pragma GCC diagnostic pop
// EGL 1.4 (supported by the RPI firmware) does not necessarily return
// function pointers for core functions.
if (!proc_addr) {
void *h = dlopen("/opt/vc/lib/libGLESv2.so", RTLD_LAZY);
if (!h)
h = dlopen("/usr/lib/libGLESv2.so", RTLD_LAZY);
if (h) {
proc_addr = dlsym(h, name);
dlclose(h);
}
}
if(proc_addr == NULL)
log_cb(RETRO_LOG_ERROR, "Failure obtaining %s proc address\n", name);
return proc_addr;
}
static void on_mpv_events(void *mpv)
void CORE_PREFIX(retro_init)(void)
{
event_waiting++;
}
if(mpv_client_api_version() != MPV_CLIENT_API_VERSION)
{
log_cb(RETRO_LOG_WARN, "libmpv version mismatch. Please update or "
"recompile mpv-libretro after updating libmpv.");
}
void retro_init(void)
{
return;
}
void retro_deinit(void)
{
return;
}
void CORE_PREFIX(retro_deinit)(void)
{}
unsigned retro_api_version(void)
unsigned CORE_PREFIX(retro_api_version)(void)
{
return RETRO_API_VERSION;
}
void retro_set_controller_port_device(unsigned port, unsigned device)
void CORE_PREFIX(retro_set_controller_port_device)(unsigned port, unsigned device)
{
log_cb(RETRO_LOG_INFO, "Plugging device %u into port %u.\n", device, port);
return;
}
void retro_get_system_info(struct retro_system_info *info)
void CORE_PREFIX(retro_get_system_info)(struct retro_system_info *info)
{
memset(info, 0, sizeof(*info));
info->library_name = "mpv";
@@ -190,18 +192,19 @@ void retro_get_system_info(struct retro_system_info *info)
"vtt|wav|wsd|xl|xm|xmgz|xmr|xmv|xmz|xvag|y4m|yop|yuv|yuv10";
}
void retro_get_system_av_info(struct retro_system_av_info *info)
void CORE_PREFIX(retro_get_system_av_info)(struct retro_system_av_info *info)
{
float sampling_rate = 48000.0f;
#if 0
struct retro_variable var = { .key = "test_aspect" };
environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var);
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_GET_VARIABLE, &var);
var.key = "test_samplerate";
if(environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
if(CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
sampling_rate = strtof(var.value, NULL);
#endif
info->timing = (struct retro_system_timing) {
.fps = 60.0,
.sample_rate = sampling_rate,
@@ -219,15 +222,17 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
};
}
void retro_set_environment(retro_environment_t cb)
void CORE_PREFIX(retro_set_environment)(retro_environment_t cb)
{
environ_cb = cb;
CORE_PREFIX(environ_cb) = cb;
static const struct retro_variable vars[] = {
{ "test_samplerate", "Sample Rate; 48000|30000|20000" },
#if 0
{ "test_samplerate", "Sample Rate; 48000" },
{ "test_opt0", "Test option #0; false|true" },
{ "test_opt1", "Test option #1; 0" },
{ "test_opt2", "Test option #2; 0|1|foo|3" },
#endif
{ NULL, NULL },
};
@@ -242,6 +247,7 @@ void retro_set_environment(retro_environment_t cb)
static void context_reset(void)
{
const char *cmd[] = {"loadfile", filepath, NULL};
int ret;
#ifdef HAVE_LOCALE
setlocale(LC_NUMERIC, "C");
@@ -249,59 +255,68 @@ static void context_reset(void)
mpv = mpv_create();
if(mpv == NULL)
if(!mpv)
{
log_cb(RETRO_LOG_ERROR, "failed creating context\n");
exit(EXIT_FAILURE);
}
if(mpv_initialize(mpv) < 0)
if((ret = mpv_initialize(mpv)) < 0)
{
log_cb(RETRO_LOG_ERROR, "mpv init failed\n");
log_cb(RETRO_LOG_ERROR, "mpv init failed: %s\n", mpv_error_string(ret));
exit(EXIT_FAILURE);
}
/* When normal mpv events are available. */
mpv_set_wakeup_callback(mpv, on_mpv_events, NULL);
if((ret = mpv_request_log_messages(mpv, "v")) < 0)
{
log_cb(RETRO_LOG_ERROR, "mpv logging failed: %s\n",
mpv_error_string(ret));
}
if(mpv_request_log_messages(mpv, "v") < 0)
log_cb(RETRO_LOG_ERROR, "mpv logging failed\n");
mpv_render_param params[] = {
{MPV_RENDER_PARAM_API_TYPE, MPV_RENDER_API_TYPE_OPENGL},
{MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &(mpv_opengl_init_params){
.get_proc_address = get_proc_address_mpv,
}},
{0}
};
/* The OpenGL API is somewhat separate from the normal mpv API. This only
* returns NULL if no OpenGL support is compiled.
if((ret = mpv_render_context_create(&mpv_gl, mpv, params)) < 0)
{
log_cb(RETRO_LOG_ERROR, "failed to initialize mpv GL context: %s\n",
mpv_error_string(ret));
goto err;
}
mpv_render_context_set_update_callback(mpv_gl, on_mpv_redraw, NULL);
mpv_set_option_string(mpv, "ao", "libmpv");
/* Attempt to enable hardware acceleration. MPV will fallback to software
* decoding on failure.
*/
mpv_gl = mpv_get_sub_api(mpv, MPV_SUB_API_OPENGL_CB);
if(mpv_gl == NULL)
if((ret = mpv_set_option_string(mpv, "hwdec", "auto")) < 0)
{
log_cb(RETRO_LOG_ERROR, "failed to create mpv GL API handle\n");
log_cb(RETRO_LOG_ERROR, "failed to set hwdec option: %s\n",
mpv_error_string(ret));
}
if((ret = mpv_command(mpv, cmd)) != 0)
{
log_cb(RETRO_LOG_ERROR, "mpv_command failed to load input file: %s\n",
mpv_error_string(ret));
goto err;
}
if(mpv_opengl_cb_init_gl(mpv_gl, NULL, get_proc_address_mpv, NULL) < 0)
{
log_cb(RETRO_LOG_ERROR, "failed to initialize mpv GL context\n");
goto err;
}
/* Actually using the opengl_cb state has to be explicitly requested.
* Otherwise, mpv will create a separate platform window.
/* TODO #2: Check for the highest samplerate in audio stream, and use that.
* Fall back to 48kHz otherwise.
* We currently force the audio to be sampled at 48KHz.
*/
if(mpv_set_option_string(mpv, "vo", "opengl-cb") < 0)
{
log_cb(RETRO_LOG_ERROR, "failed to set video output to OpenGL\n");
goto err;
}
if(mpv_set_option_string(mpv, "hwdec", "auto") < 0)
log_cb(RETRO_LOG_ERROR, "failed to set hwdec option\n");
if(mpv_command(mpv, cmd) != 0)
{
log_cb(RETRO_LOG_ERROR, "failed to issue mpv_command to load file\n");
goto err;
}
mpv_set_option_string(mpv, "af", "format=s16:48000:stereo");
//mpv_set_option_string(mpv, "opengl-swapinterval", "0");
/* Process any events whilst we wait for playback to begin. */
process_mpv_events(MPV_EVENT_NONE);
/* Keep trying until mpv accepts the property. This is done to seek to the
* point in the file after the previous context was destroyed. If no
@@ -309,27 +324,32 @@ static void context_reset(void)
*
* This also seems to fix some black screen issues.
*/
while(mpv_set_property(mpv,
"playback-time", MPV_FORMAT_INT64, &playback_time) < 0)
if(playback_time != 0)
{
/* Garbage fix to overflowing log */
usleep(10);
process_mpv_events(MPV_EVENT_PLAYBACK_RESTART);
while(mpv_set_property(mpv,
"playback-time", MPV_FORMAT_INT64, &playback_time) < 0)
{}
}
/* The following works best when vsync is switched off in Retroarch. */
//mpv_set_option_string(mpv, "video-sync", "display-resample");
//mpv_set_option_string(mpv, "display-fps", "60");
log_cb(RETRO_LOG_INFO, "Context reset.\n");
return;
err:
/* Print mpv logs to see why mpv failed. */
print_mpv_logs();
process_mpv_events(MPV_EVENT_NONE);
exit(EXIT_FAILURE);
}
static void context_destroy(void)
{
mpv_get_property(mpv, "playback-time", MPV_FORMAT_INT64, &playback_time);
mpv_opengl_cb_uninit_gl(mpv_gl);
mpv_render_context_free(mpv_gl);
mpv_terminate_destroy(mpv);
log_cb(RETRO_LOG_INFO, "Context destroyed.\n");
}
@@ -344,56 +364,78 @@ static bool retro_init_hw_context(void)
hw_render.context_reset = context_reset;
hw_render.context_destroy = context_destroy;
if (!environ_cb(RETRO_ENVIRONMENT_SET_HW_RENDER, &hw_render))
if (!CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_HW_RENDER, &hw_render))
return false;
return true;
}
void retro_set_audio_sample(retro_audio_sample_t cb)
void CORE_PREFIX(retro_set_audio_sample)(retro_audio_sample_t cb)
{
audio_cb = cb;
CORE_PREFIX(audio_cb) = cb;
}
void retro_set_audio_sample_batch(retro_audio_sample_batch_t cb)
void CORE_PREFIX(retro_set_audio_sample_batch)(retro_audio_sample_batch_t cb)
{
audio_batch_cb = cb;
CORE_PREFIX(audio_batch_cb) = cb;
}
void retro_set_input_poll(retro_input_poll_t cb)
void CORE_PREFIX(retro_set_input_poll)(retro_input_poll_t cb)
{
input_poll_cb = cb;
CORE_PREFIX(input_poll_cb) = cb;
}
void retro_set_input_state(retro_input_state_t cb)
void CORE_PREFIX(retro_set_input_state)(retro_input_state_t cb)
{
input_state_cb = cb;
CORE_PREFIX(input_state_cb) = cb;
}
void retro_set_video_refresh(retro_video_refresh_t cb)
void CORE_PREFIX(retro_set_video_refresh)(retro_video_refresh_t cb)
{
video_cb = cb;
CORE_PREFIX(video_cb) = cb;
}
void retro_reset(void)
void CORE_PREFIX(retro_reset)(void)
{
return;
}
#if 0
static void audio_callback(void)
static void audio_callback(double fps)
{
static unsigned phase;
/* Obtain len samples to reduce lag. */
int len = 48000 / (int)floor(fps);
const unsigned int buff_len = 1024;
uint8_t buff[buff_len];
for (unsigned i = 0; i < 30000 / 60; i++, phase++)
if(len < 4)
len = 4;
do
{
int16_t val = 0x800 * sinf(2.0f * M_PI * phase * 300.0f / 30000.0f);
audio_cb(val, val);
}
len = len - (len % 4);
phase %= 100;
}
int ret = mpv_audio_callback(mpv, &buff,
len > buff_len ? buff_len : len);
if(ret < 0)
{
#if 0
log_cb(RETRO_LOG_ERROR, "mpv encountered an error in audio "
"callback: %d.\n", ret);
#endif
return;
}
/* mpv may refuse to buffer audio if the first video frame has not
* displayed yet. */
if(ret == 0)
return;
len -= ret;
CORE_PREFIX(audio_batch_cb)((const int16_t*)buff, ret);
}
while(len > 4);
}
static void retropad_update_input(void)
{
@@ -406,22 +448,22 @@ static void retropad_update_input(void)
struct Input current;
static struct Input last;
input_poll_cb();
CORE_PREFIX(input_poll_cb)();
/* Commands that are called on rising edge only */
/* A ternary operator is used since input_state_cb returns an int16_t, but
* we only care about whether the button is on or off which is why we store
* the value in a single bit for each button.
*
*
* Unsure if saving the memory is worth the extra checks, costing CPU time,
* but both are incredibly miniscule anyway.
*/
current.l = input_state_cb(0, RETRO_DEVICE_JOYPAD,
current.l = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_L) != 0 ? 1 : 0;
current.r = input_state_cb(0, RETRO_DEVICE_JOYPAD,
current.r = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_R) != 0 ? 1 : 0;
current.a = input_state_cb(0, RETRO_DEVICE_JOYPAD,
current.a = CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD,
0, RETRO_DEVICE_ID_JOYPAD_A) != 0 ? 1 : 0;
if(current.l == 1 && last.l == 0)
@@ -434,24 +476,24 @@ static void retropad_update_input(void)
mpv_command_string(mpv, "cycle pause");
/* TODO #3: Press and hold commands with small delay */
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_LEFT))
mpv_command_string(mpv, "seek -5");
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_RIGHT))
mpv_command_string(mpv, "seek 5");
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_UP))
mpv_command_string(mpv, "seek 60");
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_DOWN))
mpv_command_string(mpv, "seek -60");
/* Press and hold commands */
if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,
if (CORE_PREFIX(input_state_cb)(0, RETRO_DEVICE_JOYPAD, 0,
RETRO_DEVICE_ID_JOYPAD_X))
mpv_command_string(mpv, "show-progress");
@@ -463,19 +505,21 @@ static void retropad_update_input(void)
last.a = current.a;
}
void retro_run(void)
void CORE_PREFIX(retro_run)(void)
{
/* We only need to update the base video size once, and we do it here since
* the input file is not processed during the first
* retro_get_system_av_info() call.
*/
static bool updated_video_dimensions = false;
static int64_t width, height;
static int64_t width = 0, height = 0;
static double container_fps = 30.0f;
if(updated_video_dimensions == false)
{
mpv_get_property(mpv, "dwidth", MPV_FORMAT_INT64, &width);
mpv_get_property(mpv, "dheight", MPV_FORMAT_INT64, &height);
mpv_get_property(mpv, "container-fps", MPV_FORMAT_DOUBLE, &container_fps);
/* We don't know the dimensions of the video when
* retro_get_system_av_info is called, so we have to set it here for
@@ -492,38 +536,73 @@ void retro_run(void)
.aspect_ratio = -1,
};
environ_cb(RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO, &geometry);
log_cb(RETRO_LOG_INFO, "Setting fps to %f\n", container_fps);
struct retro_system_timing timing = {
.fps = container_fps,
.sample_rate = 48000.0f,
};
struct retro_system_av_info av_info = {
.geometry = geometry,
.timing = timing,
};
if(width > 0 && height > 0)
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO, &av_info);
updated_video_dimensions = true;
}
print_mpv_logs();
retropad_update_input();
/* TODO #2: Implement an audio callback feature in to libmpv */
/* audio_callback(); */
/* TODO #2: Implement an audio callback feature in to libmpv */
audio_callback(container_fps);
process_mpv_events(MPV_EVENT_NONE);
#if 1
if(frame_queue > 0)
{
mpv_render_param params[] = {
{MPV_RENDER_PARAM_OPENGL_FBO, &(mpv_opengl_fbo){
.fbo = hw_render.get_current_framebuffer(),
.w = width,
.h = height,
}},
{0}
};
mpv_render_context_render(mpv_gl, params);
CORE_PREFIX(video_cb)(RETRO_HW_FRAME_BUFFER_VALID, width, height, 0);
frame_queue--;
}
else
CORE_PREFIX(video_cb)(NULL, width, height, 0);
#else
mpv_opengl_cb_draw(mpv_gl, hw_render.get_current_framebuffer(), width, height);
video_cb(RETRO_HW_FRAME_BUFFER_VALID, width, height, 0);
CORE_PREFIX(video_cb)(RETRO_HW_FRAME_BUFFER_VALID, width, height, 0);
#endif
return;
}
/* No save-state support */
size_t retro_serialize_size(void)
size_t CORE_PREFIX(retro_serialize_size)(void)
{
return 0;
}
bool retro_serialize(void *data_, size_t size)
bool CORE_PREFIX(retro_serialize)(void *data_, size_t size)
{
return true;
}
bool retro_unserialize(const void *data_, size_t size)
bool CORE_PREFIX(retro_unserialize)(const void *data_, size_t size)
{
return true;
}
bool retro_load_game(const struct retro_game_info *info)
bool CORE_PREFIX(retro_load_game)(const struct retro_game_info *info)
{
/* Supported on most systems. */
enum retro_pixel_format fmt = RETRO_PIXEL_FORMAT_XRGB8888;
@@ -540,21 +619,30 @@ bool retro_load_game(const struct retro_game_info *info)
{ 0 },
};
if(info->path == NULL)
return false;
/* Copy the file path to a global variable as we need it in context_reset()
* where mpv is initialised.
*/
filepath = strdup(info->path);
if((filepath = malloc(strlen(info->path)+1)) == NULL)
{
log_cb(RETRO_LOG_ERROR, "Unable to allocate memory for filepath\n");
return false;
}
environ_cb(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc);
strcpy(filepath,info->path);
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS, desc);
/* Not bothered if this fails. Assuming the default is selected anyway. */
if(environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt) == false)
if(CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt) == false)
{
log_cb(RETRO_LOG_ERROR, "XRGB8888 is not supported.\n");
/* Try RGB565 */
fmt = RETRO_PIXEL_FORMAT_RGB565;
environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt);
CORE_PREFIX(environ_cb)(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt);
}
if(retro_init_hw_context() == false)
@@ -566,41 +654,39 @@ bool retro_load_game(const struct retro_game_info *info)
return true;
}
bool retro_load_game_special(unsigned type, const struct retro_game_info *info,
bool CORE_PREFIX(retro_load_game_special)(unsigned type, const struct retro_game_info *info,
size_t num)
{
return false;
}
void retro_unload_game(void)
void CORE_PREFIX(retro_unload_game)(void)
{
free(filepath);
filepath = NULL;
return;
}
unsigned retro_get_region(void)
unsigned CORE_PREFIX(retro_get_region)(void)
{
return RETRO_REGION_NTSC;
}
void *retro_get_memory_data(unsigned id)
void *CORE_PREFIX(retro_get_memory_data)(unsigned id)
{
return NULL;
}
size_t retro_get_memory_size(unsigned id)
size_t CORE_PREFIX(retro_get_memory_size)(unsigned id)
{
return 0;
}
void retro_cheat_reset(void)
{
return;
}
void CORE_PREFIX(retro_cheat_reset)(void)
{}
void retro_cheat_set(unsigned index, bool enabled, const char *code)
void CORE_PREFIX(retro_cheat_set)(unsigned index, bool enabled, const char *code)
{
return;
(void)index;
(void)enabled;
(void)code;
}
+1 -1
View File
@@ -1,3 +1,3 @@
#ifndef LIBRETRO_MPV_VERSION
#define LIBRETRO_MPV_VERSION "0.2.alpha"
#define LIBRETRO_MPV_VERSION "0.3.alpha"
#endif
+1
View File
@@ -1,5 +1,6 @@
#include <3ds.h>
#include <sys/iosupport.h>
#include <3ds/services/apt.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
+85
View File
@@ -0,0 +1,85 @@
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/stat.h>
#include "mini-hb-menu/common.h"
extern const loaderFuncs_s loader_Ninjhax1;
extern const loaderFuncs_s loader_Ninjhax2;
extern const loaderFuncs_s loader_Rosalina;
static void (*launch_3dsx)(const char* path, argData_s* args, executableMetadata_s* em);
static int exec_3dsx_actual(const char* path, const char** args, bool appendPath){
struct stat sBuff;
argData_s newProgramArgs;
unsigned int argChars = 0;
unsigned int argNum = 0;
bool fileExists;
bool inited;
if(path == NULL || path[0] == '\0'){
errno = EINVAL;
return -1;
}
fileExists = stat(path, &sBuff) == 0;
if(!fileExists){
errno = ENOENT;
return -1;
}
else if(S_ISDIR(sBuff.st_mode)){
errno = EINVAL;
return -1;
}
//args the string functions write to the passed string, this will cause a write to read only memory sot the string must be cloned
memset(newProgramArgs.buf, '\0', sizeof(newProgramArgs.buf));
newProgramArgs.dst = (char*)&newProgramArgs.buf[1];
if(appendPath){
strcpy(newProgramArgs.dst, path);
newProgramArgs.dst += strlen(path) + 1;
newProgramArgs.buf[0]++;
}
while(args[argNum] != NULL){
strcpy(newProgramArgs.dst, args[argNum]);
newProgramArgs.dst += strlen(args[argNum]) + 1;
newProgramArgs.buf[0]++;
argNum++;
}
inited = loader_Rosalina.init();
launch_3dsx = loader_Rosalina.launchFile;
if(!inited){
inited = loader_Ninjhax2.init();
launch_3dsx = loader_Ninjhax2.launchFile;
}
if(!inited){
inited = loader_Ninjhax1.init();
launch_3dsx = loader_Ninjhax1.launchFile;
}
if(inited){
osSetSpeedupEnable(false);
launch_3dsx(path, &newProgramArgs, NULL);
exit(0);
}
//should never be reached
errno = ENOTSUP;
return -1;
}
int exec_3dsx(const char* path, const char** args){
return exec_3dsx_actual(path, args, true/*appendPath*/);
}
int exec_3dsx_no_path_in_args(const char* path, const char** args){
return exec_3dsx_actual(path, args, false/*appendPath*/);
}
+9
View File
@@ -0,0 +1,9 @@
#ifndef EXEC_3DSX_H
#define EXEC_3DSX_H
//since 3dsx programs are not guaranteed access to the OS, the 3dsx bootloader run by the exploit must run the next program
//your program must have no extra threads running when this is called, these limits do not apply to exec_cia
int exec_3dsx_no_path_in_args(const char* path, const char** args);
int exec_3dsx(const char* path, const char** args);
#endif
+203
View File
@@ -0,0 +1,203 @@
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/stat.h>
#include <3ds.h>
#define FILE_CHUNK_SIZE 4096
typedef struct{
u32 argc;
char args[0x300 - 0x4];
}ciaParam;
char argvHmac[0x20] = {0x1d, 0x78, 0xff, 0xb9, 0xc5, 0xbc, 0x78, 0xb7, 0xac, 0x29, 0x1d, 0x3e, 0x16, 0xd0, 0xcf, 0x53, 0xef, 0x12, 0x58, 0x83, 0xb6, 0x9e, 0x2f, 0x79, 0x47, 0xf9, 0x35, 0x61, 0xeb, 0x50, 0xd7, 0x67};
static void errorAndQuit(const char* errorStr){
errorConf error;
errorInit(&error, ERROR_TEXT, CFG_LANGUAGE_EN);
errorText(&error, errorStr);
errorDisp(&error);
exit(0);
}
static int isCiaInstalled(u64 titleId, u16 version){
u32 titlesToRetrieve;
u32 titlesRetrieved;
u64* titleIds;
bool titleExists = false;
AM_TitleEntry titleInfo;
Result failed;
failed = AM_GetTitleCount(MEDIATYPE_SD, &titlesToRetrieve);
if(R_FAILED(failed))
return -1;
titleIds = malloc(titlesToRetrieve * sizeof(uint64_t));
if(titleIds == NULL)
return -1;
failed = AM_GetTitleList(&titlesRetrieved, MEDIATYPE_SD, titlesToRetrieve, titleIds);
if(R_FAILED(failed))
return -1;
for(u32 titlesToCheck = 0; titlesToCheck < titlesRetrieved; titlesToCheck++){
if(titleIds[titlesToCheck] == titleId){
titleExists = true;
break;
}
}
free(titleIds);
if(titleExists){
failed = AM_GetTitleInfo(MEDIATYPE_SD, 1 /*titleCount*/, &titleId, &titleInfo);
if(R_FAILED(failed))
return -1;
if(titleInfo.version == version)
return 1;
}
return 0;
}
static int installCia(Handle ciaFile){
Result failed;
Handle outputHandle;
u64 fileSize;
u64 fileOffset = 0;
u32 bytesRead;
u32 bytesWritten;
u8 transferBuffer[FILE_CHUNK_SIZE];
failed = AM_StartCiaInstall(MEDIATYPE_SD, &outputHandle);
if(R_FAILED(failed))
return -1;
failed = FSFILE_GetSize(ciaFile, &fileSize);
if(R_FAILED(failed))
return -1;
while(fileOffset < fileSize){
u64 bytesRemaining = fileSize - fileOffset;
failed = FSFILE_Read(ciaFile, &bytesRead, fileOffset, transferBuffer, bytesRemaining < FILE_CHUNK_SIZE ? bytesRemaining : FILE_CHUNK_SIZE);
if(R_FAILED(failed)){
AM_CancelCIAInstall(outputHandle);
return -1;
}
failed = FSFILE_Write(outputHandle, &bytesWritten, fileOffset, transferBuffer, bytesRead, 0);
if(R_FAILED(failed)){
AM_CancelCIAInstall(outputHandle);
if(R_DESCRIPTION(failed) == RD_ALREADY_EXISTS)
return 1;
return -1;
}
if(bytesWritten != bytesRead){
AM_CancelCIAInstall(outputHandle);
return -1;
}
fileOffset += bytesWritten;
}
failed = AM_FinishCiaInstall(outputHandle);
if(R_FAILED(failed))
return -1;
return 1;
}
int exec_cia(const char* path, const char** args){
struct stat sBuff;
bool fileExists;
bool inited;
if(path == NULL || path[0] == '\0'){
errno = EINVAL;
return -1;
}
fileExists = stat(path, &sBuff) == 0;
if(!fileExists){
errno = ENOENT;
return -1;
}
else if(S_ISDIR(sBuff.st_mode)){
errno = EINVAL;;
return -1;
}
inited = R_SUCCEEDED(amInit()) && R_SUCCEEDED(fsInit());
if(inited){
Result res;
AM_TitleEntry ciaInfo;
FS_Archive ciaArchive;
Handle ciaFile;
int ciaInstalled;
ciaParam param;
int argsLength;
//open cia file
res = FSUSER_OpenArchive(&ciaArchive, ARCHIVE_SDMC, fsMakePath(PATH_EMPTY, ""));
if(R_FAILED(res))
errorAndQuit("Cant open SD FS archive.");
res = FSUSER_OpenFile(&ciaFile, ciaArchive, fsMakePath(PATH_ASCII, path + 5/*skip "sdmc:"*/), FS_OPEN_READ, 0);
if(R_FAILED(res))
errorAndQuit("Cant open CIA file.");
res = AM_GetCiaFileInfo(MEDIATYPE_SD, &ciaInfo, ciaFile);
if(R_FAILED(res))
errorAndQuit("Cant get CIA file info.");
ciaInstalled = isCiaInstalled(ciaInfo.titleID, ciaInfo.version);
if(ciaInstalled == -1){
//error
errorAndQuit("Could not read title id list.");
}
else if(ciaInstalled == 0){
//not installed
int error = installCia(ciaFile);
if(error == -1)
errorAndQuit("Cant install CIA.");
}
FSFILE_Close(ciaFile);
FSUSER_CloseArchive(ciaArchive);
param.argc = 0;
argsLength = 0;
char* argLocation = param.args;
while(args[param.argc] != NULL){
strcpy(argLocation, args[param.argc]);
argLocation += strlen(args[param.argc]) + 1;
argsLength += strlen(args[param.argc]) + 1;
param.argc++;
}
res = APT_PrepareToDoApplicationJump(0, ciaInfo.titleID, 0x1);
if(R_FAILED(res))
errorAndQuit("CIA cant run, cant prepare.");
res = APT_DoApplicationJump(&param, sizeof(param.argc) + argsLength, argvHmac);
if(R_FAILED(res))
errorAndQuit("CIA cant run, cant jump.");
//wait for application jump, for some reason its not instant
while(1);
}
//should never be reached
amExit();
fsExit();
errno = ENOTSUP;
return -1;
}
+6
View File
@@ -0,0 +1,6 @@
#ifndef EXEC_CIA_H
#define EXEC_CIA_H
int exec_cia(const char* path, const char** args);
#endif
+95
View File
@@ -0,0 +1,95 @@
#pragma once
// C stdlib includes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include <sys/types.h>
// 3DS includes
#include <3ds.h>
#define ENTRY_ARGBUFSIZE 0x400
#define NUM_SERVICESTHATMATTER 5
typedef enum
{
StrId_Loading = 0,
StrId_Directory,
StrId_DefaultLongTitle,
StrId_DefaultPublisher,
StrId_IOError,
StrId_CouldNotOpenFile,
StrId_NoAppsFound_Title,
StrId_NoAppsFound_Msg,
StrId_Reboot,
StrId_ReturnToHome,
StrId_TitleSelector,
StrId_ErrorReadingTitleMetadata,
StrId_NoTitlesFound,
StrId_SelectTitle,
StrId_NoTargetTitleSupport,
StrId_MissingTargetTitle,
StrId_NetLoader,
StrId_NetLoaderUnavailable,
StrId_NetLoaderOffline,
StrId_NetLoaderError,
StrId_NetLoaderActive,
StrId_NetLoaderTransferring,
StrId_Max,
} StrId;
typedef struct
{
char* dst;
u32 buf[ENTRY_ARGBUFSIZE/sizeof(u32)];
} argData_s;
typedef struct
{
bool scanned;
u32 sectionSizes[3];
bool servicesThatMatter[NUM_SERVICESTHATMATTER];
} executableMetadata_s;
typedef struct
{
u32 num;
u32 text_end;
u32 data_address;
u32 data_size;
u32 processLinearOffset;
u32 processHookAddress;
u32 processAppCodeAddress;
u32 processHookTidLow, processHookTidHigh;
u32 mediatype;
bool capabilities[0x10]; // {socuAccess, csndAccess, qtmAccess, nfcAccess, httpcAccess, reserved...}
} memmap_header_t;
typedef struct
{
u32 src, dst, size;
} memmap_entry_t;
typedef struct
{
memmap_header_t header;
memmap_entry_t map[];
} memmap_t;
#define memmapSize(m) (sizeof(memmap_header_t) + sizeof(memmap_entry_t)*(m)->header.num)
#include "launch.h"
+22
View File
@@ -0,0 +1,22 @@
#include "common.h"
Handle launchOpenFile(const char* path)
{
if (strncmp(path, "sdmc:/", 6) == 0)
path += 5;
else if (*path != '/')
return 0;
// Convert the executable path to UTF-16
static uint16_t __utf16path[PATH_MAX+1];
ssize_t units = utf8_to_utf16(__utf16path, (const uint8_t*)path, PATH_MAX);
if (units < 0 || units >= PATH_MAX) return 0;
__utf16path[units] = 0;
// Open the file directly
FS_Path apath = { PATH_EMPTY, 1, (u8*)"" };
FS_Path fpath = { PATH_UTF16, (units+1)*2, (u8*)__utf16path };
Handle file;
Result res = FSUSER_OpenFileDirectly(&file, ARCHIVE_SDMC, apath, fpath, FS_OPEN_READ, 0);
return R_SUCCEEDED(res) ? file : 0;
}
+26
View File
@@ -0,0 +1,26 @@
#pragma once
#include "common.h"
extern void (*__system_retAddr)(void);
enum
{
LOADER_SHOW_REBOOT = 0x01,
LOADER_NEED_SCAN = 0x02
};
typedef struct
{
// Mandatory fields
const char* name;
u32 flags;
bool (* init)(void);
void (* deinit)(void);
void (* launchFile)(const char* path, argData_s* args, executableMetadata_s* em);
// Optional fields
void (* useTitle)(u64 tid, u8 mediatype);
} loaderFuncs_s;
Handle launchOpenFile(const char* path);
+73
View File
@@ -0,0 +1,73 @@
#include "../common.h"
typedef struct
{
s32 processId;
bool capabilities[0x10];
} processEntry_s;
typedef void (*callBootloader_2x_fn)(Handle file, u32* argbuf, u32 arglength);
typedef void (*callBootloaderNewProcess_2x_fn)(s32 processId, u32* argbuf, u32 arglength);
typedef void (*callBootloaderRunTitle_2x_fn)(u8 mediatype, u32* argbuf, u32 argbuflength, u32 tid_low, u32 tid_high);
typedef void (*callBootloaderRunTitleCustom_2x_fn)(u8 mediatype, u32* argbuf, u32 argbuflength, u32 tid_low, u32 tid_high, memmap_t* mmap);
typedef void (*getBestProcess_2x_fn)(u32 sectionSizes[3], bool* requirements, int num_requirements, processEntry_s* out, int out_size, int* out_len);
#define callBootloader_2x ((callBootloader_2x_fn)0x00100000)
#define callBootloaderNewProcess_2x ((callBootloaderNewProcess_2x_fn)0x00100008)
#define callBootloaderRunTitle_2x ((callBootloaderRunTitle_2x_fn)0x00100010)
#define callBootloaderRunTitleCustom_2x ((callBootloaderRunTitleCustom_2x_fn)0x00100014)
#define getBestProcess_2x ((getBestProcess_2x_fn)0x0010000C)
static s32 targetProcess = -1;
static u64 targetTid;
static u8 targetMediatype;
static Handle fileHandle;
static u32 argBuf[ENTRY_ARGBUFSIZE/sizeof(u32)];
static u32 argBufLen;
static u32 memMapBuf[0x40];
static bool useMemMap;
static bool init(void)
{
return R_SUCCEEDED(amInit());
}
static void deinit(void)
{
amExit();
}
static void bootloaderJump(void)
{
if (targetProcess == -1)
callBootloader_2x(fileHandle, argBuf, argBufLen);
else if (targetProcess == -2)
{
if (useMemMap)
callBootloaderRunTitleCustom_2x(targetMediatype, argBuf, argBufLen, (u32)targetTid, (u32)(targetTid>>32), (memmap_t*)memMapBuf);
else
callBootloaderRunTitle_2x(targetMediatype, argBuf, argBufLen, (u32)targetTid, (u32)(targetTid>>32));
}
else
callBootloaderNewProcess_2x(targetProcess, argBuf, argBufLen);
}
static void launchFile(const char* path, argData_s* args, executableMetadata_s* em)
{
fileHandle = launchOpenFile(path);
if (fileHandle==0)
return;
argBufLen = args->dst - (char*)args->buf;
memcpy(argBuf, args->buf, argBufLen);
__system_retAddr = bootloaderJump;
}
const loaderFuncs_s loader_Ninjhax2 =
{
.name = "hax 2.x",
.flags = LOADER_SHOW_REBOOT | LOADER_NEED_SCAN,
.init = init,
.deinit = deinit,
.launchFile = launchFile,
//.useTitle = useTitle,
};
@@ -0,0 +1,43 @@
#include "../common.h"
static void (*callBootloader_1x)(Handle hb, Handle file);
static void (*setArgs_1x)(u32* src, u32 length);
static Handle fileHandle;
static bool init(void)
{
Result res = hbInit();
if (R_FAILED(res))
return false;
HB_GetBootloaderAddresses((void**)&callBootloader_1x, (void**)&setArgs_1x);
return true;
}
static void deinit(void)
{
hbExit();
}
static void bootloaderJump(void)
{
callBootloader_1x(0x00000000, fileHandle);
}
static void launchFile(const char* path, argData_s* args, executableMetadata_s* em)
{
fileHandle = launchOpenFile(path);
if (fileHandle==0)
return;
setArgs_1x(args->buf, sizeof(args->buf));
__system_retAddr = bootloaderJump;
}
const loaderFuncs_s loader_Ninjhax1 =
{
.name = "ninjhax 1.x",
.flags = LOADER_SHOW_REBOOT,
.init = init,
.deinit = deinit,
.launchFile = launchFile,
};
@@ -0,0 +1,56 @@
#include "../common.h"
static Handle hbldrHandle;
static bool init(void)
{
return R_SUCCEEDED(svcConnectToPort(&hbldrHandle, "hb:ldr"));
}
static Result HBLDR_SetTarget(const char* path)
{
u32 pathLen = strlen(path) + 1;
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(2, 0, 2); //0x20002
cmdbuf[1] = IPC_Desc_StaticBuffer(pathLen, 0);
cmdbuf[2] = (u32)path;
Result rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc)) rc = cmdbuf[1];
return rc;
}
static Result HBLDR_SetArgv(const void* buffer, u32 size)
{
u32* cmdbuf = getThreadCommandBuffer();
cmdbuf[0] = IPC_MakeHeader(3, 0, 2); //0x30002
cmdbuf[1] = IPC_Desc_StaticBuffer(size, 1);
cmdbuf[2] = (u32)buffer;
Result rc = svcSendSyncRequest(hbldrHandle);
if (R_SUCCEEDED(rc)) rc = cmdbuf[1];
return rc;
}
static void deinit(void)
{
svcCloseHandle(hbldrHandle);
}
static void launchFile(const char* path, argData_s* args, executableMetadata_s* em)
{
if (strncmp(path, "sdmc:/",6) == 0)
path += 5;
HBLDR_SetTarget(path);
HBLDR_SetArgv(args->buf, sizeof(args->buf));
}
const loaderFuncs_s loader_Rosalina =
{
.name = "Rosalina",
.init = init,
.deinit = deinit,
.launchFile = launchFile,
};
+183 -176
View File
@@ -21,46 +21,16 @@
#include <compat/strl.h>
#include <retro_endianness.h>
#include <file/file_path.h>
#include <lists/string_list.h>
#include <lists/dir_list.h>
#include <string/stdstring.h>
#include "libretro-db/libretrodb.h"
#include "list_special.h"
#include "core_info.h"
#include "database_info.h"
#include "msg_hash.h"
#include "verbosity.h"
#define DB_CURSOR_ROM_NAME 0x16bbcf13U
#define DB_CURSOR_NAME 0x7c9b0c46U
#define DB_CURSOR_DESCRIPTION 0x91b0c789U
#define DB_CURSOR_GENRE 0x0f802156U
#define DB_CURSOR_PUBLISHER 0x5e099013U
#define DB_CURSOR_DEVELOPER 0x1783d2abU
#define DB_CURSOR_ORIGIN 0x1315e3edU
#define DB_CURSOR_FRANCHISE 0xc3a526b8U
#define DB_CURSOR_BBFC_RATING 0xede26836U
#define DB_CURSOR_ESRB_RATING 0x4c3fa255U
#define DB_CURSOR_ELSPA_RATING 0xd9cab41eU
#define DB_CURSOR_CERO_RATING 0x084a1772U
#define DB_CURSOR_PEGI_RATING 0x431b736eU
#define DB_CURSOR_CHECKSUM_CRC32 0x0b88671dU
#define DB_CURSOR_CHECKSUM_SHA1 0x7c9de632U
#define DB_CURSOR_CHECKSUM_MD5 0x0b888fabU
#define DB_CURSOR_ENHANCEMENT_HW 0xab612029U
#define DB_CURSOR_EDGE_MAGAZINE_REVIEW 0xd3573eabU
#define DB_CURSOR_EDGE_MAGAZINE_RATING 0xd30dc4feU
#define DB_CURSOR_EDGE_MAGAZINE_ISSUE 0xa0f30d42U
#define DB_CURSOR_FAMITSU_MAGAZINE_RATING 0x0a50ca62U
#define DB_CURSOR_TGDB_RATING 0x8d61458aU
#define DB_CURSOR_MAX_USERS 0x1084ff77U
#define DB_CURSOR_RELEASEDATE_MONTH 0x790ad76cU
#define DB_CURSOR_RELEASEDATE_YEAR 0x7fd06ed7U
#define DB_CURSOR_RUMBLE_SUPPORTED 0x1a4dc3ecU
#define DB_CURSOR_COOP_SUPPORTED 0x7c953ff6U
#define DB_CURSOR_ANALOG_SUPPORTED 0xf220fc17U
#define DB_CURSOR_SIZE 0x7c9dede0U
#define DB_CURSOR_SERIAL 0x1b843ec5U
int database_info_build_query_enum(char *s, size_t len,
enum database_query_type type,
const char *path)
@@ -201,7 +171,6 @@ static int database_cursor_iterate(libretrodb_cursor_t *cur,
for (i = 0; i < item.val.map.len; i++)
{
uint32_t value = 0;
struct rmsgpack_dom_value *key = &item.val.map.items[i].key;
struct rmsgpack_dom_value *val = &item.val.map.items[i].value;
const char *val_string = NULL;
@@ -209,121 +178,123 @@ static int database_cursor_iterate(libretrodb_cursor_t *cur,
if (!key || !val)
continue;
val_string = val->val.string.buff;
str = key->val.string.buff;
value = msg_hash_calculate(str);
val_string = val->val.string.buff;
str = key->val.string.buff;
switch (value)
if (string_is_equal(str, "publisher"))
{
case DB_CURSOR_SERIAL:
if (!string_is_empty(val_string))
db_info->serial = strdup(val_string);
break;
case DB_CURSOR_ROM_NAME:
if (!string_is_empty(val_string))
db_info->rom_name = strdup(val_string);
break;
case DB_CURSOR_NAME:
if (!string_is_empty(val_string))
db_info->name = strdup(val_string);
break;
case DB_CURSOR_DESCRIPTION:
if (!string_is_empty(val_string))
db_info->description = strdup(val_string);
break;
case DB_CURSOR_GENRE:
if (!string_is_empty(val_string))
db_info->genre = strdup(val_string);
break;
case DB_CURSOR_PUBLISHER:
if (!string_is_empty(val_string))
db_info->publisher = strdup(val_string);
break;
case DB_CURSOR_DEVELOPER:
if (!string_is_empty(val_string))
db_info->developer = string_split(val_string, "|");
break;
case DB_CURSOR_ORIGIN:
if (!string_is_empty(val_string))
db_info->origin = strdup(val_string);
break;
case DB_CURSOR_FRANCHISE:
if (!string_is_empty(val_string))
db_info->franchise = strdup(val_string);
break;
case DB_CURSOR_BBFC_RATING:
if (!string_is_empty(val_string))
db_info->bbfc_rating = strdup(val_string);
break;
case DB_CURSOR_ESRB_RATING:
if (!string_is_empty(val_string))
db_info->esrb_rating = strdup(val_string);
break;
case DB_CURSOR_ELSPA_RATING:
if (!string_is_empty(val_string))
db_info->elspa_rating = strdup(val_string);
break;
case DB_CURSOR_CERO_RATING:
if (!string_is_empty(val_string))
db_info->cero_rating = strdup(val_string);
break;
case DB_CURSOR_PEGI_RATING:
if (!string_is_empty(val_string))
db_info->pegi_rating = strdup(val_string);
break;
case DB_CURSOR_ENHANCEMENT_HW:
if (!string_is_empty(val_string))
db_info->enhancement_hw = strdup(val_string);
break;
case DB_CURSOR_EDGE_MAGAZINE_REVIEW:
if (!string_is_empty(val_string))
db_info->edge_magazine_review = strdup(val_string);
break;
case DB_CURSOR_EDGE_MAGAZINE_RATING:
db_info->edge_magazine_rating = (unsigned)val->val.uint_;
break;
case DB_CURSOR_EDGE_MAGAZINE_ISSUE:
db_info->edge_magazine_issue = (unsigned)val->val.uint_;
break;
case DB_CURSOR_FAMITSU_MAGAZINE_RATING:
db_info->famitsu_magazine_rating = (unsigned)val->val.uint_;
break;
case DB_CURSOR_TGDB_RATING:
db_info->tgdb_rating = (unsigned)val->val.uint_;
break;
case DB_CURSOR_MAX_USERS:
db_info->max_users = (unsigned)val->val.uint_;
break;
case DB_CURSOR_RELEASEDATE_MONTH:
db_info->releasemonth = (unsigned)val->val.uint_;
break;
case DB_CURSOR_RELEASEDATE_YEAR:
db_info->releaseyear = (unsigned)val->val.uint_;
break;
case DB_CURSOR_RUMBLE_SUPPORTED:
db_info->rumble_supported = (int)val->val.uint_;
break;
case DB_CURSOR_COOP_SUPPORTED:
db_info->coop_supported = (int)val->val.uint_;
break;
case DB_CURSOR_ANALOG_SUPPORTED:
db_info->analog_supported = (int)val->val.uint_;
break;
case DB_CURSOR_SIZE:
db_info->size = (unsigned)val->val.uint_;
break;
case DB_CURSOR_CHECKSUM_CRC32:
db_info->crc32 = swap_if_little32(*(uint32_t*)val->val.binary.buff);
break;
case DB_CURSOR_CHECKSUM_SHA1:
db_info->sha1 = bin_to_hex_alloc((uint8_t*)val->val.binary.buff, val->val.binary.len);
break;
case DB_CURSOR_CHECKSUM_MD5:
db_info->md5 = bin_to_hex_alloc((uint8_t*)val->val.binary.buff, val->val.binary.len);
break;
default:
RARCH_LOG("Unknown key: %s\n", str);
break;
if (!string_is_empty(val_string))
db_info->publisher = strdup(val_string);
}
else if (string_is_equal(str, "developer"))
{
if (!string_is_empty(val_string))
db_info->developer = string_split(val_string, "|");
}
else if (string_is_equal(str, "serial"))
{
if (!string_is_empty(val_string))
db_info->serial = strdup(val_string);
}
else if (string_is_equal(str, "rom_name"))
{
if (!string_is_empty(val_string))
db_info->rom_name = strdup(val_string);
}
else if (string_is_equal(str, "name"))
{
if (!string_is_empty(val_string))
db_info->name = strdup(val_string);
}
else if (string_is_equal(str, "description"))
{
if (!string_is_empty(val_string))
db_info->description = strdup(val_string);
}
else if (string_is_equal(str, "genre"))
{
if (!string_is_empty(val_string))
db_info->genre = strdup(val_string);
}
else if (string_is_equal(str, "origin"))
{
if (!string_is_empty(val_string))
db_info->origin = strdup(val_string);
}
else if (string_is_equal(str, "franchise"))
{
if (!string_is_empty(val_string))
db_info->franchise = strdup(val_string);
}
else if (string_is_equal(str, "bbfc_rating"))
{
if (!string_is_empty(val_string))
db_info->bbfc_rating = strdup(val_string);
}
else if (string_is_equal(str, "esrb_rating"))
{
if (!string_is_empty(val_string))
db_info->esrb_rating = strdup(val_string);
}
else if (string_is_equal(str, "elspa_rating"))
{
if (!string_is_empty(val_string))
db_info->elspa_rating = strdup(val_string);
}
else if (string_is_equal(str, "cero_rating"))
{
if (!string_is_empty(val_string))
db_info->cero_rating = strdup(val_string);
}
else if (string_is_equal(str, "pegi_rating"))
{
if (!string_is_empty(val_string))
db_info->pegi_rating = strdup(val_string);
}
else if (string_is_equal(str, "enhancement_hw"))
{
if (!string_is_empty(val_string))
db_info->enhancement_hw = strdup(val_string);
}
else if (string_is_equal(str, "edge_review"))
{
if (!string_is_empty(val_string))
db_info->edge_magazine_review = strdup(val_string);
}
else if (string_is_equal(str, "edge_rating"))
db_info->edge_magazine_rating = (unsigned)val->val.uint_;
else if (string_is_equal(str, "edge_issue"))
db_info->edge_magazine_issue = (unsigned)val->val.uint_;
else if (string_is_equal(str, "famitsu_rating"))
db_info->famitsu_magazine_rating = (unsigned)val->val.uint_;
else if (string_is_equal(str, "tgdb_rating"))
db_info->tgdb_rating = (unsigned)val->val.uint_;
else if (string_is_equal(str, "users"))
db_info->max_users = (unsigned)val->val.uint_;
else if (string_is_equal(str, "releasemonth"))
db_info->releasemonth = (unsigned)val->val.uint_;
else if (string_is_equal(str, "releaseyear"))
db_info->releaseyear = (unsigned)val->val.uint_;
else if (string_is_equal(str, "rumble"))
db_info->rumble_supported = (int)val->val.uint_;
else if (string_is_equal(str, "coop"))
db_info->coop_supported = (int)val->val.uint_;
else if (string_is_equal(str, "analog"))
db_info->analog_supported = (int)val->val.uint_;
else if (string_is_equal(str, "size"))
db_info->size = (unsigned)val->val.uint_;
else if (string_is_equal(str, "crc"))
db_info->crc32 = swap_if_little32(
*(uint32_t*)val->val.binary.buff);
else if (string_is_equal(str, "sha1"))
db_info->sha1 = bin_to_hex_alloc(
(uint8_t*)val->val.binary.buff, val->val.binary.len);
else if (string_is_equal(str, "md5"))
db_info->md5 = bin_to_hex_alloc(
(uint8_t*)val->val.binary.buff, val->val.binary.len);
else
{
RARCH_LOG("Unknown key: %s\n", str);
}
}
@@ -371,22 +342,22 @@ static int database_cursor_close(libretrodb_t *db, libretrodb_cursor_t *cur)
return 0;
}
static bool type_is_prioritized(enum msg_file_type type)
static bool type_is_prioritized(const char *path)
{
return (type == FILE_TYPE_CUE || type == FILE_TYPE_GDI);
}
static enum msg_file_type file_type(const char *path)
{
return msg_hash_to_file_type(msg_hash_calculate(path_get_extension(path)));
const char *ext = path_get_extension(path);
if (string_is_equal_noncase(ext, "cue"))
return true;
if (string_is_equal_noncase(ext, "gdi"))
return true;
return false;
}
static int dir_entry_compare(const void *left, const void *right)
{
const struct string_list_elem *le = (const struct string_list_elem*)left;
const struct string_list_elem *re = (const struct string_list_elem*)right;
bool l = type_is_prioritized(file_type(le->data));
bool r = type_is_prioritized(file_type(re->data));
bool l = type_is_prioritized(le->data);
bool r = type_is_prioritized(re->data);
return (int) r - (int) l;
}
@@ -397,37 +368,44 @@ static void dir_list_prioritize(struct string_list *list)
}
database_info_handle_t *database_info_dir_init(const char *dir,
enum database_type type, retro_task_t *task)
enum database_type type, retro_task_t *task,
bool show_hidden_files)
{
database_info_handle_t *db = (database_info_handle_t*)
core_info_list_t *core_info_list = NULL;
struct string_list *list = NULL;
database_info_handle_t *db = (database_info_handle_t*)
calloc(1, sizeof(*db));
if (!db)
return NULL;
db->list = dir_list_new_special(dir, DIR_LIST_RECURSIVE, NULL);
core_info_get_list(&core_info_list);
if (!db->list)
goto error;
list = dir_list_new(dir, core_info_list->all_ext,
false, show_hidden_files,
false, true);
dir_list_prioritize(db->list);
if (!list)
{
free(db);
return NULL;
}
dir_list_prioritize(list);
db->list = list;
db->list_ptr = 0;
db->status = DATABASE_STATUS_ITERATE;
db->type = type;
return db;
error:
if (db)
free(db);
return NULL;
}
database_info_handle_t *database_info_file_init(const char *path,
enum database_type type, retro_task_t *task)
{
union string_list_elem_attr attr;
struct string_list *list = NULL;
database_info_handle_t *db = (database_info_handle_t*)
calloc(1, sizeof(*db));
@@ -436,23 +414,22 @@ database_info_handle_t *database_info_file_init(const char *path,
attr.i = 0;
db->list = string_list_new();
list = string_list_new();
if (!db->list)
goto error;
if (!list)
{
free(db);
return NULL;
}
string_list_append(db->list, path, attr);
string_list_append(list, path, attr);
db->list_ptr = 0;
db->list = list;
db->status = DATABASE_STATUS_ITERATE;
db->type = type;
return db;
error:
if (db)
free(db);
return NULL;
}
void database_info_free(database_info_handle_t *db)
@@ -501,6 +478,36 @@ database_info_list_t *database_info_list_new(
if (!new_ptr)
{
if (db_info.bbfc_rating)
free(db_info.bbfc_rating);
if (db_info.cero_rating)
free(db_info.cero_rating);
if (db_info.description)
free(db_info.description);
if (db_info.edge_magazine_review)
free(db_info.edge_magazine_review);
if (db_info.elspa_rating)
free(db_info.elspa_rating);
if (db_info.enhancement_hw)
free(db_info.enhancement_hw);
if (db_info.esrb_rating)
free(db_info.esrb_rating);
if (db_info.franchise)
free(db_info.franchise);
if (db_info.genre)
free(db_info.genre);
if (db_info.name)
free(db_info.name);
if (db_info.origin)
free(db_info.origin);
if (db_info.pegi_rating)
free(db_info.pegi_rating);
if (db_info.publisher)
free(db_info.publisher);
if (db_info.rom_name)
free(db_info.rom_name);
if (db_info.serial)
free(db_info.serial);
database_info_list_free(database_info_list);
free(database_info);
free(database_info_list);
+2 -1
View File
@@ -126,7 +126,8 @@ database_info_list_t *database_info_list_new(const char *rdb_path,
void database_info_list_free(database_info_list_t *list);
database_info_handle_t *database_info_dir_init(const char *dir,
enum database_type type, retro_task_t *task);
enum database_type type, retro_task_t *task,
bool show_hidden_files);
database_info_handle_t *database_info_file_init(const char *path,
enum database_type type, retro_task_t *task);
+1 -1
View File
@@ -107,7 +107,7 @@ struct defaults
playlist_t *image_history;
#endif
playlist_t *music_history;
#ifdef HAVE_FFMPEG
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
playlist_t *video_history;
#endif
#endif
+5 -20
View File
@@ -2,32 +2,17 @@ language: cpp
os:
- linux
- osx
osx_image: xcode8.2
osx_image: xcode9.3beta
# Use Ubuntu 14.04 LTS (Trusty) as the Linux testing environment.
sudo: required
dist: trusty
# We check out glslang and SPIRV-Tools at specific revisions to avoid test output mismatches
env:
- GLSLANG_REV=9c6f8cc29ba303b43ccf36deea6bb38a304f9b92 SPIRV_TOOLS_REV=e28edd458b729da7bbfd51e375feb33103709e6f
before_script:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; brew install python3; fi
- git clone https://github.com/KhronosGroup/glslang.git glslang
- git clone https://github.com/KhronosGroup/SPIRV-Tools SPIRV-Tools
- git clone https://github.com/KhronosGroup/SPIRV-Headers.git SPIRV-Tools/external/spirv-headers
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew upgrade python3; fi
- ./checkout_glslang_spirv_tools.sh
script:
- git -C glslang checkout $GLSLANG_REV
- git -C SPIRV-Tools checkout $SPIRV_TOOLS_REV
- cd glslang && cmake . && make -j2 && cd ..
- cd SPIRV-Tools && cmake . && make -j2 && cd ..
- ./build_glslang_spirv_tools.sh Debug 2
- make -j2
- PATH=./glslang/StandAlone:./SPIRV-Tools/tools:$PATH
- ./test_shaders.py shaders
- ./test_shaders.py --msl shaders-msl
- ./test_shaders.py --hlsl shaders-hlsl
- ./test_shaders.py shaders --opt
- ./test_shaders.py --msl shaders-msl --opt
- ./test_shaders.py --hlsl shaders-hlsl --opt
- ./test_shaders.sh
+19 -1
View File
@@ -93,6 +93,10 @@ spirv_cross_add_library(spirv-cross-cpp spirv_cross_cpp STATIC
${CMAKE_CURRENT_SOURCE_DIR}/spirv_cpp.hpp
${CMAKE_CURRENT_SOURCE_DIR}/spirv_cpp.cpp)
spirv_cross_add_library(spirv-cross-reflect spirv_cross_reflect STATIC
${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.hpp
${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.cpp)
spirv_cross_add_library(spirv-cross-msl spirv_cross_msl STATIC
${CMAKE_CURRENT_SOURCE_DIR}/spirv_msl.hpp
${CMAKE_CURRENT_SOURCE_DIR}/spirv_msl.cpp)
@@ -101,12 +105,17 @@ spirv_cross_add_library(spirv-cross-hlsl spirv_cross_hlsl STATIC
${CMAKE_CURRENT_SOURCE_DIR}/spirv_hlsl.hpp
${CMAKE_CURRENT_SOURCE_DIR}/spirv_hlsl.cpp)
spirv_cross_add_library(spirv-cross-util spirv_cross_util STATIC
${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_util.hpp
${CMAKE_CURRENT_SOURCE_DIR}/spirv_cross_util.cpp)
add_executable(spirv-cross main.cpp)
target_compile_options(spirv-cross PRIVATE ${spirv-compiler-options})
target_compile_definitions(spirv-cross PRIVATE ${spirv-compiler-defines})
install(TARGETS spirv-cross RUNTIME DESTINATION bin)
target_link_libraries(spirv-cross spirv-cross-glsl spirv-cross-hlsl spirv-cross-cpp spirv-cross-msl spirv-cross-core)
target_link_libraries(spirv-cross spirv-cross-glsl spirv-cross-hlsl spirv-cross-cpp spirv-cross-reflect spirv-cross-msl spirv-cross-util spirv-cross-core)
target_link_libraries(spirv-cross-util spirv-cross-core)
target_link_libraries(spirv-cross-glsl spirv-cross-core)
target_link_libraries(spirv-cross-msl spirv-cross-glsl)
target_link_libraries(spirv-cross-hlsl spirv-cross-glsl)
@@ -123,12 +132,21 @@ if (${PYTHONINTERP_FOUND})
add_test(NAME spirv-cross-test
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py
${CMAKE_CURRENT_SOURCE_DIR}/shaders)
add_test(NAME spirv-cross-test-no-opt
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py
${CMAKE_CURRENT_SOURCE_DIR}/shaders-no-opt)
add_test(NAME spirv-cross-test-metal
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --metal
${CMAKE_CURRENT_SOURCE_DIR}/shaders-msl)
add_test(NAME spirv-cross-test-metal-no-opt
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --metal
${CMAKE_CURRENT_SOURCE_DIR}/shaders-msl-no-opt)
add_test(NAME spirv-cross-test-hlsl
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --hlsl
${CMAKE_CURRENT_SOURCE_DIR}/shaders-hlsl)
add_test(NAME spirv-cross-test-hlsl-no-opt
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --hlsl
${CMAKE_CURRENT_SOURCE_DIR}/shaders-hlsl-no-opt)
add_test(NAME spirv-cross-test-opt
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_shaders.py --opt
${CMAKE_CURRENT_SOURCE_DIR}/shaders)
+8 -3
View File
@@ -3,13 +3,15 @@
SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other shader languages.
[![Build Status](https://travis-ci.org/KhronosGroup/SPIRV-Cross.svg?branch=master)](https://travis-ci.org/KhronosGroup/SPIRV-Cross)
[![Build Status](https://ci.appveyor.com/api/projects/status/github/KhronosGroup/SPIRV-Cross?svg=true&branch=master)](https://ci.appveyor.com/project/HansKristian-ARM/SPIRV-Cross)
## Features
- Convert SPIR-V to readable, usable and efficient GLSL
- Convert SPIR-V to readable, usable and efficient Metal Shading Language (MSL) [EXPERIMENTAL]
- Convert SPIR-V to readable, usable and efficient HLSL [EXPERIMENTAL]
- Convert SPIR-V to readable, usable and efficient Metal Shading Language (MSL)
- Convert SPIR-V to readable, usable and efficient HLSL
- Convert SPIR-V to debuggable C++ [EXPERIMENTAL]
- Convert SPIR-V to a JSON reflection format [EXPERIMENTAL]
- Reflection API to simplify the creation of Vulkan pipeline layouts
- Reflection API to modify and tweak OpDecorations
- Supports "all" of vertex, fragment, tessellation, geometry and compute shaders.
@@ -24,7 +26,7 @@ However, most missing features are expected to be "trivial" improvements at this
SPIRV-Cross has been tested on Linux, OSX and Windows.
The make and CMake build flavors offer the option to treat exceptions as assertions. To disable exceptions for make just append SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=1 to the command line. For CMake append -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=ON. By default exceptions are enabled.
The make and CMake build flavors offer the option to treat exceptions as assertions. To disable exceptions for make just append `SPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=1` to the command line. For CMake append `-DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=ON`. By default exceptions are enabled.
### Linux and macOS
@@ -38,6 +40,8 @@ MinGW-w64 based compilation works with `make`, and an MSVC 2013 solution is also
### Using the C++ API
For more in-depth documentation than what's provided in this README, please have a look at the [Wiki](https://github.com/KhronosGroup/SPIRV-Cross/wiki).
To perform reflection and convert to other shader languages you can use the SPIRV-Cross API.
For example:
@@ -279,6 +283,7 @@ although there are a couple of convenience script for doing this:
```
./checkout_glslang_spirv_tools.sh # Checks out glslang and SPIRV-Tools at a fixed revision which matches the reference output.
./build_glslang_spirv_tools.sh # Builds glslang and SPIRV-Tools.
./test_shaders.sh # Runs over all changes and makes sure that there are no deltas compared to reference files.
```
+31
View File
@@ -0,0 +1,31 @@
environment:
matrix:
- GENERATOR: "Visual Studio 12 2013 Win64"
CONFIG: Debug
- GENERATOR: "Visual Studio 12 2013 Win64"
CONFIG: Release
- GENERATOR: "Visual Studio 14 2015 Win64"
CONFIG: Debug
- GENERATOR: "Visual Studio 14 2015 Win64"
CONFIG: Release
- GENERATOR: "Visual Studio 12 2013"
CONFIG: Debug
- GENERATOR: "Visual Studio 12 2013"
CONFIG: Release
- GENERATOR: "Visual Studio 14 2015"
CONFIG: Debug
- GENERATOR: "Visual Studio 14 2015"
CONFIG: Release
build_script:
- git submodule update --init
- cmake "-G%GENERATOR%" -H. -B_builds
- cmake --build _builds --config "%CONFIG%"
+26
View File
@@ -0,0 +1,26 @@
#!/bin/bash
PROFILE=Release
if [ ! -z $1 ]; then
PROFILE=$1
fi
NPROC=$(nproc)
if [ ! -z $2 ]; then
NPROC=$2
fi
echo "Building glslang."
mkdir -p external/glslang-build
cd external/glslang-build
cmake ../glslang -DCMAKE_BUILD_TYPE=$PROFILE -G"Unix Makefiles"
make -j$NPROC
cd ../..
echo "Building SPIRV-Tools."
mkdir -p external/spirv-tools-build
cd external/spirv-tools-build
cmake ../spirv-tools -DCMAKE_BUILD_TYPE=$PROFILE -G"Unix Makefiles" -DSPIRV_WERROR=OFF
make -j$NPROC
cd ../..
+10 -23
View File
@@ -1,7 +1,7 @@
#!/bin/bash
GLSLANG_REV=9c6f8cc29ba303b43ccf36deea6bb38a304f9b92
SPIRV_TOOLS_REV=e28edd458b729da7bbfd51e375feb33103709e6f
GLSLANG_REV=461ea09943e0e88ea854ab9e3b42d17d728af2ad
SPIRV_TOOLS_REV=53bc1623ecd3cc304d0d6feed8385e70c7ab30d3
if [ -d external/glslang ]; then
echo "Updating glslang to revision $GLSLANG_REV."
@@ -18,13 +18,6 @@ else
fi
cd ../..
echo "Building glslang."
mkdir -p external/glslang-build
cd external/glslang-build
cmake ../glslang -DCMAKE_BUILD_TYPE=Release -G"Unix Makefiles"
make -j$(nproc)
cd ../..
if [ -d external/spirv-tools ]; then
echo "Updating SPIRV-Tools to revision $SPIRV_TOOLS_REV."
cd external/spirv-tools
@@ -37,21 +30,15 @@ else
git clone git://github.com/KhronosGroup/SPIRV-Tools.git spirv-tools
cd spirv-tools
git checkout $SPIRV_TOOLS_REV
if [ -d external/spirv-headers ]; then
cd external/spirv-headers
git pull origin master
cd ../..
else
git clone git://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
fi
fi
cd ../..
echo "Building SPIRV-Tools."
mkdir -p external/spirv-tools-build
cd external/spirv-tools-build
cmake ../spirv-tools -DCMAKE_BUILD_TYPE=Release -G"Unix Makefiles"
make -j$(nproc)
if [ -d external/spirv-headers ]; then
cd external/spirv-headers
git pull origin master
cd ../..
else
git clone git://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
fi
cd ../..
+2 -1
View File
@@ -1,6 +1,7 @@
#!/bin/bash
for file in spirv_*.{cpp,hpp} include/spirv_cross/*.{hpp,h} samples/cpp/*.cpp main.cpp
#for file in spirv_*.{cpp,hpp} include/spirv_cross/*.{hpp,h} samples/cpp/*.cpp main.cpp
for file in spirv_*.{cpp,hpp} main.cpp
do
echo "Formatting file: $file ..."
clang-format -style=file -i $file
+1 -1
View File
@@ -4,7 +4,7 @@ include $(CLEAR_VARS)
LOCAL_CFLAGS += -std=c++11 -Wall -Wextra
LOCAL_MODULE := spirv-cross
LOCAL_SRC_FILES := ../spirv_cfg.cpp ../spirv_cross.cpp ../spirv_glsl.cpp ../spirv_msl.cpp ../spirv_cpp.cpp
LOCAL_SRC_FILES := ../spirv_cfg.cpp ../spirv_cross.cpp ../spirv_cross_util.cpp ../spirv_glsl.cpp ../spirv_hlsl.cpp ../spirv_msl.cpp ../spirv_cpp.cpp
LOCAL_CPP_FEATURES := exceptions
LOCAL_ARM_MODE := arm
LOCAL_CFLAGS := -D__STDC_LIMIT_MACROS
+239 -73
View File
@@ -15,9 +15,11 @@
*/
#include "spirv_cpp.hpp"
#include "spirv_cross_util.hpp"
#include "spirv_glsl.hpp"
#include "spirv_hlsl.hpp"
#include "spirv_msl.hpp"
#include "spirv_reflect.hpp"
#include <algorithm>
#include <cstdio>
#include <cstring>
@@ -121,7 +123,7 @@ struct CLIParser
THROW("Tried to parse uint, but nothing left in arguments");
}
uint32_t val = stoul(*argv);
uint64_t val = stoul(*argv);
if (val > numeric_limits<uint32_t>::max())
{
THROW("next_uint() out of range");
@@ -130,7 +132,7 @@ struct CLIParser
argc--;
argv++;
return val;
return uint32_t(val);
}
double next_double()
@@ -148,6 +150,22 @@ struct CLIParser
return val;
}
// Return a string only if it's not prefixed with `--`, otherwise return the default value
const char *next_value_string(const char *default_value)
{
if (!argc)
{
return default_value;
}
if (0 == strncmp("--", *argv, 2))
{
return default_value;
}
return next_string();
}
const char *next_string()
{
if (!argc)
@@ -211,7 +229,6 @@ static void print_resources(const Compiler &compiler, const char *tag, const vec
for (auto &res : resources)
{
auto &type = compiler.get_type(res.type_id);
auto mask = compiler.get_decoration_mask(res.id);
if (print_ssbo && compiler.buffer_is_hlsl_counter_buffer(res.id))
continue;
@@ -220,8 +237,8 @@ static void print_resources(const Compiler &compiler, const char *tag, const vec
// for SSBOs and UBOs since those are the only meaningful names to use externally.
// Push constant blocks are still accessed by name and not block name, even though they are technically Blocks.
bool is_push_constant = compiler.get_storage_class(res.id) == StorageClassPushConstant;
bool is_block = (compiler.get_decoration_mask(type.self) &
((1ull << DecorationBlock) | (1ull << DecorationBufferBlock))) != 0;
bool is_block = compiler.get_decoration_bitset(type.self).get(DecorationBlock) ||
compiler.get_decoration_bitset(type.self).get(DecorationBufferBlock);
bool is_sized_block = is_block && (compiler.get_storage_class(res.id) == StorageClassUniform ||
compiler.get_storage_class(res.id) == StorageClassUniformConstant);
uint32_t fallback_id = !is_push_constant && is_block ? res.base_type_id : res.id;
@@ -230,6 +247,12 @@ static void print_resources(const Compiler &compiler, const char *tag, const vec
if (is_sized_block)
block_size = uint32_t(compiler.get_declared_struct_size(compiler.get_type(res.base_type_id)));
Bitset mask;
if (print_ssbo)
mask = compiler.get_buffer_block_flags(res.id);
else
mask = compiler.get_decoration_bitset(res.id);
string array;
for (auto arr : type.array)
array = join("[", arr ? convert_to_string(arr) : "", "]") + array;
@@ -237,17 +260,17 @@ static void print_resources(const Compiler &compiler, const char *tag, const vec
fprintf(stderr, " ID %03u : %s%s", res.id,
!res.name.empty() ? res.name.c_str() : compiler.get_fallback_name(fallback_id).c_str(), array.c_str());
if (mask & (1ull << DecorationLocation))
if (mask.get(DecorationLocation))
fprintf(stderr, " (Location : %u)", compiler.get_decoration(res.id, DecorationLocation));
if (mask & (1ull << DecorationDescriptorSet))
if (mask.get(DecorationDescriptorSet))
fprintf(stderr, " (Set : %u)", compiler.get_decoration(res.id, DecorationDescriptorSet));
if (mask & (1ull << DecorationBinding))
if (mask.get(DecorationBinding))
fprintf(stderr, " (Binding : %u)", compiler.get_decoration(res.id, DecorationBinding));
if (mask & (1ull << DecorationInputAttachmentIndex))
if (mask.get(DecorationInputAttachmentIndex))
fprintf(stderr, " (Attachment : %u)", compiler.get_decoration(res.id, DecorationInputAttachmentIndex));
if (mask & (1ull << DecorationNonReadable))
if (mask.get(DecorationNonReadable))
fprintf(stderr, " writeonly");
if (mask & (1ull << DecorationNonWritable))
if (mask.get(DecorationNonWritable))
fprintf(stderr, " readonly");
if (is_sized_block)
fprintf(stderr, " (BlockSize : %u bytes)", block_size);
@@ -283,20 +306,16 @@ static const char *execution_model_to_str(spv::ExecutionModel model)
static void print_resources(const Compiler &compiler, const ShaderResources &res)
{
uint64_t modes = compiler.get_execution_mode_mask();
auto &modes = compiler.get_execution_mode_bitset();
fprintf(stderr, "Entry points:\n");
auto entry_points = compiler.get_entry_points();
auto entry_points = compiler.get_entry_points_and_stages();
for (auto &e : entry_points)
fprintf(stderr, " %s (%s)\n", e.c_str(), execution_model_to_str(compiler.get_entry_point(e).model));
fprintf(stderr, " %s (%s)\n", e.name.c_str(), execution_model_to_str(e.execution_model));
fprintf(stderr, "\n");
fprintf(stderr, "Execution modes:\n");
for (unsigned i = 0; i < 64; i++)
{
if (!(modes & (1ull << i)))
continue;
modes.for_each_bit([&](uint32_t i) {
auto mode = static_cast<ExecutionMode>(i);
uint32_t arg0 = compiler.get_execution_mode_argument(mode, 0);
uint32_t arg1 = compiler.get_execution_mode_argument(mode, 1);
@@ -352,7 +371,7 @@ static void print_resources(const Compiler &compiler, const ShaderResources &res
default:
break;
}
}
});
fprintf(stderr, "\n");
print_resources(compiler, "subpass inputs", res.subpass_inputs);
@@ -459,6 +478,7 @@ struct CLIArguments
bool fixup = false;
bool yflip = false;
bool sso = false;
bool support_nonzero_baseinstance = true;
vector<PLSArg> pls_in;
vector<PLSArg> pls_out;
vector<Remap> remaps;
@@ -467,11 +487,19 @@ struct CLIArguments
vector<InterfaceVariableRename> interface_variable_renames;
vector<HLSLVertexAttributeRemap> hlsl_attr_remap;
string entry;
string entry_stage;
vector<pair<string, string>> entry_point_rename;
struct Rename
{
string old_name;
string new_name;
ExecutionModel execution_model;
};
vector<Rename> entry_point_rename;
uint32_t iterations = 1;
bool cpp = false;
string reflect;
bool msl = false;
bool hlsl = false;
bool hlsl_compat = false;
@@ -479,24 +507,49 @@ struct CLIArguments
bool flatten_multidimensional_arrays = false;
bool use_420pack_extension = true;
bool remove_unused = false;
bool combined_samplers_inherit_bindings = false;
};
static void print_help()
{
fprintf(stderr, "Usage: spirv-cross [--output <output path>] [SPIR-V file] [--es] [--no-es] "
"[--version <GLSL version>] [--dump-resources] [--help] [--force-temporary] "
"[--vulkan-semantics] [--flatten-ubo] [--fixup-clipspace] [--flip-vert-y] [--iterations iter] "
"[--cpp] [--cpp-interface-name <name>] "
"[--msl] [--msl-version <MMmmpp>]"
"[--hlsl] [--shader-model] [--hlsl-enable-compat] "
"[--separate-shader-objects]"
"[--pls-in format input-name] [--pls-out format output-name] [--remap source_name target_name "
"components] [--extension ext] [--entry name] [--remove-unused-variables] "
"[--flatten-multidimensional-arrays] [--no-420pack-extension] "
"[--remap-variable-type <variable_name> <new_variable_type>] "
"[--rename-interface-variable <in|out> <location> <new_variable_name>] "
"[--set-hlsl-vertex-input-semantic <location> <semantic>] "
"[--rename-entry-point <old> <new>] "
fprintf(stderr, "Usage: spirv-cross\n"
"\t[--output <output path>]\n"
"\t[SPIR-V file]\n"
"\t[--es]\n"
"\t[--no-es]\n"
"\t[--version <GLSL version>]\n"
"\t[--dump-resources]\n"
"\t[--help]\n"
"\t[--force-temporary]\n"
"\t[--vulkan-semantics]\n"
"\t[--flatten-ubo]\n"
"\t[--fixup-clipspace]\n"
"\t[--flip-vert-y]\n"
"\t[--iterations iter]\n"
"\t[--cpp]\n"
"\t[--cpp-interface-name <name>]\n"
"\t[--msl]\n"
"\t[--msl-version <MMmmpp>]\n"
"\t[--hlsl]\n"
"\t[--reflect]\n"
"\t[--shader-model]\n"
"\t[--hlsl-enable-compat]\n"
"\t[--separate-shader-objects]\n"
"\t[--pls-in format input-name]\n"
"\t[--pls-out format output-name]\n"
"\t[--remap source_name target_name components]\n"
"\t[--extension ext]\n"
"\t[--entry name]\n"
"\t[--stage <stage (vert, frag, geom, tesc, tese comp)>]\n"
"\t[--remove-unused-variables]\n"
"\t[--flatten-multidimensional-arrays]\n"
"\t[--no-420pack-extension]\n"
"\t[--remap-variable-type <variable_name> <new_variable_type>]\n"
"\t[--rename-interface-variable <in|out> <location> <new_variable_name>]\n"
"\t[--set-hlsl-vertex-input-semantic <location> <semantic>]\n"
"\t[--rename-entry-point <old> <new> <stage>]\n"
"\t[--combined-samplers-inherit-bindings]\n"
"\t[--no-support-nonzero-baseinstance]\n"
"\n");
}
@@ -584,31 +637,22 @@ static PlsFormat pls_format(const char *str)
return PlsNone;
}
void rename_interface_variable(Compiler &compiler, const vector<Resource> &resources,
const InterfaceVariableRename &rename)
static ExecutionModel stage_to_execution_model(const std::string &stage)
{
for (auto &v : resources)
{
if (!compiler.has_decoration(v.id, spv::DecorationLocation))
continue;
auto loc = compiler.get_decoration(v.id, spv::DecorationLocation);
if (loc != rename.location)
continue;
auto &type = compiler.get_type(v.base_type_id);
// This is more of a friendly variant. If we need to rename interface variables, we might have to rename
// structs as well and make sure all the names match up.
if (type.basetype == SPIRType::Struct)
{
compiler.set_name(v.base_type_id, join("SPIRV_Cross_Interface_Location", rename.location));
for (uint32_t i = 0; i < uint32_t(type.member_types.size()); i++)
compiler.set_member_name(v.base_type_id, i, join("InterfaceMember", i));
}
compiler.set_name(v.id, rename.variable_name);
}
if (stage == "vert")
return ExecutionModelVertex;
else if (stage == "frag")
return ExecutionModelFragment;
else if (stage == "comp")
return ExecutionModelGLCompute;
else if (stage == "tesc")
return ExecutionModelTessellationControl;
else if (stage == "tese")
return ExecutionModelTessellationEvaluation;
else if (stage == "geom")
return ExecutionModelGeometry;
else
SPIRV_CROSS_THROW("Invalid stage.");
}
static int main_inner(int argc, char *argv[])
@@ -640,6 +684,7 @@ static int main_inner(int argc, char *argv[])
cbs.add("--flip-vert-y", [&args](CLIParser &) { args.yflip = true; });
cbs.add("--iterations", [&args](CLIParser &parser) { args.iterations = parser.next_uint(); });
cbs.add("--cpp", [&args](CLIParser &) { args.cpp = true; });
cbs.add("--reflect", [&args](CLIParser &parser) { args.reflect = parser.next_value_string("json"); });
cbs.add("--cpp-interface-name", [&args](CLIParser &parser) { args.cpp_interface_name = parser.next_string(); });
cbs.add("--metal", [&args](CLIParser &) { args.msl = true; }); // Legacy compatibility
cbs.add("--msl", [&args](CLIParser &) { args.msl = true; });
@@ -652,9 +697,11 @@ static int main_inner(int argc, char *argv[])
cbs.add("--rename-entry-point", [&args](CLIParser &parser) {
auto old_name = parser.next_string();
auto new_name = parser.next_string();
args.entry_point_rename.push_back({ old_name, new_name });
auto model = stage_to_execution_model(parser.next_string());
args.entry_point_rename.push_back({ old_name, new_name, move(model) });
});
cbs.add("--entry", [&args](CLIParser &parser) { args.entry = parser.next_string(); });
cbs.add("--stage", [&args](CLIParser &parser) { args.entry_stage = parser.next_string(); });
cbs.add("--separate-shader-objects", [&args](CLIParser &) { args.sso = true; });
cbs.add("--set-hlsl-vertex-input-semantic", [&args](CLIParser &parser) {
HLSLVertexAttributeRemap remap;
@@ -709,6 +756,10 @@ static int main_inner(int argc, char *argv[])
});
cbs.add("--remove-unused-variables", [&args](CLIParser &) { args.remove_unused = true; });
cbs.add("--combined-samplers-inherit-bindings",
[&args](CLIParser &) { args.combined_samplers_inherit_bindings = true; });
cbs.add("--no-support-nonzero-baseinstance", [&](CLIParser &) { args.support_nonzero_baseinstance = false; });
cbs.default_handler = [&args](const char *value) { args.input = value; };
cbs.error_handler = [] { print_help(); };
@@ -730,9 +781,22 @@ static int main_inner(int argc, char *argv[])
return EXIT_FAILURE;
}
unique_ptr<CompilerGLSL> compiler;
// Special case reflection because it has little to do with the path followed by code-outputting compilers
if (!args.reflect.empty())
{
CompilerReflection compiler(read_spirv_file(args.input));
compiler.set_format(args.reflect);
auto json = compiler.compile();
if (args.output)
write_string_to_file(args.output, json.c_str());
else
printf("%s", json.c_str());
return EXIT_SUCCESS;
}
unique_ptr<CompilerGLSL> compiler;
bool combined_image_samplers = false;
bool build_dummy_sampler = false;
if (args.cpp)
{
@@ -745,16 +809,17 @@ static int main_inner(int argc, char *argv[])
compiler = unique_ptr<CompilerMSL>(new CompilerMSL(read_spirv_file(args.input)));
auto *msl_comp = static_cast<CompilerMSL *>(compiler.get());
auto msl_opts = msl_comp->get_options();
auto msl_opts = msl_comp->get_msl_options();
if (args.set_msl_version)
msl_opts.msl_version = args.msl_version;
msl_comp->set_options(msl_opts);
msl_comp->set_msl_options(msl_opts);
}
else if (args.hlsl)
compiler = unique_ptr<CompilerHLSL>(new CompilerHLSL(read_spirv_file(args.input)));
else
{
combined_image_samplers = !args.vulkan_semantics;
build_dummy_sampler = true;
compiler = unique_ptr<CompilerGLSL>(new CompilerGLSL(read_spirv_file(args.input)));
}
@@ -770,19 +835,91 @@ static int main_inner(int argc, char *argv[])
}
for (auto &rename : args.entry_point_rename)
compiler->rename_entry_point(rename.first, rename.second);
compiler->rename_entry_point(rename.old_name, rename.new_name, rename.execution_model);
if (!args.entry.empty())
compiler->set_entry_point(args.entry);
auto entry_points = compiler->get_entry_points_and_stages();
auto entry_point = args.entry;
ExecutionModel model = ExecutionModelMax;
if (!args.set_version && !compiler->get_options().version)
if (!args.entry_stage.empty())
{
model = stage_to_execution_model(args.entry_stage);
if (entry_point.empty())
{
// Just use the first entry point with this stage.
for (auto &e : entry_points)
{
if (e.execution_model == model)
{
entry_point = e.name;
break;
}
}
if (entry_point.empty())
{
fprintf(stderr, "Could not find an entry point with stage: %s\n", args.entry_stage.c_str());
return EXIT_FAILURE;
}
}
else
{
// Make sure both stage and name exists.
bool exists = false;
for (auto &e : entry_points)
{
if (e.execution_model == model && e.name == entry_point)
{
exists = true;
break;
}
}
if (!exists)
{
fprintf(stderr, "Could not find an entry point %s with stage: %s\n", entry_point.c_str(),
args.entry_stage.c_str());
return EXIT_FAILURE;
}
}
}
else if (!entry_point.empty())
{
// Make sure there is just one entry point with this name, or the stage
// is ambiguous.
uint32_t stage_count = 0;
for (auto &e : entry_points)
{
if (e.name == entry_point)
{
stage_count++;
model = e.execution_model;
}
}
if (stage_count == 0)
{
fprintf(stderr, "There is no entry point with name: %s\n", entry_point.c_str());
return EXIT_FAILURE;
}
else if (stage_count > 1)
{
fprintf(stderr, "There is more than one entry point with name: %s. Use --stage.\n", entry_point.c_str());
return EXIT_FAILURE;
}
}
if (!entry_point.empty())
compiler->set_entry_point(entry_point, model);
if (!args.set_version && !compiler->get_common_options().version)
{
fprintf(stderr, "Didn't specify GLSL version and SPIR-V did not specify language.\n");
print_help();
return EXIT_FAILURE;
}
CompilerGLSL::Options opts = compiler->get_options();
CompilerGLSL::Options opts = compiler->get_common_options();
if (args.set_version)
opts.version = args.version;
if (args.set_es)
@@ -794,13 +931,14 @@ static int main_inner(int argc, char *argv[])
opts.vulkan_semantics = args.vulkan_semantics;
opts.vertex.fixup_clipspace = args.fixup;
opts.vertex.flip_vert_y = args.yflip;
compiler->set_options(opts);
opts.vertex.support_nonzero_base_instance = args.support_nonzero_baseinstance;
compiler->set_common_options(opts);
// Set HLSL specific options.
if (args.hlsl)
{
auto *hlsl = static_cast<CompilerHLSL *>(compiler.get());
auto hlsl_opts = hlsl->get_options();
auto hlsl_opts = hlsl->get_hlsl_options();
if (args.set_shader_model)
{
if (args.shader_model < 30)
@@ -816,8 +954,20 @@ static int main_inner(int argc, char *argv[])
{
// Enable all compat options.
hlsl_opts.point_size_compat = true;
hlsl_opts.point_coord_compat = true;
}
hlsl->set_hlsl_options(hlsl_opts);
}
if (build_dummy_sampler)
{
uint32_t sampler = compiler->build_dummy_sampler_for_combined_images();
if (sampler != 0)
{
// Set some defaults to make validation happy.
compiler->set_decoration(sampler, DecorationDescriptorSet, 0);
compiler->set_decoration(sampler, DecorationBinding, 0);
}
hlsl->set_options(hlsl_opts);
}
ShaderResources res;
@@ -858,9 +1008,11 @@ static int main_inner(int argc, char *argv[])
for (auto &rename : args.interface_variable_renames)
{
if (rename.storageClass == StorageClassInput)
rename_interface_variable(*compiler, res.stage_inputs, rename);
spirv_cross_util::rename_interface_variable(*compiler, res.stage_inputs, rename.location,
rename.variable_name);
else if (rename.storageClass == StorageClassOutput)
rename_interface_variable(*compiler, res.stage_outputs, rename);
spirv_cross_util::rename_interface_variable(*compiler, res.stage_outputs, rename.location,
rename.variable_name);
else
{
fprintf(stderr, "error at --rename-interface-variable <in|out> ...\n");
@@ -879,6 +1031,9 @@ static int main_inner(int argc, char *argv[])
if (combined_image_samplers)
{
compiler->build_combined_image_samplers();
if (args.combined_samplers_inherit_bindings)
spirv_cross_util::inherit_combined_sampler_bindings(*compiler);
// Give the remapped combined samplers new names.
for (auto &remap : compiler->get_combined_image_samplers())
{
@@ -887,6 +1042,17 @@ static int main_inner(int argc, char *argv[])
}
}
if (args.hlsl)
{
auto *hlsl_compiler = static_cast<CompilerHLSL *>(compiler.get());
uint32_t new_builtin = hlsl_compiler->remap_num_workgroups_builtin();
if (new_builtin)
{
hlsl_compiler->set_decoration(new_builtin, DecorationDescriptorSet, 0);
hlsl_compiler->set_decoration(new_builtin, DecorationBinding, 0);
}
}
string glsl;
for (uint32_t i = 0; i < args.iterations; i++)
{
+4
View File
@@ -127,9 +127,11 @@
<ClCompile Include="..\spirv_cpp.cpp" />
<ClCompile Include="..\spirv_cross.cpp" />
<ClCompile Include="..\spirv_glsl.cpp" />
<ClCompile Include="..\spirv_reflect.cpp" />
<ClCompile Include="..\spirv_hlsl.cpp" />
<ClCompile Include="..\spirv_msl.cpp" />
<ClCompile Include="..\spirv_cfg.cpp" />
<ClCompile Include="..\spirv_cross_util.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\GLSL.std.450.h" />
@@ -137,10 +139,12 @@
<ClInclude Include="..\spirv_cpp.hpp" />
<ClInclude Include="..\spirv_cross.hpp" />
<ClInclude Include="..\spirv_glsl.hpp" />
<ClInclude Include="..\spirv_reflect.hpp" />
<ClInclude Include="..\spirv.hpp" />
<ClInclude Include="..\spirv_hlsl.hpp" />
<ClInclude Include="..\spirv_msl.hpp" />
<ClInclude Include="..\spirv_cfg.hpp" />
<ClInclude Include="..\spirv_cross_util.hpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
+12
View File
@@ -24,6 +24,9 @@
<ClCompile Include="..\spirv_glsl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\spirv_reflect.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\spirv_cpp.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -36,6 +39,9 @@
<ClCompile Include="..\spirv_hlsl.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\spirv_cross_util.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\GLSL.std.450.h">
@@ -47,6 +53,9 @@
<ClInclude Include="..\spirv_glsl.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\spirv_reflect.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\spirv.hpp">
<Filter>Header Files</Filter>
</ClInclude>
@@ -65,5 +74,8 @@
<ClInclude Include="..\spirv_hlsl.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\spirv_cross_util.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -0,0 +1,32 @@
RWByteAddressBuffer bar : register(u0);
RWByteAddressBuffer foo : register(u1);
void comp_main()
{
[unroll]
for (int _135 = 0; _135 < 16; )
{
bar.Store4(_135 * 16 + 0, asuint(asfloat(foo.Load4(_135 * 16 + 0))));
_135++;
continue;
}
[loop]
for (int _136 = 0; _136 < 16; )
{
bar.Store4((15 - _136) * 16 + 0, asuint(asfloat(foo.Load4(_136 * 16 + 0))));
_136++;
continue;
}
[branch]
if (asfloat(bar.Load(160)) > 10.0f)
{
foo.Store4(320, asuint(5.0f.xxxx));
}
foo.Store4(320, asuint(20.0f.xxxx));
}
[numthreads(1, 1, 1)]
void main()
{
comp_main();
}
@@ -0,0 +1,30 @@
Texture2D<float4> uTex : register(t1);
SamplerState uSampler : register(s0);
static float4 FragColor;
static float2 vUV;
struct SPIRV_Cross_Input
{
float2 vUV : TEXCOORD0;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = uTex.Sample(uSampler, vUV);
FragColor += uTex.Sample(uSampler, vUV, int2(1, 1));
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vUV = stage_input.vUV;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,8 @@
void frag_main()
{
}
void main()
{
frag_main();
}
@@ -0,0 +1,29 @@
static float4 FragColor;
static float4 vA;
static float4 vB;
struct SPIRV_Cross_Input
{
float4 vA : TEXCOORD0;
float4 vB : TEXCOORD1;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = fmod(vA, vB);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vA = stage_input.vA;
vB = stage_input.vB;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,19 @@
static float4 FragColor;
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = 10.0f.xxxx;
}
SPIRV_Cross_Output main()
{
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,31 @@
Texture2D<float4> uTexture : register(t0);
SamplerState _uTexture_sampler : register(s0);
static int2 Size;
struct SPIRV_Cross_Output
{
int2 Size : SV_Target0;
};
uint2 SPIRV_Cross_textureSize(Texture2D<float4> Tex, uint Level, out uint Param)
{
uint2 ret;
Tex.GetDimensions(Level, ret.x, ret.y, Param);
return ret;
}
void frag_main()
{
uint _19_dummy_parameter;
uint _20_dummy_parameter;
Size = int2(SPIRV_Cross_textureSize(uTexture, uint(0), _19_dummy_parameter)) + int2(SPIRV_Cross_textureSize(uTexture, uint(1), _20_dummy_parameter));
}
SPIRV_Cross_Output main()
{
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.Size = Size;
return stage_output;
}
@@ -0,0 +1,57 @@
Texture2D<float4> uImage : register(t0);
SamplerState _uImage_sampler : register(s0);
static float4 v0;
static float4 FragColor;
struct SPIRV_Cross_Input
{
float4 v0 : TEXCOORD0;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
float phi;
float4 _36;
int _51;
_51 = 0;
phi = 1.0f;
_36 = float4(1.0f, 2.0f, 1.0f, 2.0f);
for (;;)
{
FragColor = _36;
if (_51 < 4)
{
if (v0[_51] > 0.0f)
{
float2 _48 = phi.xx;
_51++;
phi += 2.0f;
_36 = uImage.SampleLevel(_uImage_sampler, _48, 0.0f);
continue;
}
else
{
break;
}
}
else
{
break;
}
}
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
v0 = stage_input.v0;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,57 @@
static const float _46[16] = { 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f, 1.0f, 2.0f, 3.0f, 4.0f };
static const float4 _76[4] = { 0.0f.xxxx, 1.0f.xxxx, 8.0f.xxxx, 5.0f.xxxx };
static const float4 _90[4] = { 20.0f.xxxx, 30.0f.xxxx, 50.0f.xxxx, 60.0f.xxxx };
static float FragColor;
static int index;
struct SPIRV_Cross_Input
{
nointerpolation int index : TEXCOORD0;
};
struct SPIRV_Cross_Output
{
float FragColor : SV_Target0;
};
void frag_main()
{
float4 foobar[4] = _76;
float4 baz[4] = _76;
FragColor = _46[index];
if (index < 10)
{
FragColor += _46[index ^ 1];
}
else
{
FragColor += _46[index & 1];
}
bool _99 = index > 30;
if (_99)
{
FragColor += _76[index & 3].y;
}
else
{
FragColor += _76[index & 1].x;
}
if (_99)
{
foobar[1].z = 20.0f;
}
int _37 = index & 3;
FragColor += foobar[_37].z;
baz = _90;
FragColor += baz[_37].z;
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
index = stage_input.index;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,29 @@
static float4 FragColor;
static int4 vA;
static int4 vB;
struct SPIRV_Cross_Input
{
nointerpolation int4 vA : TEXCOORD0;
nointerpolation int4 vB : TEXCOORD1;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = float4(vA - vB * (vA / vB));
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vA = stage_input.vA;
vB = stage_input.vB;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,29 @@
Texture2D<float4> uTexture : register(t0);
SamplerState _uTexture_sampler : register(s0);
static float4 gl_FragCoord;
static float4 FragColor;
struct SPIRV_Cross_Input
{
float4 gl_FragCoord : SV_Position;
};
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
void frag_main()
{
FragColor = uTexture.Load(int3(int2(gl_FragCoord.xy), 0));
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
gl_FragCoord = stage_input.gl_FragCoord;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -0,0 +1,31 @@
Texture2D<float4> uShadow : register(t0);
SamplerComparisonState _uShadow_sampler : register(s0);
Texture2D<float4> uTexture : register(t1);
SamplerComparisonState uSampler : register(s2);
static float3 vUV;
static float FragColor;
struct SPIRV_Cross_Input
{
float3 vUV : TEXCOORD0;
};
struct SPIRV_Cross_Output
{
float FragColor : SV_Target0;
};
void frag_main()
{
FragColor = uShadow.SampleCmp(_uShadow_sampler, vUV.xy, vUV.z) + uTexture.SampleCmp(uSampler, vUV.xy, vUV.z);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vUV = stage_input.vUV;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}
@@ -11,25 +11,23 @@ struct SPIRV_Cross_Output
float4 FragColor : SV_Target0;
};
float4 _21;
void frag_main()
{
float4 _33;
do
bool _29;
for (;;)
{
if (counter == 10)
_29 = counter == 10;
if (_29)
{
_33 = 10.0f.xxxx;
break;
}
else
{
_33 = 30.0f.xxxx;
break;
}
} while (false);
FragColor = _33;
}
bool4 _35 = _29.xxxx;
FragColor = float4(_35.x ? 10.0f.xxxx.x : 30.0f.xxxx.x, _35.y ? 10.0f.xxxx.y : 30.0f.xxxx.y, _35.z ? 10.0f.xxxx.z : 30.0f.xxxx.z, _35.w ? 10.0f.xxxx.w : 30.0f.xxxx.w);
}
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
@@ -1,8 +0,0 @@
void vert_main()
{
}
void main()
{
vert_main();
}
@@ -0,0 +1,37 @@
static const int _7 = -10;
static const uint _8 = 100u;
static const int _20 = (_7 + 2);
static const uint _25 = (_8 % 5u);
static const int4 _30 = int4(20, 30, _20, _20);
static const int2 _32 = int2(_30.y, _30.x);
static const int _33 = _30.y;
static float4 gl_Position;
static int _4;
struct SPIRV_Cross_Output
{
nointerpolation int _4 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
void vert_main()
{
float4 _64 = 0.0f.xxxx;
_64.y = float(_20);
float4 _68 = _64;
_68.z = float(_25);
float4 _52 = _68 + float4(_30);
float2 _56 = _52.xy + float2(_32);
gl_Position = float4(_56.x, _56.y, _52.z, _52.w);
_4 = _33;
}
SPIRV_Cross_Output main()
{
vert_main();
SPIRV_Cross_Output stage_output;
stage_output.gl_Position = gl_Position;
stage_output._4 = _4;
return stage_output;
}
Loaded 100 of 3943 files, more files were not shown because too many files have changed in this diff. Show more