Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android 11][Sdcard] Android 11 is can't find the SDcard. #13827

Closed
nassau-tk opened this issue Dec 28, 2020 · 46 comments
Closed

[Android 11][Sdcard] Android 11 is can't find the SDcard. #13827

nassau-tk opened this issue Dec 28, 2020 · 46 comments

Comments

@nassau-tk
Copy link
Contributor

What happens?

My Galaxy S20 is updated to Android11 a few days ago.

The problem has coming after format & remount the SDcard.
Then PPSSPP can't be find the SDcard.
Is this a specification of Android11's isn't it?
(I inspected about the problem.Maybe,right.)

Is it possible that PPSSP get an access right?

Maybe,Related #10199 .
But, This issue should not left to future.

What should happen?

Access to SDcard correctly.

@nassau-tk
Copy link
Contributor Author

Please, Tell me If there is any idea for avoidance the problem.

@nassau-tk
Copy link
Contributor Author

nassau-tk commented Dec 28, 2020

Maybe, Name of SDcard will change per format.
It's not fixed name.
So, Best countermeasure is getting PPSSPP acquires a right of access.

I don't have a knowledge of any programming but I found the info.
I paste the URL for reference.(Sorry,Japanese.
)
https://takusan23.github.io/Bibouroku/2020/04/19/Android11-DP2-%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%BF%9D%E5%AD%98%E3%81%BE%E3%81%A8%E3%82%81/

@nassau-tk
Copy link
Contributor Author

By the way, when preserving a apk file of PPSSPP in on-chip memory, it can be installed, but when I try to preserve and install in SDCARD, it'll be an error, and it can't be installed.

@jcchikikomori
Copy link
Contributor

jcchikikomori commented Dec 28, 2020

Maybe, Name of SDcard will change per format.
It's not fixed name.
So, Best countermeasure is getting PPSSPP acquires a right of access.

I don't have a knowledge of any programming but I found the info.
I paste the URL for reference.(Sorry,Japanese.
)
https://takusan23.github.io/Bibouroku/2020/04/19/Android11-DP2-%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%BF%9D%E5%AD%98%E3%81%BE%E3%81%A8%E3%82%81/

I kinda get your point. Maybe we should have the option to regain access to SDCard using that mentioned method, since this will be a velocity issue for all Android 10 ones that are available to upgrade for 11

@nassau-tk
Copy link
Contributor Author

Yes, I thought so too.
But, Sorry I couldn't find it on device setting.
And, I have installing kind of 2 filemanager app.
One of app is missing SDcard root. (It can't apper in the menu.)
Other app is appear the SDcard but It can access only limited folders.

@nassau-tk
Copy link
Contributor Author

I keep wishing that this is my misunderstanding.....

@unknownbrackets
Copy link
Collaborator

This is probably #11997. The solution will likely be a somewhat confusing mess. Welcome to the future of Android.

-[Unknown]

@nassau-tk
Copy link
Contributor Author

Oops.....
I didn't also think that the latest device was a hellish entrance....
(I'll sit down here until the time is coming. Quietly...):scream:

@nassau-tk
Copy link
Contributor Author

I got avoidance by manually.
This is only respecification of a folder of ROM.
I don't use memorystick save on Sdcard.

1 Open "Chrome".
2 Open "Setting".
3 Open "Download".
4 Tap the "Place of Download folder".
5 Change to the "SDcard".
6 See the path of stoarge/xxxx-xxxx/~~~~~ and memo it.
7 Open PPSSPP.ini and rewrite to the ""CurrentDirectory = /storage/xxxx-xxxx/".
8 Save it.

Open PPSSPP and tap "GAME List".
It will open the SDcard root directory.

xxxx-xxxx is different per user.

@unknownbrackets
Copy link
Collaborator

Ah, okay, not quite all of #11997 then - just that the sd card folders are no longer listable, sounds like.

-[Unknown]

@nassau-tk
Copy link
Contributor Author

Yes,I see.
But, The light user will confuse by it. (like me):sweat:

@nassau-tk
Copy link
Contributor Author

should I close this topic??

@anr2me
Copy link
Collaborator

anr2me commented Dec 28, 2020

btw @nassau-tk After upgrading to Android 11 when you launched PPSSPP for the first time, did it ask for storage access?
As i remembered some app need to have their permission to be revoked (ie. through App Info) after upgrading Android in order to work properly.

For example, like this comment termux/termux-app#1617 (comment)

@nassau-tk
Copy link
Contributor Author

@anr2me

No, I was not asked accept for access from device.

@hrydgard
Copy link
Owner

hrydgard commented Dec 28, 2020

Yeah the #11997 problem doesn't strike yet since I have requested the old behavior through AndroidManifest.xml - the hammer drops on Android 12 (November 2021) which will ignore that request.

However it does seem that Android 11 starts locking down a few things, and separate SD cards in addition to the "external memory" have always been annoying and badly supported through Android file API...

@hrydgard
Copy link
Owner

hrydgard commented Jan 3, 2021

If anyone know working paths to their SD cards, feel free to report them here. I'm thinking of making a button that tries a few common paths and see if we can access them...

Related to #10199

@unknownbrackets
Copy link
Collaborator

I think the problem is that it generates a random string or something after /storage/....

-[Unknown]

@anr2me
Copy link
Collaborator

anr2me commented Jan 4, 2021

If we only need to get the 32bit hexadecimal Sdcard's Volume ID/SN (ie. xxxx-xxxx) on /storage/xxxx-xxxx/ can't we just extracted it from myappcontext.getExternalCacheDirs() like this? https://stackoverflow.com/questions/50132764/getting-the-path-to-sd-card/50211328

Btw, according to this (updated 12 days ago) https://help.gaiagps.com/hc/en-us/articles/115003524047-Move-Where-Gaia-GPS-s-Root-Folder-is-Located-For-SD-Card-Storage-
Nexus is using /extSdCard/, i wonder if this is still the same on Android 11, or may be just a symlink to the actual /storage/xxxx-xxxx/

If the device has a physical SD card, it can appear under names (mount points) that vary by manufacturer. 
For Samsung, it's usually the pattern /storage/XXXX-XXXX/ and Nexus seems to use /extSdCard/.

@nassau-tk nassau-tk changed the title [Android 11][Sdcard] Android 11 is can't access the SDcard. [Android 11][Sdcard] Android 11 is can't find the SDcard. Jan 4, 2021
@nassau-tk
Copy link
Contributor Author

My using Comic Viewer can be selecte the Internal & External(SD) root dir.
"Perfect Viewer"

The way to avoidance is there. But I don't have a knowledge...

Screenshot_20210105-163005_Perfect Viewer

Screenshot_20210105-163020_Perfect Viewer

Screenshot_20210105-164010_Perfect Viewer

@hrydgard hrydgard added this to the v1.11.0 milestone Jan 7, 2021
hrydgard added a commit that referenced this issue Jan 7, 2021
This will disappear in future Android versions but can be useful for
older devices.

Fixes (or at least tries to) #10199, at least for some devices.

Might help #13827 ?

Tested on Pocophone F1.
@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

@nassau-tk , now that #13885 is merged, can you try and see if the new SD card button shows up on the game browser, and if it works for you? If it works, please close this.

@nassau-tk
Copy link
Contributor Author

nassau-tk commented Jan 8, 2021

@hrydgard

OMG.
It's can't work on my phone.
Even a splash screen isn't indicated.

v1.10.3-1507 & 1509 both.

If revert to v1.10.3-1496 then working.

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

Wait, what? It doesn't even start anymore?

I'll try on my Pixel which has Android 11... (it has Android 10, but system update to 11 available. I'll upgrade)

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

OK, I've fixed the crash, but I suspect you still won't be able to see the SD card..

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

Unfortunately I don't have any phones that both have Android 11 and an SD card slot... I'm thinking of getting an S21 but only the Ultra model will have SD it seems, and otherwise I don't really want the Ultra one. Argh...

@Tanari-de
Copy link

@hrydgard

OMG.
It's can't work on my phone.
Even a splash screen isn't indicated.

v1.10.3-1507 & 1509 both.

If revert to v1.10.3-1496 then working.

Same Problem on Poco X3 with CrDroid Android 11: v1.10.3-1496 is the last working Version. I also have (or better: had) the problem with no access to my ROMS on the external SD, but since editing the ini file i can access the external SD Card.

Anyway, a working SD-Card Button in PPSSPP would be nice :-)

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

1510 will get the app starting up correctly again, but I'm still looking for a reliable way to programmatically get the SDCARD path. Google is intentionally making it difficult, which annoys me.

@Tanari-de
Copy link

Unfortunately I don't have any phones that both have Android 11 and an SD card slot... I'm thinking of getting an S21 but only the Ultra model will have SD it seems, and otherwise I don't really want the Ultra one. Argh...

Using a rooted Poco X3 with SD Card and Android 11 here. Let me know if i can help somehow..

@nassau-tk
Copy link
Contributor Author

(^o^;) Um... It's not smart choice.(About S21 Ultra)
If you want test about like a it then I will help anytime. (^v^)b

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

I could make a silly workaround that lets you manually put the path to your SD card in the ini file, and it will then assign that to the button... But it will only help very technical users like you guys :)

@nassau-tk
Copy link
Contributor Author

I could make a silly workaround that lets you manually put the path to your SD card in the ini file, and it will then assign that to the button... But it will only help very technical users like you guys :)

When my memory is right.
Probably, I laughed most in "this year".:satisfied:

@nassau-tk
Copy link
Contributor Author

OK.

I tested v1.10.3-1510.
Ahhh....Where is SD button???

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

Yeah, I guess my solution doesn't work on Android 11 :( It does work on Android 10 and below.

I have some more ideas to try. There's something called the Intent.ACTION_OPEN_DOCUMENT_TREE which pops up a system folder browser. Not sure if it will allow choosing the SD card on Android 11, but I'm gonna try to implement support.

@nassau-tk
Copy link
Contributor Author

nassau-tk commented Jan 8, 2021

https://qiita.com/wa2c/items/6e085d1cd1daffb3b632

If you can translate from Japanese to your lang.

SDK 30 is NG?(Can't target root dir)
SDK 29 is OK?(Can target root dir.)

@Tanari-de
Copy link

Tanari-de commented Jan 8, 2021

Lemuroid does access the external SD-Card in the following way: If you select the "Directory" Button in that App it does start the android file manager and in that file manager you can select the external SD Card. Maybe this is a solution for PPSSPP also?

The standard Android File Manager is named "Dateien" on my german device, i guess its "Data" on english ones?

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

Yeah, that's the solution I'm thinking of implementing now. Maybe even, if the path looks like it's to an SD card, just save the beginning of the path and map it to the SD card button from there on.

@hrydgard
Copy link
Owner

hrydgard commented Jan 8, 2021

Experimenting with OPEN_DOCUMENT_TREE, I get a path that looks like this on my Android 10 device when picking the root of an SD card:

content://com.android.externalstorage.documents/tree/134A-DCC9%3A

That does contain 134A-DCC9 which matches the path to my SD card, so we could guess that the correct path is /storage/134A-DCC9. The alternative is probably to use Java Android Storage Framework APIs from there on out, which will be a pain (but will be required anyway for #11997 ).

I'll also look at how Lemuroid does it. But it seems to indeed use the ASF after getting the folder: https://github.com/Swordfish90/Lemuroid/blob/ab4c57c62a8aed0d04203c8f88bc9ac93a9e60fb/lemuroid-app/src/main/java/com/swordfish/lemuroid/app/shared/settings/StorageFrameworkPickerLauncher.kt#L24
https://github.com/Swordfish90/Lemuroid/blob/ab4c57c62a8aed0d04203c8f88bc9ac93a9e60fb/retrograde-app-shared/src/main/java/com/swordfish/lemuroid/lib/library/LemuroidLibrary.kt#L48 (whoa! I haven't seen much kotlin before but this is pretty .. interesting)

Might end up with a hacky way for 1.11 and more "proper" methods later.

@unknownbrackets
Copy link
Collaborator

EXTRA_LOCAL_ONLY looks at least somewhat interesting, I didn't realize that exists. That might make the "guess again, idiot" problem much better than I expected (though likely not eliminate it.)

-[Unknown]

hrydgard added a commit that referenced this issue Jan 9, 2021
…a gross hack.

Should help #13827

Not yet using storage framework properly, just stealing the URI.
@hrydgard
Copy link
Owner

hrydgard commented Jan 9, 2021

With #13898 merged, there should now be a working Browse... button that lets you select the SD card if you wish.

Let me know if it works on Android 11!

@nassau-tk
Copy link
Contributor Author

nassau-tk commented Jan 9, 2021

@hrydgard

No,l can't select the SD...

Screenshot_20210109-214114_PPSSPP

Only Internal memory.
Screenshot_20210109-214124_Files

@hrydgard
Copy link
Owner

hrydgard commented Jan 9, 2021

What happens if you try? Do you see anything in the log?

Something like:

01-09 11:10:48.000 17884 17956 I PPSSPP  : [SYSTEM] Translated 'content://com.android.externalstorage.documents/tree/primary%3A' into '/storage/emulated/0/'
01-09 11:10:48.000 17884 17956 I PPSSPP  : [SYSTEM] Got folder: '/storage/emulated/0/'

?

@hrydgard
Copy link
Owner

hrydgard commented Jan 9, 2021

Huh, on my Android 10 phone, it looks quite different, I have a choice of the SD card there...

@hrydgard
Copy link
Owner

hrydgard commented Jan 9, 2021

I wonder how your comic viewer is working... It seems to have a custom file browser dialog.

@nassau-tk
Copy link
Contributor Author

nassau-tk commented Jan 9, 2021

oh!!!
sorry!!!
I misstook the tap!!

It can work!!!

Screenshot_20210109-215603_Files

@hrydgard
Copy link
Owner

hrydgard commented Jan 9, 2021

Great! And it works to play games from it?

If so I think we can close this, further work will be part of #11997 .

@nassau-tk
Copy link
Contributor Author

Yes!!!
I can play the game from SD!

You got it!!

@nassau-tk
Copy link
Contributor Author

Thank you every one!!

qurious-pixel added a commit to qurious-pixel/ppsspp that referenced this issue Feb 9, 2021
* add assets to ubuntu build artifact

This enables us to run PPSSPPSDL in the ubuntu artifact zip as normal release. Can be uploaded to the automated ppsspp download pake. After downloading the artiact zip just chmod +x PPSSPPSDL and install libsdl2-dev libgl1-mesa-dev libglu1-mesa-dev. Then everything works fine :)

* Add more error checking in SD storage detection

See hrydgard#13827

* Add 3 games to ForceMax60FPS

* Add game ID for russian version of Tron Evolution

* Prevent access violation when running out of userMemory due to piling up AdhocMatching events.

* Send AdhocMatching Data from within HLE whenever possible instead of through matchingEvent Thread.

* Reducing AdhocMatching events delay to prevent matchingEvents from piling up on Lord of Arcana.

* Try another method for getting SD card storage paths (env vars).

See hrydgard#13827

* Add a fullscreen toggle button to the main screen (Windows-only for now)

* Manually tighten up the layout a bit in the top right corner

* Use the same logic of game setting for main menu full screen, add other system

* Add a file picker (WIP)

* Enable using the folder browser on Android to select SD card through a gross hack.

Should help hrydgard#13827

Not yet using storage framework properly, just stealing the URI.

* Improve some i18n things

- reuse some translations
- move some strings to a more suitable category

I will adapt the lang .ini files accordingly.

* jit: Fix conditional disable flags.

* irjit: Correct flags for SetCtrlVFPUReg.

Fixes hrydgard#13897.  Caused the reg to be optimized out.

* irjit: Fix mtv for INF4.

* Windows: Handle fullscreen message consistently.

This handles it the same way as SDL, etc. so that the new button on the
main screen works again.

* http: Prevent Windows header leak from HTTPClient.

* UI: Cleanup Windows header in MainScreen.cpp.

Better to have this come from System, probably.  It's mainly for Windows
anyway, to alert people their save data isn't permanent.

* FixPGF for Euro Characters.(Balance emphasis)

* GPU: Correct shader gen with weights as floats.

For now, this supports the option.  We should probably just move to
everything being floats, but we already prefer software skinning.

Fixes hrydgard#13903.

* Fix copy/paste typo causing crash getting tempdirs if an env var had no value

* Android: Fix headless and unittest build.

* Build: Validate unittest/headless on Android.

* Android: Add NEON/SSE funcs into Headless/UnitTest.

* irjit: Add disable flag for simplify passes.

* irjit: Update clobber flag on inst swap.

Fixes IR in Persona 3.

* PGF Re-Fixed Euro Characters

* Enable BlockTransferAllowCreateFB for Gradius Collection

* Update Template

* Make sure we don't try to set a negative viewport size.

Should help hrydgard#13921.

* VK: Re-apply the old Adreno driver bug workaround. Fixes hrydgard#13910.

Should likely fix issue hrydgard#13923 too.

* Fix Stuck issue on some games (Dissidia 012, Full Auto 2, etc) when Failed to connect to Adhoc Server (faked success)

* Module: Reverse a single HI16/LO16 pair correctly.

If there is only one imported variable as a HI16/LO16, unloading the
module wasn't properly reversing the link.  See hrydgard#13104.

* Module: Keep HI16/LO16 in a temp state object.

This doesn't need to live any longer than the link or unlink, so let's
just make that abundantly clear.

* Remove re-test each month

* Compat: Note that Gradius requires block transfer.

Of course, there are many more that do, but might as well add since we're
tracking it here.

* Headless: Allow connecting the web debugger.

* Module: Keep the state for each import.

On exports, we iterate modules then imports.
But on imports, we iterate the exports to find the module, so we need to
keep the state around higher up.

* SoftGPU: Fix sprite provoking vertex in fast path.

It was right everywhere else.

* Vulkan: Delete only created swapchain images.

We do other null checks here, same reason.  Create may have failed.

* There's little reason to build at O3, so let's just not. Changing to O2.

See hrydgard#13920 for a breakage report.

* CMake fixes and new --ios-xcode ./b.sh command.

Also enables stencil for the iOS backbuffer. Fixes the GPU test and will doubtlessly
fix problems with running non-buffered (which you shouldn't do anyway though).

Slim alternative to hrydgard#13766 with less risk to buildbots.

* Adds two new tests to GPU driver test screen: Adreno shader logic test and flat shading

The adreno test tests for the bug mentioned in hrydgard#13910.
Very clear repro on Adreno 630, Pocophone F1.

The flat shading test is an untested attempt at a repro of

(will test that tomomorrow).

* Add texture to flat shaded test.

* Compat: Note that 3 LEGO games those are require Buffered rendering

* More GPU test improvements

* Fix the flat test. Unfortunately doesn't repro the bug :(

* GL FB readback: Only use "inout" if we actually want to read from the fb.

* Headless: Allow screenshot compare without backend.

This makes not just graphics-enabled tests work in headless on softgpu,
but also screenshot comparison ones.

* Headless: Read expected file as a FileLoader.

This makes it possible to run tests from network locations.

* Headless: Allow PNGs and http:// for screenshot.

* Headless: Disable http disk cache.

* Headless: Simplify executing a ppdmp via headless.

* Headless: Default to PNG for ppdmp tests.

* GPU: Fix safe size checks when rect offscreen.

* Vulkan: Prevent scaling shader leak.

No need to recreate if they haven't changed.

* Compat: Enable reinterpret for Kingdom Hearts.

See hrydgard#11223.  Should enable it for everything at some point.

* Debugger: Add API to trigger buttons.

* Debugger: Broadcast ctrl input events.

This can be useful to trigger debugging functionality on button press.

* Debugger: Include all press states for convenience.

In case of a multi-button shortcut, which might be common for debugging.

* Kernel: Adjust sceKernelGetThreadExitStatus timing.

See hrydgard#13703.

* PGF Fixed Bold & Italic property and camouflage the Font name.

* Oops! I misstook uploading jpn0.pgf.

* Resample all mp3

Fix hrydgard#5213

* Fix Russian (Cyrillic alphabet) on jpn0.pgf.

* Some marks position fixed on jpn0.pgf

* build fix

* PPGe: Scale down by worst of window/internal res.

See hrydgard#13958.

* compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See hrydgard#13957

* Plugins: Enable by default.

* Resample only in 32000Hz

* Fix Greek characters & Roman numbers & all balance on jpn0.pgf

* Do PtpConnect internally during PtpOpen, since some games (ie. The Warriors) seems to do PtpSend immediately after PtpOpen without trying to PtpConnect first.

* Fix returned error code on PtpSend and PtpRecv when socket is not connected yet.

* OpenGL fragment shader gen: Fix precision inconsistency for v_color0/1.

Probably won't fix anything, just want this in for, well, consistency.

Noticed it debugging the iOS flat shading issues, but doesn't fix that.

* Fix duplicate shader version in the flat shader test

Unbreaks the flat shading test on Adreno (ended up in trying to link a
 #version 300 and a #version 320 shader together which it didn't like)

* Io: Don't allow async close while async busy.

See hrydgard#6582.

* GE: Better naming of render passes for color reinterpret

* GPU: Respect stencil write mask for 5551 buffers.

If the mask is 0x7F on 5551, that's equivalent to allowing the clear
entirely.  See hrydgard#13391.

* D3D9: Don't allow separate alpha clears.

Doesn't seem like the color mask applies to clears.

* Reporting: Expose CRC queue methods for other uses.

This way UI can expose the CRC if needed.

* Don't allow ForcedFirstConnect hack when using PtpConnect within PtpOpen to prevent returning result from blocking PtpConnect instead of result of PtpOpen.

* sceMp3Init:Add layerBits and versionBits information

* Add header information

* GLES: Remove direct khrplatform.h header include.

Shouldn't be needed anymore, was a hack for Nokia.  See hrydgard#13978.

* Mp3: Correct error handling for newer sdk versions.

The 6.xx behavior might be important if a game relies on it to add data.

* Mp3: Allow decode without pcm pointer.

Just like other audio decoding, you're allowed to skip audio.
Also prevents a crash if the mp3 is not yet inited.

* Add back XCode TARGETED_DEVICE_FAMILY config line

xcode warns that the value is deprecated or something, but maybe it still does something. Appears iPad support is broken right now.

* Mp3: Always keep sample rate from original mp3.

Our codec context is updated with the source sample rate, so this makes us
not resample at all.

Converting to stereo still seems correct.

* Updated GameMode initial data sync, in case remote players aren't listening yet when sending initial data (fix Pocket Pool)

* Mp3: Correct logging for init.

* Remove duplicates from ThreadManForKernel

* Vulkan: Add MMPX upscaling texture shader.

See https://casual-effects.com/research/McGuire2021PixelArt/index.html

* Vulkan: Allow tex shaders to specify a max scale.

* Specify MaxScale=2 for the new MMPX texture scaling shader

* Fix Greek characters ltn0~7.pgf

* gitlab ci change requested by m4xw

* FindFFmpeg: Fix a few issues

1. postproc now looks for postprocess.h (there is no postproc.h header).
2. pkg-config fallback condition now works (find_path/library set the
   variable to ${var}-NOTFOUND but it was checking for an empty string).

* (.gitlab-ci.yml) Add windows-x64 target

* Mpeg:Only allow firmware >= 3 for warmup

Fix hrydgard#13996

* Try to build fix on non-windows

* CMake: Add USE_UBSAN

* CMake: Rename USE_ADDRESS_SANITIZER to USE_ASAN

For consistency with USE_UBSAN

* CMake: Fix UBSAN link error

* Fix Russian characters ltn8~15.pgf

* Fix alignment issues in ISOFileSystem

Fixes hrydgard#14002

* jit: Make branch shift more obvious.

And also not technically undefined behavior.

* Fix connection issue on Dynasty Warriors (Shin Sangoku Musou) games when playing with more than 2 players.

* Minimize the Adreno shader compiler bug repro test

* Fix left shift of negative value in MIPSCodeUtils

Fixes a benign UBSAN error to improve the signal-to-noise ratio of
UBSAN errors.

Fixes hrydgard#14015

* x64Emitter: Fix unaligned store UBSAN errors

This compiles to the same assembly as before even without optimizations and avoids UB.

https://godbolt.org/z/4G5edM

While the UB here is benign, this improves signal-to-noise ratio of UBSAN errors.

Fixes hrydgard#14005

* Fix logging flags

1. The logging flags were being ignored (-v, -d)
2. Adds a `--loglevel` argument. Useful when using the debug build for
   ASAN/UBSAN to hide extremely noisy debug messages.

* Attempt to fix hrydgard#14022

* Fix Apple gpu detection

* Core: Correct branch analysis truncation.

* jit: Be very clear on sign extension.

* Only force the log level if it set via an argv

Follow-up to hrydgard#14019

* Io: Consistently use LE values of ISO entries.

Better to be consistent across big endian and little endian, in case
something was mastered wrong.

* Vulkan: Fix image layout issues after compute shader uploads.

We're already in GENERAL so probably not worth to transfer to DST just
to do even more transfers due to the silliness of GenerateMip.

I'm planning to rework the whole texture upload thing to be far more
optimal with some kind of TextureUploadManager

Fixes hrydgard#13987

* Mpeg:Only allow firmware >= 6 for warmup

Fix blue screen in hrydgard#13146

* Ge: Improve some logging and memchecks.

Explicitly trigger memchecks on readback.

* Ge: Restore saved context when ending a list.

Otherwise another list queued by a Head push could use the wrong context
data.  See hrydgard#13346.

* Framedump test screen. Downloads a list of framedumps.

* Add a new command in developer tools to list and load framedumps from framedump.ppsspp.org/repro/

Useful to make it easy to test GPU driver bugs etc, without having to
use real games or copying files around.

* Add checkbox to enable/disable driver bug workarounds.

* Fix minor rendering glitch in PPSSPP's menus on iOS

* Have the flat shading workaround obey the driver workarounds checkbox

* Loaders: Prevent errors on 0 byte reads.

Was happening when opening an http:// GE frame dump.

* Core: Maintain frame dump disc ID in SFO.

This way we won't generate a fake one later and use it for anything else.

* vertexjit: Correct saved registers on x64.

* Core: Assert debug stats remain positive.

* vertexjit: Only save extra regs on x64.

* Updated PdpStat and PtpStat

* Update README.md for 1.11

* Address initial feedback by iota97

* List fixed games. Thanks sum2012

* More from unknown and sum2012

* More stuff in README.md

* (.gitlab-ci.yml) Add linux-i686 and windows-i686 targets (+ prevent creation of 'null' file when building Windows libretro cores)

* Fix possible lock issue during AdhocMatchingStart

* Updated PdpStat to prevent rcv_sb_cc from exceeding the buffer size arg (since we use larger buffer size to prevent micro stutters or disconnection issue due to too many dropped packets with small buffer size).
TODO: May need to improve it to be able to calculate the correct size if there are multiple datagram messages

* UI: Correct developer tools test run.

* Make a couple of UI animations refresh rate independent

* Core: Reset state properly on CPU init failure.

* Windows: Prevent crash on null symbol map.

Happened during a double error scenario, but might as well check.

* We don't really need to allocate a buffer when using MSG_TRUNC on recvfrom

* Minor renaming

* Moving hleDelayResult from internal function of SetSocketAlert to prevent waking up HLE-blocked thread

* Fix possible race condition issue.

* Fix jpn0.pgf characters position.

* Debugger: Populate funcs if disassembly open early.

* PPGe: Fallback to atlas text on alloc fail.

* PPGe: Clear text allocations on shutdown.

* Updated some Logs to help finding the location of the call to debug.

* Removing hleDelayResult from internal adhoc functions to prevent waking up thread that supposed to be blocked by the outer HLE.

* Run the link script

* Run the link script, fixups

* Update lang,pspautotests submodules

* Do the title screen animation by accumulator instead, to avoid a long first frame breaking it.

* Update version to 1.11

* PPGe: Decimate text images properly.

Co-authored-by: kaiomatico <kai.wienberg@gmail.com>
Co-authored-by: Henrik Rydgård <hrydgard@gmail.com>
Co-authored-by: Panderner <37503397+Panderner@users.noreply.github.com>
Co-authored-by: ANR2ME <anr2000@gmail.com>
Co-authored-by: iota97 <giovi.cocco@gmail.com>
Co-authored-by: vnctdj <3978690+vnctdj@users.noreply.github.com>
Co-authored-by: Unknown W. Brackets <checkins@unknownbrackets.org>
Co-authored-by: nassau-tk <dt.kadoike@gmail.com>
Co-authored-by: sum2012 <consignpo@gmail.com>
Co-authored-by: AdamN <ANR2ME@users.noreply.github.com>
Co-authored-by: Florin9doi <Florin9doi@users.noreply.github.com>
Co-authored-by: Gleb Mazovetskiy <glex.spb@gmail.com>
Co-authored-by: jdgleaver <james@leaver.myzen.co.uk>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants