mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-17 00:39:17 +01:00
Fix a crash caused by some third party controllers
This requires libogc to be compiled from source because the release builds don't include the fix yet.
This commit is contained in:
parent
3bf1f02468
commit
071022d3aa
120
.github/workflows/main.yml
vendored
120
.github/workflows/main.yml
vendored
@ -11,22 +11,20 @@ on:
|
|||||||
- 'Languages/**'
|
- 'Languages/**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
download-build-tools:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- name: Restore cache
|
||||||
|
|
||||||
- name: Cache
|
|
||||||
id: cache-1
|
id: cache-1
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v2
|
||||||
with:
|
with:
|
||||||
path: cache
|
path: cache
|
||||||
key: ${{ runner.os }}-cache-1
|
key: ${{ runner.os }}-cache-1
|
||||||
|
|
||||||
- name: Download devkitPPC r38, libogc 2.1.0, bin2s and elf2dol
|
- name: Download devkitPPC r38, libogc 2.1.0 and required tools
|
||||||
if: steps.cache-1.outputs.cache-hit != 'true'
|
if: steps.cache-1.outputs.cache-hit != 'true'
|
||||||
# general-tools is needed for bin2s and gamecube-tools is needed for elf2dol
|
# general-tools is needed for bin2s and gamecube-tools is needed for elf2dol & gcdsptool
|
||||||
run: |
|
run: |
|
||||||
mkdir cache && cd cache
|
mkdir cache && cd cache
|
||||||
wget "https://wii.leseratte10.de/devkitPro/file.php/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz"
|
wget "https://wii.leseratte10.de/devkitPro/file.php/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz"
|
||||||
@ -36,39 +34,54 @@ jobs:
|
|||||||
wget "https://wii.leseratte10.de/devkitPro/file.php/gamecube-tools-1.0.2-1-linux.pkg.tar.xz"
|
wget "https://wii.leseratte10.de/devkitPro/file.php/gamecube-tools-1.0.2-1-linux.pkg.tar.xz"
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: Verify checksums for the downloaded files
|
- name: Verify checksums
|
||||||
run: |
|
run: |
|
||||||
sha256sum -c <<EOF
|
sha256sum -c <<EOF
|
||||||
b8775c66e7500182a5f93335140d575a65ca2beb7110dfba16bf1eaf1d6fe13a cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz
|
b8775c66e7500182a5f93335140d575a65ca2beb7110dfba16bf1eaf1d6fe13a cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz
|
||||||
5cbb617bee3d53a6857427af9168694e21095ae3223819df62aaeaf52750d772 cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz
|
5cbb617bee3d53a6857427af9168694e21095ae3223819df62aaeaf52750d772 cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz
|
||||||
|
220871bfc45abcab612e020a00e6c8f19f51eb1be2d3c7d23f42cb10497ba786 cache/libogc-2.1.0-1-any.pkg.tar.xz
|
||||||
6ac68676e33fd53d8b716ea6c7247b0e465eff7f7a3cbb0e3093310615a48863 cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz
|
6ac68676e33fd53d8b716ea6c7247b0e465eff7f7a3cbb0e3093310615a48863 cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz
|
||||||
69edef800f01ff66dc5ed4d173cb3ac07e5336fbb926369eaa3c38163775c350 cache/general-tools-1.2.0-1-linux.pkg.tar.xz
|
69edef800f01ff66dc5ed4d173cb3ac07e5336fbb926369eaa3c38163775c350 cache/general-tools-1.2.0-1-linux.pkg.tar.xz
|
||||||
220871bfc45abcab612e020a00e6c8f19f51eb1be2d3c7d23f42cb10497ba786 cache/libogc-2.1.0-1-any.pkg.tar.xz
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
needs: download-build-tools
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Extract everything
|
- name: Restore cache
|
||||||
# general-tools is needed for bin2s and gamecube-tools is needed for elf2dol
|
id: cache-1
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: cache
|
||||||
|
key: ${{ runner.os }}-cache-1
|
||||||
|
|
||||||
|
- name: Check cache
|
||||||
|
if: steps.cache-1.outputs.cache-hit != 'true'
|
||||||
|
run: exit 1
|
||||||
|
|
||||||
|
- name: Extract downloaded files
|
||||||
run: |
|
run: |
|
||||||
tar -xf cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz opt/devkitpro/devkitPPC --strip-components=1
|
tar -xf cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz --strip-components=1
|
||||||
tar -xf cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz opt/devkitpro/devkitPPC --strip-components=1
|
tar -xf cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz --strip-components=1
|
||||||
tar -xf cache/libogc-2.1.0-1-any.pkg.tar.xz opt/devkitpro/libogc --strip-components=1
|
tar -xf cache/libogc-2.1.0-1-any.pkg.tar.xz --strip-components=1
|
||||||
tar -xf cache/general-tools-1.2.0-1-linux.pkg.tar.xz opt/devkitpro/tools/bin/bin2s --strip-components=4
|
tar -xf cache/general-tools-1.2.0-1-linux.pkg.tar.xz --strip-components=1
|
||||||
sudo cp bin2s /usr/local/bin/bin2s
|
tar -xf cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz --strip-components=1
|
||||||
tar -xf cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz opt/devkitpro/tools/bin/elf2dol --strip-components=4
|
|
||||||
sudo cp elf2dol /usr/local/bin/elf2dol
|
|
||||||
|
|
||||||
- name: Compile
|
- name: Compile USB Loader GX
|
||||||
# version would be 0 unless subversion is removed
|
# version would be 0 unless subversion is removed
|
||||||
run: sudo apt-get -qq remove subversion > /dev/null; PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make
|
run: |
|
||||||
|
sudo apt-get -qq remove subversion > /dev/null
|
||||||
|
PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
id: pack
|
id: pack
|
||||||
run: |
|
run: |
|
||||||
mkdir -p upload/apps/usbloader_gx/
|
mkdir -p upload/apps/usbloader_gx
|
||||||
cp boot.dol upload/apps/usbloader_gx/
|
cp boot.dol upload/apps/usbloader_gx
|
||||||
cp HBC/icon.png upload/apps/usbloader_gx/
|
cp HBC/icon.png upload/apps/usbloader_gx
|
||||||
cp HBC/meta.xml upload/apps/usbloader_gx/
|
cp HBC/meta.xml upload/apps/usbloader_gx
|
||||||
echo "::set-output name=sha::$(echo ${GITHUB_SHA} | head -c 7)"
|
echo "::set-output name=sha::$(echo ${GITHUB_SHA} | head -c 7)"
|
||||||
|
|
||||||
- name: Upload binary
|
- name: Upload binary
|
||||||
@ -82,3 +95,64 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: usbloadergx_${{ steps.pack.outputs.sha }}_debug
|
name: usbloadergx_${{ steps.pack.outputs.sha }}_debug
|
||||||
path: boot.elf
|
path: boot.elf
|
||||||
|
|
||||||
|
build-latest-libogc:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
needs: download-build-tools
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Restore cache
|
||||||
|
id: cache-1
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: cache
|
||||||
|
key: ${{ runner.os }}-cache-1
|
||||||
|
|
||||||
|
- name: Check cache
|
||||||
|
if: steps.cache-1.outputs.cache-hit != 'true'
|
||||||
|
run: exit 1
|
||||||
|
|
||||||
|
- name: Extract downloaded files
|
||||||
|
run: |
|
||||||
|
tar -xf cache/devkitPPC-r38-1-linux_x86_64.pkg.tar.xz --strip-components=1
|
||||||
|
tar -xf cache/devkitppc-rules-1.1.0-1-any.pkg.tar.xz --strip-components=1
|
||||||
|
tar -xf cache/general-tools-1.2.0-1-linux.pkg.tar.xz --strip-components=1
|
||||||
|
tar -xf cache/gamecube-tools-1.0.2-1-linux.pkg.tar.xz --strip-components=1
|
||||||
|
|
||||||
|
- name: Checkout libogc
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: devkitPro/libogc
|
||||||
|
path: libogc
|
||||||
|
|
||||||
|
- name: Compile and install libogc
|
||||||
|
run: PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make install -C libogc
|
||||||
|
|
||||||
|
- name: Compile USB Loader GX
|
||||||
|
# version would be 0 unless subversion is removed
|
||||||
|
run: |
|
||||||
|
rm -r libogc
|
||||||
|
sudo apt-get -qq remove subversion > /dev/null
|
||||||
|
PATH=$(pwd)/devkitpro/devkitPPC/bin:$PATH DEVKITPPC=$(pwd)/devkitpro/devkitPPC DEVKITPRO=$(pwd)/devkitpro make
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
id: pack
|
||||||
|
run: |
|
||||||
|
mkdir -p upload/apps/usbloader_gx
|
||||||
|
cp boot.dol upload/apps/usbloader_gx
|
||||||
|
cp HBC/icon.png upload/apps/usbloader_gx
|
||||||
|
cp HBC/meta.xml upload/apps/usbloader_gx
|
||||||
|
echo "::set-output name=sha::$(echo ${GITHUB_SHA} | head -c 7)"
|
||||||
|
|
||||||
|
- name: Upload binary
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: usbloadergx_libogc_${{ steps.pack.outputs.sha }}
|
||||||
|
path: upload
|
||||||
|
|
||||||
|
- name: Upload debug binary
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: usbloadergx_libogc_${{ steps.pack.outputs.sha }}_debug
|
||||||
|
path: boot.elf
|
||||||
|
@ -301,16 +301,17 @@ int StartUpProcess::Execute()
|
|||||||
// Re-Mount devices
|
// Re-Mount devices
|
||||||
SetTextf("Reinitializing devices\n");
|
SetTextf("Reinitializing devices\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Start pads again
|
||||||
|
SetupPads();
|
||||||
gprintf("Current IOS: %i - have AHB access: %s\n", IOS_GetVersion(), AHBPROT_DISABLED ? "yes" : "no");
|
gprintf("Current IOS: %i - have AHB access: %s\n", IOS_GetVersion(), AHBPROT_DISABLED ? "yes" : "no");
|
||||||
|
|
||||||
DeviceHandler::Instance()->MountSD();
|
DeviceHandler::Instance()->MountSD();
|
||||||
if(Settings.USBAutoMount == ON)
|
if(Settings.USBAutoMount == ON)
|
||||||
{
|
{
|
||||||
USBSpinUp();
|
USBSpinUp();
|
||||||
DeviceHandler::Instance()->MountAllUSB(false);
|
DeviceHandler::Instance()->MountAllUSB(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start pads again
|
|
||||||
SetupPads();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!IosLoader::IsHermesIOS() && !IosLoader::IsD2X())
|
if(!IosLoader::IsHermesIOS() && !IosLoader::IsD2X())
|
||||||
|
Loading…
Reference in New Issue
Block a user