mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-02 06:40:42 -07:00
popn: hook DisplayConfigGetDeviceInfo to allow for any GPU port to be used for monitor, get past I/O check (#622)
## Link to GitHub Issue or related Pull Request, if one exists #618 ## Description of change The game expects the main display to be *not* HDMI, and at port 2. Hooking DisplayConfigGetDeviceInfo allows us to boot the game on any monitor. Add basic I/O hook. It gets stuck in `USB I/O Checking...` for a couple minutes but it'll eventually skip and boot to title screen. ## Testing ugh.
This commit is contained in:
@@ -409,7 +409,26 @@ namespace sysutils {
|
||||
|
||||
std::vector<MonitorEntry> result;
|
||||
for (const auto& path : paths) {
|
||||
MonitorEntry entry;
|
||||
MonitorEntry entry = {};
|
||||
entry.adapter_id_LowPart = path.targetInfo.adapterId.LowPart;
|
||||
entry.adapter_id_HighPart = path.targetInfo.adapterId.HighPart;
|
||||
entry.id = path.targetInfo.id;
|
||||
|
||||
// primary monitor?
|
||||
for (const auto& mode : modes) {
|
||||
if (mode.infoType != DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mode.adapterId.HighPart == path.sourceInfo.adapterId.HighPart &&
|
||||
mode.adapterId.LowPart == path.sourceInfo.adapterId.LowPart &&
|
||||
mode.id == path.sourceInfo.id) {
|
||||
if (mode.sourceMode.position.x == 0 && mode.sourceMode.position.y == 0) {
|
||||
entry.is_primary = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// device ID (\\.\DISPLAYn)
|
||||
DISPLAYCONFIG_SOURCE_DEVICE_NAME source_name = {};
|
||||
|
||||
Reference in New Issue
Block a user