mirror of
https://github.com/Wack0/entii-for-workcubes.git
synced 2025-12-19 18:06:24 -05:00
Squashed commit of the following:
commit 39e237e99907449bac31254ceca13a2171cbe8ad
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 03:25:37 2025 +0000
delete ci
commit 3bd4ecbbe904d8f39efbeea9b6fc49bc1ff4a98c
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 03:18:53 2025 +0000
bracket
commit ecb3a8d077dc12c1df204366bb2637aaedb8c2ad
Merge: dfb1a56 0fd256c
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 12:16:02 2025 +0900
Merge branch 'Wack0:main' into main
commit dfb1a567d3418550d102e1704a506d5bf70fe9af
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 03:13:02 2025 +0000
component instead of type casting
commit 9a9233bbcb4fa5b60639284a7790e4fb278c9938
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:56:48 2025 +0100
shutup wget
commit e2269523d81aa885b384a4fdb2c1b703790f156c
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:55:10 2025 +0100
add caching
commit 7b7ec9d4441c53ef42e1a9d907734eab23dca54d
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:49:45 2025 +0100
minor spelling mistake
commit 6023e330c073d580af73c605cec8579a6362fc57
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:48:28 2025 +0100
upload fw
commit 15e43e774bc35f0984e8b9766c05857caeaab973
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:45:20 2025 +0100
timer
commit de6347e81be38414109c658787c70a576b930995
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:41:41 2025 +0100
udellay
commit 8f204e6b9ee4a32589b8524e733ad29a5e1e4de2
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:39:08 2025 +0100
ulong
commit f88453f816d1eb2fdbe839bec7cc7e904bde40c7
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:36:18 2025 +0100
diskio and alloc
commit 62a6bc38b626d0a136f217db698534301847ba8e
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:30:55 2025 +0100
usb keyboard header
commit 97b51a1a6550d99fc38ec92740074df0a54e4c99
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:26:32 2025 +0100
strcmp type
commit 849b110b09e42b0178c30ad61d98152a527de95f
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:11:48 2025 +0100
void no bool
commit f0fb86f99589c50df2975534e16d62a0d986fd79
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:08:36 2025 +0100
framebuffer type
commit 72012cac4b9fcde0489dccf848bec886a78f37bf
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:05:08 2025 +0100
more components
commit 28e1766fa155d7c7906ff17c96a657eb6937b077
Author: stonedDiscord <Tukz@gmx.de>
Date: Mon Mar 3 02:00:46 2025 +0100
config component
commit 6d19c6a782adf5c1cb87035dfdc5fb060594c017
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sun Mar 2 14:50:22 2025 +0000
arcfw(usb): when shutting down usb, ensure the device change callback is unlocked on the IOS side
this prevents deadlocks when loading iosusb.sys in NT
commit 04b1726461cb94d96bcaa12e5c051a58c74a4fa6
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sun Mar 2 14:26:37 2025 +0000
arc(usb): if no devices are present after first poll, poll again with timeout
fixes scenarios with usb hubs etc
commit 14533184d7613756da674e038fb961cd9230333b
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:51:09 2025 +0900
speling
commit 43861984bcde644d394b4fa90ac49c00db5e33e6
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:41:46 2025 +0900
rearrange
commit 99064493f4d93900850bb74d18c14a17416b7d7a
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:38:58 2025 +0900
loader artifact
commit da1a9c9628a47d77d8b04416cb1c7ad18f27b781
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:17:00 2025 +0900
build folder
commit e6367d7f314238b4c3fe99585b2e360d36f60be2
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:12:39 2025 +0900
zstd
commit 0202f7d95b2eaf1ec0c2e1bba34a997a4af9db38
Author: stonedDiscord <Tukz@gmx.de>
Date: Sun Mar 2 12:10:31 2025 +0900
libc
commit aac5fdb880108416b63736a1865f93c23f7b9e10
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 23:40:23 2025 +0000
fpexiblk: not using eximap for now, so don't try to finalise it on sad paths
this is probably what's causing bugchecks when no exi device is present
commit 80f88ecfa87aa70934a85ff960fc94d1038a7520
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 22:25:06 2025 +0000
fpgx35: work around GDI bug
GDI ExtFloodFill tries to convert a device specific bitmap to a normal bitmap for speed.
Prior to NT 4 this function has a bug, and so it will delete the device surface, which causes crashes and thus bugcheck (as it brings down csrss).
Do some pattern matching in DrvCopyBits and make it fail if it's being called by this conversion function. This causes a fallback to using the device specific bitmap, which is what is wanted.
Fixes bugcheck under NT 3.51 when running (at least) VC4 IDE.
commit b99ccd4406e5eb06cc00112d8de51af613a8eef7
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 21:36:47 2025 +0000
halartx: don't need this debug print anymore
commit e5e086d1f052f642ed06e3eee4230ec3e435bcab
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 01:10:33 2025 +0000
arcfw: disable return to loader, seems this only works under NT for some reason
commit e78be8a73eaba223f3318c2fea1ac5d27f0a0c42
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 01:00:03 2025 +0000
make: split up compile and asm-preproc
compiler errors are ignored by make when one is piped to the other
commit 4d501b30f20ecb67aed4c1bfa740ed517fb86e79
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 00:38:28 2025 +0000
iossdmc: enforce lock when fatfs calls GetStatus
commit a045ca7879040f3752d55d25bbbce4280068f525
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Sat Mar 1 00:00:38 2025 +0000
headers(ntddk): KeAcquireSpinLockRaiseToDpc was introduced in NT4, use KeAcquireSpinLock function instead
commit 3d0850ad707cbe02886ee7c36d454243cc73eafb
Author: Rairii <2650838+Wack0@users.noreply.github.com>
Date: Fri Feb 28 12:07:27 2025 +0000
gdi: only skip single pixel or line on bounds checks fail, add slight optimisation for copying two consecutive pixels
fixes #5
commit 9050ba4fd3334d815d9bb0e76f5bc19f90722d7e
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 05:19:18 2025 +0100
sleep header
commit 27dff2d63a4640fbdeddeb914148641af24d5ab2
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 05:17:30 2025 +0100
sleep and card
commit b1915a38e4723fcb0f1cc9d400e54ad5ee2b9557
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 05:13:33 2025 +0100
missing header for gecko
commit 78a6c4a0fd493e42c1162e42667d03314ee06e26
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 05:02:19 2025 +0100
usleep header
commit 24fcd1b0b280a408eff08949442b8dbf1d572988
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 04:26:08 2025 +0100
update makefile name in readme
commit 78047b1d3f9970a5dfe70b7fb2fd217802719561
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 04:25:04 2025 +0100
makefile name
commit fc8ab08b117dddec9c07607f870df56de882782a
Author: stonedDiscord <Tukz@gmx.de>
Date: Fri Feb 28 04:14:07 2025 +0100
arc firmware ci
This commit is contained in:
@@ -103,7 +103,7 @@ NT 3.51 RTM and higher. NT 3.51 betas (build 944 and below) will need kernel pat
|
||||
You need devkitPPC. Additionally, a `libgcc.a` compiled for `powerpcle` must be present in `arcfw/gccle`. If you need to find one, it should be present on any Void Linux mirror, the current filename to search for as of 2024-07-12 is `cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps` - decompress it by `zstdcat cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps -o cross-powerpcle-linux-gnu-0.34_1.x86_64.tar`, then pull the file out of the tarball: `usr/lib/gcc/powerpcle-linux-gnu/10.2/libgcc.a`.
|
||||
|
||||
* Ensure `DEVKITPPC` environment variable is set to your devkitPPC directory, usually `/opt/devkitpro/devkitPPC`
|
||||
* Build the ARC firmware loader: `cd arcldr ; make -f Makefile.rvl ; make -f Makefile.dol ; cd ..`
|
||||
* Build the ARC firmware loader: `cd arcldr ; make -f Makefile.wii ; make -f Makefile.gc ; cd ..`
|
||||
* Build the little endian libc: `cd arcfw/baselibc ; make ; cd ../..`
|
||||
* Build the ARC firmware itself: `cd arcfw; make ; cd ..`
|
||||
|
||||
|
||||
@@ -639,9 +639,9 @@ static void ArcPrintDevice(PDEVICE_ENTRY Device) {
|
||||
static void ArcPrintTreeImpl(PDEVICE_ENTRY Device) {
|
||||
if (Device == NULL) return;
|
||||
|
||||
for (PDEVICE_ENTRY Child = (PDEVICE_ENTRY)ArcGetChild(Device); Child != NULL; Child = (PDEVICE_ENTRY)ArcGetChild(Child)) {
|
||||
for (PDEVICE_ENTRY Child = (PDEVICE_ENTRY)ArcGetChild(&Device->Component); Child != NULL; Child = (PDEVICE_ENTRY)ArcGetChild(&Child->Component)) {
|
||||
ArcPrintDevice(Child);
|
||||
for (PDEVICE_ENTRY This = (PDEVICE_ENTRY)ArcGetPeer(Child); This != NULL; This = (PDEVICE_ENTRY)ArcGetPeer(This)) {
|
||||
for (PDEVICE_ENTRY This = (PDEVICE_ENTRY)ArcGetPeer(&Child->Component); This != NULL; This = (PDEVICE_ENTRY)ArcGetPeer(&This->Component)) {
|
||||
ArcPrintDevice(This);
|
||||
if (This->Child != NULL) ArcPrintTreeImpl(This);
|
||||
}
|
||||
@@ -786,4 +786,4 @@ void ArcConfigInit(void) {
|
||||
ScsiDummy.Component.Identifier = (size_t)s_ScsiDummyIdentifier;
|
||||
ScsiDummy.Component.IdentifierLength = sizeof(s_ScsiDummyIdentifier);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,7 +213,7 @@ void ArcConsoleInit(void* framebuffer, int xstart, int ystart, int xres, int yre
|
||||
{
|
||||
console_data_s* con = &stdcon;
|
||||
|
||||
g_framebuffer_phys = MEM_K1_TO_PHYSICAL(framebuffer);
|
||||
g_framebuffer_phys = (ULONG)MEM_K1_TO_PHYSICAL(framebuffer);
|
||||
con->destbuffer = framebuffer;
|
||||
con->con_xres = xres;
|
||||
con->con_yres = yres;
|
||||
@@ -533,4 +533,4 @@ void ArcConsoleGetStatus(PARC_DISPLAY_STATUS Status) {
|
||||
Status->HighIntensity = curr_con->high_intensity;
|
||||
Status->Underscored = curr_con->underscore;
|
||||
Status->ReverseVideo = curr_con->reverse;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -423,7 +423,7 @@ static void ArcEnvLoadParse(PBYTE Data) {
|
||||
}
|
||||
|
||||
void ArcEnvLoad(void) {
|
||||
if (s_EnvironmentLoaded) return false;
|
||||
if (s_EnvironmentLoaded) return;
|
||||
// Scans through all USB disks.
|
||||
// For each disk check if partition 0 is type 0x41 (PReP) and only two sectors long
|
||||
// if so read it.
|
||||
@@ -533,4 +533,4 @@ void ArcEnvInit(void) {
|
||||
for (UCHAR drive = 0; drive < DEV_IOS_SDMC; drive++) {
|
||||
if (ArcEnvLoadFromDisk(drive)) return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -488,7 +488,7 @@ static ARC_STATUS ArcLoadImpl(
|
||||
//ULONG ImageBasePage = (ImageBase & 0x1FFFFFFF) >> PAGE_SHIFT;
|
||||
|
||||
// If the last section is named ".debug", don't load it
|
||||
if (!strcmp(&Sections[NumberOfSections - 1].Name, ".debug")) {
|
||||
if (!strcmp((const char*)Sections[NumberOfSections - 1].Name, ".debug")) {
|
||||
NumberOfSections--;
|
||||
SizeOfImage -= Sections[NumberOfSections].SizeOfRawData;
|
||||
OptionalHeader->SizeOfImage = SizeOfImage;
|
||||
@@ -834,4 +834,4 @@ void ArcLoadInit(void) {
|
||||
// Try to allocate some memory for this, hopefully in an area that cannot be used by boot.
|
||||
ScratchAddress = ArcMemAllocTemp(ARCFW_MEM2_SIZE, true);
|
||||
if (ScratchAddress == NULL) ScratchAddress = ArcMemAllocTemp(ARCFW_MEM2_SIZE, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "kbd_high.h"
|
||||
#include "si_kbd.h"
|
||||
#include "ios_usb.h"
|
||||
#include "ios_usb_kbd.h"
|
||||
|
||||
#define KBD_BUFFER_SIZE 32
|
||||
|
||||
@@ -22,9 +23,9 @@ static bool s_CapsLock = false;
|
||||
// Two lookup tables, encompassing key codes between KEY_A(4) and KEY_SLASH(0x38).
|
||||
// en_GB keyboard layout, whatever...
|
||||
//static const UCHAR s_LookupNormal[] = "abcdefghijklmnopqrstuvwxyz1234567890\n\x1b\b\x09 -=[]\\#;'`,./";
|
||||
//static const UCHAR s_LookupShift [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"<EFBFBD>$%^&*()\n\x1b\b\x09 _+{}|~:@~<>?";
|
||||
//static const UCHAR s_LookupShift [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"£$%^&*()\n\x1b\b\x09 _+{}|~:@~<>?";
|
||||
static const UCHAR s_LookupNormal[] = "abcdefghijklmnopqrstuvwxyz1234567890\n\x1b\b\x09 -=[]\\\\;#',./";
|
||||
static const UCHAR s_LookupShift[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"<EFBFBD>$%^&*()\n\x1b\b\x09 _+{}||:~@<>?";
|
||||
static const UCHAR s_LookupShift[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!\"£$%^&*()\n\x1b\b\x09 _+{}||:~@<>?";
|
||||
|
||||
#define INCREMENT_INDEX(var) (((var) + 1) % sizeof(s_Buffer.Buffer))
|
||||
#define INCREMENT_INDEX_READ() INCREMENT_INDEX(s_Buffer.ReadIndex)
|
||||
@@ -154,4 +155,4 @@ void KBDOnEvent(PUSB_KBD_REPORT Report) {
|
||||
s_LastKeycode = Report->KeyCode[0];
|
||||
s_LastModifier = Report->Modifiers;
|
||||
KBDWriteKey(s_LastKeycode, s_LastModifier);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "exi_ide.h"
|
||||
|
||||
#include "fatfs/ff.h"
|
||||
#include "fatfs/diskio.h"
|
||||
|
||||
ULONG s_MacIoStart;
|
||||
|
||||
@@ -1185,7 +1186,7 @@ void ARC_NORETURN FwMain(PHW_DESCRIPTION Desc) {
|
||||
(*(PULONG)0x8000180c == 'STUB' && *(PULONG)0x80001808 == 'HAXX') ||
|
||||
(*(PULONG)0x80001800 == 'STUB' && *(PULONG)0x8000180c == 'HAXX')
|
||||
)) {
|
||||
ReloadStub = ArcMemAllocDirect(0x2000, false);
|
||||
ReloadStub = (ULONG)ArcMemAllocDirect(0x2000, false);
|
||||
for (ULONG i = 0; i < 0x1800; i += 4) {
|
||||
*(PULONG)(ReloadStub + i) = *(PULONG)(0x80001800 + i);
|
||||
}
|
||||
|
||||
@@ -940,7 +940,7 @@ bool PxiIopIoctlvAsyncPoll(ULONG index, LONG* Result, PVOID* Context) {
|
||||
for (ULONG i = 0; i < NumBuffers; i++) {
|
||||
if (Buffers[i].Pointer == NULL) continue;
|
||||
ULONG Length = Buffers[i].Length;
|
||||
ULONG phys = Buffers[i].Pointer;
|
||||
ULONG phys = (ULONG)Buffers[i].Pointer;
|
||||
Buffers[i].Pointer = MEM_PHYSICAL_TO_K0(phys);
|
||||
if ((BuffersInPhysSpace & BIT(i)) != 0) Buffers[i].Pointer = MEM_PHYSICAL_TO_K1(phys);
|
||||
Buffers[i].Length = Length;
|
||||
@@ -976,4 +976,4 @@ void PxiInit(void) {
|
||||
PxiIopClose((IOS_HANDLE)i);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <memory.h>
|
||||
#include "timer.h"
|
||||
#include "arc.h"
|
||||
#include "types.h"
|
||||
#include "runtime.h"
|
||||
@@ -125,14 +126,14 @@ static const UCHAR sc_64kbdToUsbTable5[] = {
|
||||
0x51, // 0305 [down]
|
||||
0x4f, // 0405 [right]
|
||||
0x1f, // 0505 2"
|
||||
0x20, // 0605 3<EFBFBD>
|
||||
0x20, // 0605 3£
|
||||
0x21, // 0705 4$
|
||||
0x22, // 0805 5%
|
||||
0x23, // 0905 6^
|
||||
0x53, // 0a05 [num lock]
|
||||
0x00, // 0b05 [menu] - (next to next/previous page) - don't map to anything for now
|
||||
0x1e, // 0c05 1!
|
||||
0x35, // 0d05 `<EFBFBD>
|
||||
0x35, // 0d05 `¬
|
||||
0x03, // 0e05 none
|
||||
0x39, // 0f05 [caps lock]
|
||||
0x03, // 1005 none
|
||||
@@ -289,7 +290,7 @@ static const UCHAR sc_GckbdToUsbTable4C[] =
|
||||
0x29, // 4c [ESC]
|
||||
0x49, // 4d [Insert]
|
||||
0x4c, // 4e [Delete]
|
||||
0x35, // 4f `<EFBFBD>
|
||||
0x35, // 4f `¬
|
||||
0x2a, // 50 [backspace]
|
||||
0x2b, // 51 [TAB]
|
||||
0x03, // 52 Unused
|
||||
@@ -729,4 +730,4 @@ static void SikbdpPollChannel(ULONG channel) {
|
||||
void SikbdPoll(void) {
|
||||
for (ULONG channel = 0; channel < SI_CHANNEL_COUNT; channel++)
|
||||
SikbdpPollChannel(channel);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "ata.h"
|
||||
#include <malloc.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <ogc/lwp_watchdog.h>
|
||||
|
||||
#define IDE_EXI_V1 0
|
||||
@@ -788,4 +789,4 @@ DISC_INTERFACE __io_atac = {
|
||||
(FN_MEDIUM_WRITESECTORS)&__atac_writeSectors,
|
||||
(FN_MEDIUM_CLEARSTATUS)&__atac_clearStatus,
|
||||
(FN_MEDIUM_SHUTDOWN)&__atac_shutdown
|
||||
} ;
|
||||
} ;
|
||||
|
||||
@@ -9,10 +9,12 @@
|
||||
#include <sdcard/wiisd_io.h>
|
||||
#endif
|
||||
#include <sdcard/gcsd.h>
|
||||
|
||||
#include <sdcard/card_cmn.h>
|
||||
#include <sdcard/card_io.h>
|
||||
#include <fat.h>
|
||||
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <ogc/lwp_watchdog.h>
|
||||
|
||||
#include <ogc/texconv.h>
|
||||
@@ -641,7 +643,7 @@ int main(int argc, char** argv) {
|
||||
// reload IOS, get rid of our existing environment
|
||||
__IOS_LaunchNewIOS(ios);
|
||||
// wait for IOS to finish loading
|
||||
udelay(1000000);
|
||||
usleep(1000000);
|
||||
// and patch again, we want to reload IOS on the way in to NT
|
||||
if (!IsEmulator) patch_ahbprot_reset();
|
||||
}
|
||||
@@ -649,4 +651,4 @@ int main(int argc, char** argv) {
|
||||
|
||||
// Call entrypoint through mode switch
|
||||
ModeSwitchEntry((ArcFirmEntry)EntryPoint, (PVOID)PHYSADDR_LOAD);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user