Commit Graph

621 Commits

Author SHA1 Message Date
scribam a5608f4f22 android: update project
- Upgrade AGP dependency from 8.3.0 to 8.4.1
- Upgrade Gradle version to 8.6
- Use version catalogs
2024-05-22 16:16:07 +02:00
Flyinghead 6f0581032b save screenshot. add screenshot to savestates
Retrieve last frame rgb data (gl, vk, dx9, dx11).
Specific save screenshot code for android, iOS and UWP.
Add Save Screenshot emu key (F12 by default)
vk: defer deletion of in-flight textures when texture cache is cleared.
vk: fix issue when updating imgui textures after a render pass has begun
(achievements)
vk: palette texture not updated after a state has been loaded.
gl: Move opengl-specific stuff into opengl imgui driver.
savestate: Add non compressed header, following by screenshot png data,
before actual savestate.

Issue #842
2024-05-13 15:47:34 +02:00
Flyinghead 13302b87c8 move ui to its own folder 2024-05-07 22:23:51 +02:00
Flyinghead 300cf0d437 better RetroAchievements UI and threading
Pop ups for authentication, game load, game completed, achievements
unlock and progress.
Handle disk changes.
Issue #761
2024-05-01 18:32:39 +02:00
Flyinghead c96e828c63 move http_client to oslib 2024-04-29 16:17:50 +02:00
Flyinghead 8fdd1dde3d RetroAchievements support
MVP
Issue #761
2024-04-29 14:59:47 +02:00
Flyinghead 336706e728 move most os_* funcs to oslib
add os_DestroyWindow and os_UpdateInputState
2024-04-12 17:37:45 +02:00
Flyinghead 06a6e26588 get rid of os_GetSeconds()
replace it with std::chrono-based getTimeMs()
2024-04-11 15:25:25 +02:00
Flyinghead 42e98e86d0 set thread names
Name all threads to help debugging and improve crash reports (windows
only)
Add ^C handler for clean exit on linux
2024-04-10 17:08:24 +02:00
Flyinghead a6c4530e22 vulkan: allow custom GPU driver loading with libadrenotools
Issue #1471
2024-04-07 12:27:54 +02:00
scribam d2dc60ec00 android: update android gradle plugin to version 8.3.0 2024-03-02 18:36:54 +01:00
Flyinghead c9d3096e41 android: hid barcode scanner support 2024-02-27 17:39:51 +01:00
scribam 51d25bb49b android: update android gradle plugin to version 8.2.2 2024-02-03 16:28:57 +01:00
scribam f6b01aba0c android: update android gradle plugin to version 8.2.1 2024-01-20 19:24:07 +01:00
Flyinghead c001240797 move audio drivers to their own folder 2024-01-10 11:45:54 +01:00
Flyinghead 9c964ac955 refactor embedded resource loading. Use for imgui font and android OSD
Generic embedded resource loading function
Zip bios and printer fonts
Add buttons.png and Roboto-Medium.ttf as embedded resources
2024-01-02 14:37:29 +01:00
scribam bf4346c849 android: update agp and gradle to version 8.2 2023-12-13 17:31:56 +01:00
scribam f14c29fd04 android: update android gradle plugin to version 8.1.4 2023-11-18 18:21:45 +01:00
Flyinghead 7b71bd319c Android and iOS support. Change dead zone to integer % value in UI
UI: dead zone changes from 0 to 100%. Add % for Rumble too.
Support Android and iOS gamepads.
Assume legacy gamepads have an analog stick (evdev, xinput)
2023-10-30 18:28:29 +01:00
Flyinghead 8ba5e05421 android scoped storage: default to hack the uri manually in getParentUri
If DocumentsContract.Path.getPath() fails, try to hack the uri manually
instead of returning null/empty (android 10)
2023-10-21 21:40:13 +02:00
scribam 7fc70ee1f4 android: update android gradle plugin to version 8.1.2 2023-10-03 22:50:35 +02:00
Flyinghead a915f185f8 Merge remote-tracking branch 'origin/master' into dev 2023-09-25 22:17:29 +02:00
vkedwardli b564b0bf91
Increase L2+ / R2+ trigger sensitivity for digital buttons (#1190) 2023-09-14 09:08:58 +02:00
scribam 13f3c3e228 android: update cmake and ndk 2023-07-30 18:02:43 +02:00
scribam 817cc87c8c android: update android gradle plugin to version 8.1.0 2023-07-30 18:02:43 +02:00
scribam bee534922b android: update android gradle plugin to version 8.0.2 2023-06-12 16:06:20 +02:00
Flyinghead a7b89ba06a android: don't get null array region in jni_util
Fixes MINIDUMP-YY
2023-05-16 14:45:31 +02:00
Flyinghead c3c355a8c5 android: use jni helper. better support for arrays and global refs. 2023-04-12 10:22:38 +02:00
Flyinghead 87fdd203b5 android scoped storage (ASS) support
introduce Storage abstraction interfaces
use Storage i/f to load zip and 7z archives, cdi/cue/gdi/chd media,
cheats and to find custom textures.
Use android file picker to add storage. Request persisted access perms.
jni helper classes.

Issue #813
2023-04-08 18:37:50 +02:00
Flyinghead c033a81eca get rid of KeyboardDeviceTemplate 2023-03-29 16:48:46 +02:00
scribam 7cce77cccd android: update android gradle plugin to version 7.4.2 2023-03-27 16:59:35 +02:00
Flyinghead cab02c86bc android: only restart if game is running
Fixes MINIDUMP-G1, MINIDUMP-FV, MINIDUMP-FY, MINIDUMP-FD, MINIDUMP-F2,
MINIDUMP-EN
2023-03-06 17:02:01 +01:00
Flyinghead 30501aebb1 Race condition when stopping while emu is failing
Emulator::stop now throws if an error occurred on the emu thread.
Fixes MINIDUMP-5B
2023-02-26 22:01:32 +01:00
scribam d8137a967c
C++17 (#926)
* cmake: use c++17

* Use std::size

* Use std::make_unique

* Use std::clamp

* Use structured binding

* Use [[fallthrough]]

* Use enable_if_t/is_enum_v/is_integral_v/is_same_v

* Use if constexpr

* Use try_emplace

* Use auto for iterators

* Use inline variables
2023-02-18 13:24:34 +01:00
Flyinghead debe21de7b Merge remote-tracking branch 'origin/master' into dev 2023-02-05 22:20:28 +01:00
scribam 962b0bb65c android: update android gradle plugin to version 7.4.1 2023-02-03 11:47:11 +01:00
Flyinghead 6b2063b06f GGPO fixes
Memwatchers weren't properly reset after a ggpo session.

Race condition when stopping if GGPO restarts the cpu for a new frame.

The emu thread might still run some rollback frames before stopping, so
the emu state must be updated only after ggpo is stopped.
Fixes MINIDUMP-6P

Don't autosavestate when GGPO is on

Really disable renderer during GGPO advance frame

Don't stop the sh4 after render (single threaded) when GGPO is on

android: Don't restart when unpaused if online
2023-02-01 18:04:26 +01:00
Flyinghead 5703ef26cf os_DebugBreak is [[noreturn]] 2023-01-24 19:24:26 +01:00
scribam 458b233e16 android: add vibrate compatibility with newer versions 2023-01-18 20:37:10 +01:00
scribam cbffc5cade
android: misc changes (#876)
* android: add appCategory attribute

* android: remove unnecessary @TargetApi

* android: replace 'for' loop with enhanced 'for'

* android: use java-style array declaration
2023-01-15 20:44:47 +01:00
Flyinghead 329e5ed467 android: allow starting games with intent while a game is running
stops and unload the current game then starts the new one
2023-01-15 20:02:03 +01:00
scribam fc118f295d android: remove oboe 2023-01-14 13:02:34 +01:00
scribam 18cfe2f92f android: update project for Android Studio Eel 2023-01-14 13:02:34 +01:00
scribam 0d4a7dbac9 android: use getDefaultDisplay with android api level < 17 2023-01-14 13:02:04 +01:00
Flyinghead 673fb26d6e android: threading fix. stop vibrator thread. allow screen saver
If the android activity is destroyed and the game unloaded, the gui's
game state wasn't updated, leading to a crash if resuming. Same for the
android game state if pausing, destroying then resuming.
tentative fix for MINIDUMP-27, MINIDUMP-25, MINIDUMP-23
Wait until emu is stopped in single-threaded.
Stop vibrator thread when view is detached
Allow the screen saver when a game isn't running.
2023-01-11 11:44:28 +01:00
Flyinghead b6491a3842 android: REICAST_HOME -> FLYCAST_HOME 2023-01-05 20:21:15 +01:00
Flyinghead 17474bf005 android: log abort message to normal log so it's stored in the minidump 2023-01-05 13:01:49 +01:00
Flyinghead 7372df3aff android: check if activity is null before using it to show/hide keyboard
tentative fix for MINIDUMP-Z
2022-12-31 16:53:08 +01:00
Flyinghead 95a00a165a sentry: upload crashes after reading emu.cfg to comply with user choice
android: get rid of Send Logs button
2022-12-23 10:06:24 +01:00
Flyinghead 5387a6b534 android: minify makes httpclient fail
fixes sentry.io upload
2022-12-22 13:13:23 +01:00
Flyinghead bf09e96e04 android: more logging 2022-12-21 18:02:30 +01:00
Flyinghead b5d8cecd91 android: delay sentry upload to avoid broken pipe. Log more stuff
tentative fix for the broken pipe error when uploading to sentry on
android.
init log and sleep for 5 secs before upload
log git version, gpu name and version, renderer type and game id
2022-12-21 16:49:08 +01:00
Flyinghead 1e0a875fa3 sentry: various fixes. Upload last log lines with the minidump 2022-12-21 11:23:15 +01:00
Flyinghead f3a6fb7d8b sentry.io integration 2022-12-20 21:52:46 +01:00
Flyinghead f25aeee756 audio: don't crash if audio init fails. Fall back to auto
Don't crash if an audio backend fails to initialize.
Fall back to auto or run without sound.
Better audio backend framework
2022-10-22 12:08:05 +02:00
Flyinghead e0d87eb093 Merge remote-tracking branch 'origin/master' into dev
# Conflicts:
#	core/rend/gui.cpp
2022-08-22 13:09:56 +02:00
scribam 7457db8bba android: update android gradle plugin to version 7.2.2 2022-08-06 17:30:10 +02:00
Flyinghead 19112aecb2 Merge remote-tracking branch 'origin/master' into dev
# Conflicts:
#	core/hw/naomi/naomi_cart.cpp
2022-07-01 12:42:37 +02:00
scribam 0a5b8891a8 android: update gradle 2022-06-30 14:09:20 +02:00
Flyinghead b5b0875203 android keyboard support 2022-06-26 22:04:36 +02:00
Flyinghead 5eb302898f box art fetch and display
Issue #22
2022-06-15 21:22:12 +02:00
Flyinghead 971d47eb42 sdl: SDL_QuitSubSystem() on exit
Tentative fix for issue #654
2022-05-31 17:42:42 +02:00
Flyinghead cd22ba1a2b android: use WifiManager.MulticastLock to receive broadcast packets
In many cases, broadcast UDP packets can't be received on android unless
a MulticastLock is held.
2022-05-12 17:39:49 +02:00
flyinghead d732140bf9
Merge pull request #595 from flyinghead/dev
Naomi 2 support
2022-04-16 14:24:49 +02:00
Flyinghead db525bd5db android: fix touchscreen on Retroid Pocket 2+
Unexpected event source for touchscreen events
2022-04-15 18:06:15 +02:00
Flyinghead a710674cd4 gui: init once. reset ui driver when needed. android 120+ Hz support
ImGui is now initialized once at startup and shutdown before
terminating. graphics initialization is independent.
Move more imgui stuff into imgui drivers.
switch: set scaling on external screen to 1.4, same as xbox
UI scaling refactoring.
2022-04-13 18:06:19 +02:00
Flyinghead ddfc00ed9f Merge remote-tracking branch 'origin/master' into dev 2022-04-13 16:29:41 +02:00
scribam 069b501ca3 android: update android gradle plugin to version 7.1.3 2022-04-09 12:05:22 +02:00
Flyinghead af0574c04e build fixes for msvc, ios and android 2022-03-27 15:57:01 +02:00
Flyinghead 6c38295d62 new naomi network protocol. vblank event. initd rumble support
new vblank event, used by cheats, lua and naomi net
new udp net protocol for naomi. rx/tx on vblank on emu thread.
input: rumble power configurable (Issue #158)
ui: rumble intensity slider, enable/disable upnp
aica: hook to consume midi out
decode midi out to simulate rumble for initd
upnp can now be disabled
2022-03-27 15:23:21 +02:00
Flyinghead 53b5588bda Merge remote-tracking branch 'origin/master' into dev 2022-03-13 11:01:27 +01:00
scribam e6676c7d09 android: update gradle 2022-02-27 08:33:44 +01:00
scribam 33115a39a3 android: use latest cmake from android studio 2022-02-27 08:33:44 +01:00
Flyinghead e5d517dad2 use platform.isConsole(), platform.isNaomi(), ... 2022-01-27 17:52:19 +01:00
Flyinghead 7f41847c5c android: bigger on-screen gamepad analog handle. Update project README 2021-12-24 19:46:09 +01:00
scribam 32716e1480 android: update com.android.tools.build:gradle to version 7.0.4 2021-12-18 11:46:04 +01:00
scribam 8a6ce19e1e input: cleanup virtual function specifier 2021-11-29 18:19:22 +01:00
Flyinghead ac5abd96bb ui: imgui driver, GraphicsContext interface, dx9 swap interval
Refactor imgui backend code into imgui drivers for gl, vk, dx9
Generic GraphicsContext interface for gl/vk/dx9 contexts
Simplify graphics api switching code
dx9, gl(sdl): set swap interval based on monitor refresh rate.
2021-11-10 20:35:30 +01:00
scribam f777c62a66 android: update com.android.tools.build:gradle to version 7.0.3 2021-11-08 11:58:42 +01:00
Flyinghead ab45b5ec8a ggpo: keyboard/mouse games support. Fix chat when keyboard disabled
ggpo: support for arcade games using keyboard (totd, luptype) and
mouse/rotary encoders (waiwai drive)
Chat and UI now usable when the keyboard is not set to a maple port.
2021-10-19 16:56:46 +02:00
Flyinghead c061912574 android: fix hang when mount returns too much data
Issue #387
2021-10-16 18:16:17 +02:00
Flyinghead 5cfd897298 android: more activity init logs 2021-10-15 13:14:42 +02:00
Flyinghead 1c6e722961 android: add app external & internal files dir. Race condition at start
Fix crash at startup due to race condition with game scanner
Don't allow selection of non-writable folder during onboarding
Add private internal and external Files folders to list of storage
locations to choose from
Assign first external android gamepad to port A instead of B

ui: Fix layout of controller mapping dialog when port=All
2021-10-14 11:39:27 +02:00
Flyinghead bc238de5ce switch: open 4 controllers. android: java7 compatibility 2021-10-06 18:55:04 +02:00
Flyinghead 699dcdaf5b Merge remote-tracking branch 'origin/master' into net-rollback
# Conflicts:
#	core/hw/maple/maple_if.cpp
#	core/rend/mainui.cpp
#	shell/libretro/libretro.cpp
2021-09-30 15:03:29 +02:00
Flyinghead 2803ee8274 imgread.ImagePath clean up. ggpo: poll input late if !thread 2021-09-30 14:24:17 +02:00
Flyinghead 99bf7f77c4 single-threaded mode. refactoring.
single-threaded mode similar to libretro core
stateful Emulator object
disable memory watcher when !gppo
ggpo: poll input as late as possible in !threaded
2021-09-29 10:22:58 +02:00
Flyinghead 7fe2ab720f refactor screen_width/height 2021-09-27 20:29:23 +02:00
scribam 36007ceb68 android: update com.android.tools.build:gradle to version 7.0.2 2021-09-25 16:04:15 +02:00
Flyinghead 1725dbfa98 input: fix arcade mode for on-screen gamepads.
Use same layout as gamepad arcade for on-screen gamepads (ABXYRL)
map RT and LT to buttons 5 and 6 in arcade
android: Fix non-working fast-forward button
Use maple port in lastAxisValue state
naomi: use default alienfnt buttons: 1-4
2021-09-21 15:56:01 +02:00
Flyinghead 65956dbc8d input: merge buttons and axes
Default mappings for arcade and console
Default mappings for arcade stick/hitbox
Proper handling of inverted axes
ggpo: automatic analog setting for arcade games
2021-09-19 18:27:21 +02:00
Flyinghead 3b7a940e9b android: use list of axes for default mapping and axis handling
Issue #338
2021-09-15 14:44:56 +02:00
Flyinghead e45ec4324f Merge remote-tracking branch 'origin/master' into libretro 2021-09-10 12:19:29 +02:00
scribam 3589e94121 android: update com.android.tools.build:gradle to version 7.0.1 2021-08-31 17:52:51 +02:00
Flyinghead c27180fb32 android: fix navbar background. Add shortcuts for Coin/Service/Test
Fix black navigation bar background.
Shortcuts for virtual gamepad:
RT + A -> D (Coint)
RT + B -> C (Service)
RT + X -> Z (Test)
Issue #137

Don't deliver mouse clicks if analog triggers or stick are used
2021-08-11 12:58:57 +02:00
Flyinghead 6bb4575c95 Merge remote-tracking branch 'origin/master' into libretro 2021-08-05 18:17:30 +02:00
scribam fcef404f50 android: update gradle and dependencies 2021-07-30 19:35:07 +02:00
Flyinghead 7561ce753a unwind info for arm64. use static c++ lib for android
include oboe static libs
get rid of old regalloc
2021-07-29 17:46:46 +02:00
Flyinghead 5ac0e58886 android: mouse move events missing when btn down. Mouse wheel support
Issue #304
2021-07-27 10:32:22 +02:00
Flyinghead e12be7cf29 add breakpad support for android, linux and windown 2021-07-25 21:55:29 +02:00