Commit Graph

7326 Commits

Author SHA1 Message Date
Margen67 33743a435a New logo 2023-07-28 02:45:55 -07:00
JeBobs ef91193a70 updated disclaimer, archive detection, clean up flags
No more beeps, no more persistent warnings, no more insults, just a single silent disclaimer that also helps the user get started using games from their console.

Updated the archived format detection to add tar/gz, and updated the box to state that xenia does not support running archived games.
2023-07-27 23:07:26 +02:00
illusion0001 2ab2a65ae1 Remove anti piracy message 2023-07-27 11:37:35 -05:00
illusion0001 65672243b2 Update .gitmodules to `xenia-canary` 2023-07-27 11:14:30 -05:00
chrisps d9c31d7cfc
Merge pull request #184 from illusion0001/bepp
Remove beep
2023-07-26 19:17:26 -04:00
illusion0001 33e8c8e1ff
Update emulator.cc 2023-07-26 18:10:20 -05:00
illusion0001 616717b31e
Remove beeps 2023-07-26 18:09:17 -05:00
chrisps f304ef5357
Merge pull request #183 from chrisps/gentlebeep
Gentle Beep
2023-07-26 17:52:51 -04:00
chris 8985abfcc9 Lowered the frequency of the Beeps down to 60hz, at higher volumes it could be downright painful.
Open to "how to rip games" section of quickstart, skipping install which is obviously completed
2023-07-26 17:46:18 -04:00
Margen67 eaa5d61c0c
Delete .appveyor.yml 2023-07-25 00:16:24 -07:00
Margen67 a10c04d948
Delete .azure-pipelines.yml 2023-07-24 13:59:14 -07:00
chrisps e54262b710
Merge pull request #180 from chrisps/iodevices_and_deterrents
Misc kernel changes, deterrents
2023-07-23 15:00:22 -04:00
chris afef35c1c0 Implement RtlRandom (which despite its name is located in Xam, not xboxkrnl, which is why its not in xboxkrnl_rtl)
Stub XamVoiceSubmitPacket
Stubs for __CAP_Start_Profiling/End_Profiling/Enter_Function/Exit_Function
add a note about io_status_block in NtDeviceIoControlFile, change the param's type
move the X_IOCTL_ constants from NtDeviceIoControlFile's body into xbox.h
add X_STATUS_INVALID_IMAGE_FORMAT to xbox.h
Implement XexLoadImageHeaders
Much more correct version of IoCreateDevice, properly initializes/allocates device extension data
Stub version of IoDeleteDevice
Open the quickstart guide in the browser the first time a user opens the emulator
Add some persistent flags that are stored in the registry on windows, not in the config. These are just used to indicate whether one-time tasks have run, like showing the quickstart guide. On non-windows platforms a default value is returned that skips any of these tasks so they don't run every single time.

If the user opens a .iso file, show a warning telling them that we do not condone or support piracy. If the user closes the messagebox within two seconds set a sticky flag that will show them the warning every time instead. Otherwise the warning is never shown again. The Beep function is used to spook them a bit, to hopefully make them less likely to skip the message
If a user opens an archive file, which we do not support, explain to them that they're dumb.

Removed messages intended to "catch" pirates.  If they're out there, we don't want to know about them. A huge chunk of the discourse on our discord is now about piracy. Hopefully these changes will deter them from coming to us for now, but some of these messages may backfire
2023-07-23 14:26:10 -04:00
Margen67 ba936e8038
Don't have controller hotkeys enabled by default 2023-07-21 13:13:40 -07:00
Adrian 7c5b9372e7 [App] Misc App fixes
- Display xex filenames in title selection.
- Fixed fullscreen controller hotkeys executing from a non-UI thread.
- Fixed recent_titles_entry_amount not disabling if set to <= 0.
- Use RunTitle instead of LaunchPath which does more error checking.
2023-07-11 07:53:41 +02:00
Margen67 a620397b35
Exclude wiki from appveyor 2023-07-05 02:45:00 -07:00
Margen67 71b8c2357e Fix broken errors, log ISO path 2023-06-28 00:25:44 -07:00
Gliniak 921923472b [Kernel] Fixed issue in NtResumeThread introduced in previous commit 2023-06-18 09:48:30 +02:00
Adrian 68b2174378 [XAM] Fixed XexGetModuleHandle 2023-06-15 23:23:24 +02:00
Adrian 6a23f1457b [XAM] Plugin Functions 2023-06-15 21:16:31 +02:00
Margen67 28c67b9384 [APU] Add apu_ prefix to max_queued_frames cvar
Also add note about the minimum value.
2023-06-12 07:21:44 -07:00
Gliniak 9333373872 [Thread] Set pointer for: stack_kernel
Based on disassembly and info from console it is used to store initial thread data like:
 - start_address, context, etc.
2023-06-12 07:40:52 +02:00
Gliniak 4053f7bb0e [Kernel] Implemented: ObLookupAnyThreadByThreadId 2023-06-12 07:32:25 +02:00
Margen67 1ae524a8d5
Remove redundant path-ignore path(s) 2023-05-31 13:24:49 -07:00
chrisps ad2d27f6dc
Merge pull request #162 from gmriggs/canary_experimental
fix array index out of bounds crash in EmulatorWindow::ProcessControllerHotkey
2023-05-20 09:55:43 -04:00
gmriggs 85a93029a7 fix array index out of bounds crash in EmulatorWindow::ProcessControllerHotkey 2023-05-19 15:26:19 -04:00
chrisps 1319ff6ead
Merge pull request #159 from chrisps/info_stubs_and_misc_kernel
[Kernel] Implement misc functions, bandaids for 415608D8
2023-05-01 10:13:49 -04:00
chss95cs@gmail.com dcb98683cf Replace most magic numbers from previous commit with named constants, if the constants names are known.
Instead of low 32 bits of ptr, use hash of file path for sector information.
2023-05-01 09:32:33 -04:00
chss95cs@gmail.com b270c59d0c Check for null string passed to Win32Thread::set_name
Move impl of XamAlloc into XamAllocImpl
Implement XamAllocEx
Implement XamIsCurrentTitleDash
Implement XamGetLocaleDateFormat
Implement "stub" of XFileFsDeviceInformation, XFileSectorInformation (log warnings when they're executed so this doesnt get mistaken for an actual implementation)
Added xboxkrnl_memory file
Moved meat of MmAllocatePhysicalMemoryEx into xeMmAllocatePhysicalMemoryEx, exposed its definition via xboxkrnl_memory.

Moved impl of RtlImageHeaderNt into a helper function
Implement RtlImageDirectoryEntryToData
Implement KeSuspendThread
Check for bad handles passed in XOVERLAPPED, fixes crash in 415608D8
2023-04-30 13:22:49 -04:00
Radosław Gliński 37051afcaf
Merge branch 'xenia-project:master' into canary_experimental 2023-04-26 13:34:57 +02:00
Gliniak 94759861c5 [Kernel] Implemented: NtAllocateEncryptedMemory 2023-04-26 08:37:39 +02:00
chrisps 9992d20079
Merge pull request #157 from chrisps/canary_experimental
[VFS] Show fatal error message for disc images with out of bounds entries
2023-04-23 13:19:13 -04:00
chss95cs@gmail.com c86233cc80 Detect corrupted xiso images that have file entries that are out of range and show a fatal error. 2023-04-23 12:52:03 -04:00
chrisps 1b307ae129
Merge pull request #156 from chrisps/misc_krnl4_23_23
[Kernel] Misc fixes, stubs
2023-04-23 11:51:31 -04:00
chss95cs@gmail.com 2fa2f1a78c Add more wrapper functions to ppc_context_t in kernel, want to switch…
… over to referencing state through ppc_context as much as possible, it'll make implementing things like kernel processes much easier in the future

Move forward definitions of kernel types into kernel_fwd.h

Stub implementation of  XamLoaderGetMediaInfoEx
Partially implement XamSetDashContext
implement XamGetDashContext
Stub implementation of XamUserIsUnsafeProgrammingAllowed
Stub implementation of XamUserGetSubscriptionType
Expanded the supported object types for ObReferenceObjectByHandle and wrapped the logic for encoding the type in a constexpr function
ObReferenceObjectByName was taking lpstring_t for first param, but the function actually takes X_ANSI_STRING ptr

NtReleaseMutant actually does not return anything from KeReleaseMutant, it just checks the handle and returns whether it was invalid.

Changed the raise/lower irql functions to just set the irql on the pcr instead of setting it on field of Processor, processor is a shared object and irql is per-thread

Semi-stub implementation of KeGetImagePageTableEntry. I locked at it in the HV and got it so the values are in the same range the HV returns + actually reflect the page & memory range, but i doubt its equal to the values the hv returns on real hw. Used by modern dashboards, don't know for what.
Log error message for ObDereferenceObject w/ null ptr.

Allocate a special fixed page that dashboards reference, currently don't know what the data on that page is supposed to be.
Add current_irql field to X_KPCR
Added Device object member of XObject::Type enum
Added some notes about other gpu registers, found a table of register names and indices in xam
2023-04-23 10:39:52 -04:00
Gliniak caddaa509a [UI] Disable achievements notifications from default to prevent ingame spam
Seems like a lot of titles like to spam this randomly and do not track internally if
achievement was unlocked or not.
2023-04-23 10:55:49 +02:00
Triang3l 8aaa6f1f7d [SPIR-V] Wrap 4-operand ops and 1-3-operand GLSL std calls 2023-04-19 21:44:24 +03:00
Triang3l 19d56001d2 [SPIR-V] Wrap NoContraction operations 2023-04-19 11:53:45 +03:00
Triang3l 78f1d55a36 [SPIR-V] Use Builder createSelectionMerge directly 2023-04-19 11:11:28 +03:00
Triang3l 64d2a80f79 [SPIR-V] Cleanup ALU emulation conditionals 2023-04-19 10:35:09 +03:00
Triang3l eede38ff63 [SPIR-V] Remove more vec2-4 reserve calls 2023-04-18 22:05:02 +03:00
chrisps fecd1e6a40
Merge pull request #153 from chrisps/misc_kernel_additions
Misc kernel additions/changes
2023-04-16 18:49:08 -04:00
chss95cs@gmail.com 1f86dc0454 Check for and allow null critical sections, but log them.
stub XeKeysGetConsoleType
Removed the breakpoints in HandleCppException and RtlRaiseException until we have a real implementation of them. Some apps can continue fine afterwards.
Stub version of HalGetCurrentAVPack
Implement MmIsAddressValid
Implement RtlGetStackLimits
2023-04-16 17:34:46 -04:00
chrisps 779be8283d
Merge pull request #151 from chrisps/extreme_logging_helpers
Command Processor debug logging changes
2023-04-16 13:20:14 -04:00
chss95cs@gmail.com 27c4cef1b5 Added logger flags, for selectively disabling categories of logging (cpu, apu, kernel). Need to make more log messages make use of these flags.
The "close window" keyboard hotkey (Guide-B) now toggles between loglevel -1 and the loglevel set in your config.
Added LoggerBatch class, which accumulates strings into the threads scratch buffer. This is only intended to be used for very high frequency debug logging. if it exhausts the thread buffer, it just silently stops.
Cleaned nearly 8 years of dust off of the pm4 packet disassembler code, now supports all packets that the command processor supports.
Added extremely verbose logging for gpu register writes. This is not compiled in outside of debug builds, requires LogLevel::Debug and log_guest_driven_gpu_register_written_values = true.
Added full logging of all PM4 packets in the cp. This is not compiled in outside of debug builds, requires LogLevel::Debug and disassemble_pm4.
Piggybacked an implementation of guest callstack backtraces using the stackpoints from enable_host_guest_stack_synchronization. If enable_host_guest_stack_synchronization = false, no backtraces can be obtained.
Added log_ringbuffer_kickoff_initiator_bts. when a thread updates the cp's read pointer, it dumps the backtrace of that thread
Changed the names of the gpu registers CALLBACK_ADDRESS and CALLBACK_CONTEXT to the correct names.
Added a note about CP_PROG_COUNTER
Added CP_RB_WPTR to the gpu register table
Added notes about CP_RB_CNTL and CP_RB_RPTR_ADDR. Both aren't necessary for HLE
Changed name of UNKNOWN_0E00 gpu register to TC_CNTL_STATUS. Games only seem to write 1 to it (L2 invalidate)
2023-04-16 12:42:42 -04:00
chrisps 9463f18a65
Merge pull request #150 from chrisps/timestamp_bundle_changes
KeTimestampBundle changes
2023-04-16 10:40:15 -04:00
chss95cs@gmail.com ab21e1e0f0 Several changes for timestamp bundle:
Fully defined the structure.
Single copy of it + single timer across all modules, managing it is now the responsibility of KernelState.

add global_critical_region::PrepareToAcquire, which uses Prefetchw on the global crit. We now know we can use Prefetchw on all cpus that have AVX.
add  KeQueryInterruptTime, which is used by some dashboards.

add threading::NanoSleep
2023-04-16 10:08:01 -04:00
chrisps 12c9135843
Merge branch 'xenia-project:master' into canary_experimental 2023-04-16 09:11:39 -04:00
chrisps 26dc48f695
Merge pull request #149 from chrisps/canary_experimental
reimplement reserved load/store
2023-04-15 17:23:22 -04:00
chss95cs@gmail.com e75e0425e0 forward branch for double-clear condition in reserved store 2023-04-15 16:22:37 -04:00