Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,14 @@ jobs:
run: |
make release COMMIT_HASH=${GITHUB_SHA::7} BINDIR=PS2_HDD/ HDD=1 ${{ env.DEBUG }} PRINTF=${{ github.event.inputs.name }}

- name: Compile PS2 MMCE build
run: |
make release COMMIT_HASH=${GITHUB_SHA::7} BINDIR=PS2_MMCE/ MMCE=1 ${{ env.DEBUG }} PRINTF=${{ github.event.inputs.name }}

- name: Compile PSX MMCE build
run: |
make release COMMIT_HASH=${GITHUB_SHA::7} BINDIR=PSX_MMCE/ PSX=1 MMCE=1 ${{ env.DEBUG }} PRINTF=${{ github.event.inputs.name }}

- name: list
run: |
git ls-files -i --exclude-standard -c
Expand All @@ -76,6 +84,8 @@ jobs:
mv PSX/ release/PSX/
mv PS2_HDD/ release/PS2_HDD/
mv PS2_MX4SIO/ release/PS2_MX4SIO/
mv PS2_MMCE/ release/PS2_MMCE/
mv PSX_MMCE/ release/PSX_MMCE/

- name: pack release
run: |
Expand All @@ -92,7 +102,7 @@ jobs:
name: PS2BBL
path: |
release/*

- name: Create prerelease
if: github.ref == 'refs/heads/main'
uses: mathieucarbou/marvinpinto-action-automatic-releases@latest
Expand Down
18 changes: 16 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ HAS_EMBED_IRX = 1 # whether to embed or not non vital IRX (wich will be loaded f
DEBUG ?= 0
PSX ?= 0 # PSX DESR support
HDD ?= 0 #wether to add internal HDD support
MMCE ?= 0
MX4SIO ?= 0
PROHBIT_DVD_0100 ?= 0 # prohibit the DVD Players v1.00 and v1.01 from being booted.
XCDVD_READKEY ?= 0 # Enable the newer sceCdReadKey checks, which are only supported by a newer CDVDMAN module.
Expand Down Expand Up @@ -86,6 +87,19 @@ ifeq ($(MX4SIO), 1)
endif
endif

ifeq ($(MMCE), 1)
HOMEBREW_IRX = 1
FILEXIO_NEED = 1
EE_OBJS += mmceman_irx.o
EE_CFLAGS += -DMMCE
ifeq ($(USE_ROM_SIO2MAN), 1)
$(error MMCE needs Homebrew SIO2MAN to work)
endif
ifeq ($(MX4SIO), 1)
$(error MX4SIO cant coexist with MMCE)
endif
endif

ifeq ($(HOMEBREW_IRX), 1)
$(info --- enforcing usage of homebrew IRX modules)
USE_ROM_PADMAN = 0
Expand Down Expand Up @@ -268,9 +282,9 @@ endif
$(EE_BIN_ENCRYPTED): $(EE_BIN_PACKED)
@echo " -- Encrypting ($(KELFTYPE))"
ifeq ($(KELFTYPE), MC)
thirdparty/kelftool_dnasload.exe encrypt dnasload $< $@
thirdparty/kelftool encrypt dnasload $< $@
else ifeq ($(KELFTYPE), HDD)
thirdparty/kelftool_dnasload.exe encrypt fhdb $< $@
thirdparty/kelftool encrypt fhdb $< $@
else
$(error UNKNOWN KELF TYPE: '$(KELFTYPE)')
endif
Expand Down
5 changes: 4 additions & 1 deletion embed.make
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $(EE_ASM_DIR)ioprp.c: embed/ioprp.img | $(EE_ASM_DIR)

$(EE_ASM_DIR)padman_irx.c: freepad.irx | $(EE_ASM_DIR)
$(BIN2S) $< $@ padman_irx

$(EE_ASM_DIR)iomanx_irx.c: iomanX.irx | $(EE_ASM_DIR)
$(BIN2S) $< $@ iomanX_irx

Expand All @@ -26,6 +26,9 @@ $(EE_ASM_DIR)%_irx.c: %.irx
$(DIR_GUARD)
$(BIN2S) $< $@ $(IRXTAG)

embed/iop/mmceman.irx:
$(info - - Downloading MMCEMAN Driver)
wget -q https://github.com/israpps/wLaunchELF_ISR/raw/refs/heads/master/iop/__precompiled/mmceman.irx -O $@

# ---{ EMBEDDED RESOURCES }--- #
$(EE_ASM_DIR)icon_sys_A.c: embed/icons/icon_A.sys | $(EE_ASM_DIR)
Expand Down
Empty file added embed/iop/.gitkeep
Empty file.
12 changes: 12 additions & 0 deletions include/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ enum
#ifdef XFROM
SOURCE_XFROM,
#endif
#ifdef MMCE
SOURCE_MMCE1,
SOURCE_MMCE0,
#endif
#ifdef PSX
SOURCE_XCONFIG,
#endif
Expand All @@ -35,6 +39,10 @@ char *CONFIG_PATHS[SOURCE_COUNT] = {
#ifdef XFROM
"xfrom:/PS2BBL/CONFIG.INI",
#endif
#ifdef MMCE
"mmce0:/PS2BBL/PS2BBL.INI",
"mmce1:/PS2BBL/PS2BBL.INI",
#endif
#ifdef PSX
"mc?:/SYS-CONF/PSXBBL.INI",
#endif
Expand All @@ -55,6 +63,10 @@ static const char *SOURCES[SOURCE_COUNT] = {
#ifdef XFROM
"xfrom",
#endif
#ifdef MMCE
"mmce0",
"mmce1",
#endif
#ifdef PSX
"XCONF",
#endif
Expand Down
4 changes: 4 additions & 0 deletions include/irx_import.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ IMPORT_BIN2C(padman_irx);
IMPORT_BIN2C(psx_ioprp);
#endif

#ifdef MMCE
IMPORT_BIN2C(mmceman_irx);
#endif

#ifdef FILEXIO
IMPORT_BIN2C(iomanX_irx);
IMPORT_BIN2C(fileXio_irx);
Expand Down
19 changes: 18 additions & 1 deletion src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ int main(int argc, char *argv[])
j = SifExecModuleBuffer(padman_irx, size_padman_irx, 0, NULL, &x);
DPRINTF(" [PADMAN]: ID=%d, ret=%d\n", j, x);
#endif

j = LoadUSBIRX();
if (j != 0) {
scr_setfontcolor(0x0000ff);
Expand All @@ -98,6 +99,11 @@ int main(int argc, char *argv[])
}
#endif

#ifdef MMCE
j = SifExecModuleBuffer(mmceman_irx, size_mmceman_irx, 0, NULL, &x);
DPRINTF(" [MMCEMAN]: ID=%d, ret=%d\n", j, x);
#endif

#ifdef MX4SIO
j = SifExecModuleBuffer(mx4sio_bd_irx, size_mx4sio_bd_irx, 0, NULL, &x);
DPRINTF(" [MX4SIO_BD]: ID=%d, ret=%d\n", j, x);
Expand Down Expand Up @@ -371,7 +377,7 @@ int main(int argc, char *argv[])
CleanUp();
RunLoaderElf(EXECPATHS[j], MPART);
} else {
DPRINTF("%s not found\n", EXECPATHS[j]);
scr_printf("%s %-15s\r", EXECPATHS[j], "not found");
}
}

Expand Down Expand Up @@ -445,6 +451,17 @@ char *CheckPath(char *path)
if (exist(path))
return path;
}
#ifdef MMCE
} else if (!strncmp("mmce?", path, 5)) {
path[4] = (config_source == SOURCE_MMCE1) ? '1' : '0';
if (exist(path)) {
return path;
} else {
path[4] = (config_source == SOURCE_MMCE1) ? '0' : '1';
if (exist(path))
return path;
}
#endif
#ifdef HDD
} else if (!strncmp("hdd", path, 3)) {
if (MountParty(path) < 0) {
Expand Down
Loading