Commit Graph

5975 Commits

Author SHA1 Message Date
illusion98 11d48f5dff Merge remote-tracking branch 'upstream/master' into canary-old-update 2020-02-07 05:47:35 -05:00
Triang3l 85fb028faa [D3D12] Cleaner DXBC emission code, port ROV prologue to it 2020-02-07 09:42:43 +03:00
illusion98 4ddfffd009 Merge remote-tracking branch 'upstream/master' into canary-old-update 2020-02-06 06:03:48 -05:00
illusion98 46f3f95cf4 fix fps counter transparency 2020-02-06 04:21:01 -05:00
Cancerous c994b1d1e1 [UI] - remove some useless code 2020-02-06 04:21:01 -05:00
Cancerous a38dc43a73 [D3D12] Adjust mip size in certain cases to fix techland games 2020-02-06 04:21:01 -05:00
Margen67 9ba48c8176 [CI] Moar minor changes
Exclude subdirectories of docs and .github;
 This fixes GitHub Actions triggering Azure.
Remove unneeded cd commands.

GitHub Actions:
 Use shorter version numbers.
2020-02-06 04:21:01 -05:00
Cancerous 6923e5e898 [D3D12] Fix some textures in Nascar games 2020-02-06 04:21:01 -05:00
Prism Tutaj 1cce25d5e7 [CPU] Change thunk layout and fix Linux thunk misalignment 2020-02-05 09:49:29 -06:00
Joel Linn f0723c211b [UI] Fix frame leak on context loss. 2020-02-05 09:48:31 -06:00
Joel Linn 2c99228041 [UI] Use ticks as frame time instead of file time.
File time is not as accurate as its resolution suggests.
This results in a zero time delta between frames for high fps.
2020-02-05 09:48:31 -06:00
illusion98 c3f3bd8701 [UI] Add F2 Hotkey to open current git commit in browser 2020-02-05 09:46:30 -06:00
Cancerous edad2135db [HID] SDL Input PR merge fixes 2020-02-04 06:35:44 -05:00
illusion98 b8549002a6 Merge remote-tracking branch 'JoelLinn/feature-hid-sdl' into canary-old-update 2020-02-04 06:32:30 -05:00
illusion98 a7f6fd6ef6 Add F2 Hotkey to open current commit ID URL 2020-02-04 06:31:58 -05:00
Triang3l 211e30d791 [GPU] Remove repeated word in a comment 2020-02-02 21:07:51 +03:00
Triang3l 4061445087 [GPU] Remove unused kConstantInt/Bool shader operands 2020-02-02 21:05:00 +03:00
illusion98 910a21f424 Merge remote-tracking branch 'JoelLinn/feature-apu-sdl' into canary-old-update (PR 1498) 2020-02-01 03:36:32 -05:00
illusion98 91a629d16a Merge remote-tracking branch 'upstream/master' into canary-old-update 2020-01-29 06:40:20 -05:00
Margen67 4057ae5028 [GitHub Actions] Rename to CI, formatting
Also don't use master version of Actions, and make asset_path look nicer.
2020-01-29 06:39:49 -05:00
Cancerous 2772d8a7f5 [UI] - less impact to limiting frames 2020-01-29 06:39:49 -05:00
Cancerous d6a650a4f9 [CPU] - skip some operations that cost precious time in mutex lock/unlock that are called frequently for some gains when not debugging 2020-01-29 06:39:48 -05:00
Margen67 967d93f780 [CI] Print CPU 2020-01-29 06:39:48 -05:00
Margen67 46aa526618 [README.md] Formatting, add Azure badge back, fix comments 2020-01-29 06:39:48 -05:00
Margen67 a6d6f1ba52 [Azure Pipelines] Remove AVX512, build for all branches (again) 2020-01-29 06:39:48 -05:00
illusion98 705aa4a856 Restore Appveyor badge 2020-01-29 06:39:48 -05:00
Cancerous 90012608ce [UI] add crude fps limiter for games that are too fast 2020-01-29 06:39:48 -05:00
Cancerous fb5cf78e82 just boring formatting consistancy 2020-01-29 06:39:48 -05:00
Margen67 de7f025db3 [GitHub Actions] Disable fail-fast 2020-01-29 06:39:48 -05:00
Silent 38bf6c8822 [Kernel] Make XexUnloadImage fully release the image
Previously XexUnloadImage did not cleanup the image fully,
and if XexLoadImage was to be called again on the same module,
it was not initialized fully, leading to a crash when using it.
2020-01-27 06:35:10 -06:00
Silent 9d48e904da [Kernel] (Partially) fix module refcounting
.xex module handles were retained twice in several places,
possibly causing them to leak.
More placed may have to be fixed too.
2020-01-27 06:35:10 -06:00
Silent f278e30d21 [Kernel] Fix SHA1 and SHA256 state endianness
Fixes malfunctioning SHA256 hash,
corrupting its state between Update and Finish calls.
2020-01-27 06:33:39 -06:00
chss95cs@gmail.com 1fb575fbe4 Fixed shit precision in RECIP, made multiplication codegen less garbage 2020-01-25 03:38:52 -05:00
chss95cs@gmail.com 41bdfa4b7b Juicy optimization goodness
Search constant table for XMM/float/double data for LoadConstantXmm
Added several fast paths for bitwise and in x64_sequences

Optimized codegen for add-carry
2020-01-23 19:14:02 -05:00
illusion98 90ce6c2910 automatic aspect ratio change
aspect ratio will now change if internal resolution is set to anything 4:3 (i.e 640x480, 1024x768, 1600x1200.. etc.)
2020-01-23 06:36:31 -05:00
illusion98 1d1c54ca6e Replace main xenia redirects with canary 2020-01-21 04:29:53 -05:00
emoose 183ff64551 [App] Move NullDevice mounting code back into emulator.cc
Fixes Xenia not being able to locate unpacked XEXs..
Ideally this should be inside xenia_main.cc though, need to figure out some way to get it working there.
2020-01-20 19:30:29 -05:00
emoose 55f98d3770 [VFS] Clear out cache partition when game writes FATX header
Writing FATX header likely means the game is trying to format it, so we'll help it along by deleting the contents too.
HostPathDevice actually loads in all the file entries when its first inited though, so we also have to re-init the HostPathDevice for the cache partition too :/
2020-01-20 19:30:29 -05:00
emoose 90c0f72378 [Kernel] Small merge fix for stfs-headers-new 2020-01-20 19:30:29 -05:00
emoose b7c51821b0 [VFS] Skip reading from STFS hash table if file has contiguous flag.
If this flag is set there shouldn't be any need to read from the hash tables, we can just read from each subsequent block number.
We'll only trust this flag if the package is read-only (LIVE/PIRS) though, in CON packages we'll always read from hash tables.
2020-01-20 19:30:29 -05:00
emoose c0ffadb56e [VFS] Check hash of STFS hash tables (& cache them) when reading, fallback if invalid.
This'll try salvaging any corrupt packages loaded in: normally we find the block numbers belonging to a file by reading them from the hash table.
Seems there's some packages out there (eg. Mass Effect 2 demo) that have corrupt hash tables though, so using the block numbers from there just results in a crash.
By verifying the hash of each hash table we can detect if this is the case, and if so we can try just using current_block_number + 1 instead of use any invalid block number.
(we also let the user know about the corrupt table in the log file)

In LIVE/PIRS packages this should hopefully let us get the correct data, since files are usually stored inside consecutive blocks in those package types.
It's doubtful that it'd help much with CON ones though, since those are pretty much a living filesystem.
The older & more used a CON package is, the more likely blocks will be fragmented throughout the file...
Reading from the hash table is the only way to properly read data from these, using current_block + 1 likely won't help much (we'd be going wxPirs-mode, in a way :P)

CON packages do have something that might help with this though: redundant hash blocks, where each hash table is actually made up of two blocks.
Maybe in future we can find a way to automatically use the secondary block whenever the primary one is invalid.
2020-01-20 19:30:28 -05:00
emoose 930f348650 [VFS] Fix StfsContainerDevice::total_allocation_units() 2020-01-20 19:30:28 -05:00
emoose d1c685afb3 [XAM] Fix Halo 3 aborting save load after XamShowDeviceSelectorUI call
Should let Halo 3 savegames work now (Resume Solo Game...)

This changes XamShowDeviceSelectorUI code to pretty much the same code as xenia-master, with some param checks added from XAM.
Looks like it was 0xB notification which made Halo 3 abort (looks like thats for when storage devices are added/removed)
I guess Halo doesn't like to see that notify just after it was told the device it could make use of?

I reverted the function to master since I don't really think the threading stuff is needed any more.
AFAIK the threads just turned out to be a band-aid fix for the issue in https://github.com/xenia-project/xenia/pull/1417, where games could only ever see a single notification for a given ID.
(Since we'd send the first notify in one thread, then wait a little while before sending in another thread, that'd gave it enough time to see both notifys - but now with the fix from that PR this band-aid isn't needed)
If there's actually any regressions from removing the threading code we can easily put it back in (I'd be really interested in any games that might require this kind of thing too)

The way these functions are handled (and really everything that uses XOVERLAPPED) isn't really correct tho, since they'll cause blocking in the caller thread while it does the work which the actual XAM impls don't do AFAIK.
There probably should be a seperate thread that handles all that, completing the overlapped etc, but I really don't think the way I did it with this band-aid fix was the best way for it...
2020-01-20 19:30:28 -05:00
emoose 58605ba04a [XAM] Use correct path for STFS headers 2020-01-20 19:30:28 -05:00
emoose c3551636e1 [VFS] Add StfsHashEntry struct to view hash entry flags in more detail
+ small adds to StfsHeader
2020-01-20 19:30:28 -05:00
emoose 7eb5fa230a [VFS] Fix sketchy ReadMagic function...
Haven't been able to test yet though - hope it's reading in the correct endian!
2020-01-20 19:30:28 -05:00
emoose 79081ca272 [Kernel/VFS] Add maximum size for thumbnails read from headers 2020-01-20 19:30:28 -05:00
emoose 7bf3d257ef [Kernel] Support XCONTENTFLAG flags inside CreateContent 2020-01-20 19:30:28 -05:00
emoose 5321bb37d5 [Kernel/VFS] Write more fields in STFS headers when creating 2020-01-20 19:30:27 -05:00
emoose 58a97950e2 [Kernel] Use user_language value as the slot to retrieve STFS strings from 2020-01-20 19:30:27 -05:00