diff --git a/Makefile b/Makefile index 0a1a504..380f61d 100644 --- a/Makefile +++ b/Makefile @@ -137,6 +137,10 @@ $(OFILES_SRC) : $(HFILES_BIN) @echo $(notdir $<) @bin2s -a 32 $< | $(AS) -o $(@) #--------------------------------------------------------------------------------- +%.h264.o %_h264.h : %.h264 + @echo $(notdir $<) + @bin2s -a 32 $< | $(AS) -o $(@) +#--------------------------------------------------------------------------------- -include $(DEPENDS) diff --git a/data/bootLogoTex.tga b/data/bootLogoTex.tga new file mode 100644 index 0000000..944896e Binary files /dev/null and b/data/bootLogoTex.tga differ diff --git a/data/bootMovie.h264 b/data/bootMovie.h264 new file mode 100644 index 0000000..1661970 Binary files /dev/null and b/data/bootMovie.h264 differ diff --git a/src/main.cpp b/src/main.cpp index 7f70469..1f0ba72 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,6 +20,11 @@ #include "romfs_helper.h" #include "filelist.h" +struct _ACPMetaData { + char bootmovie[80696]; + char bootlogo[28604]; +} _ACPMetaData; + WUPS_PLUGIN_NAME("Homebrew SysLauncher"); WUPS_PLUGIN_DESCRIPTION("Allows the user to load homebrew from the System Menu"); WUPS_PLUGIN_VERSION("0.1"); @@ -432,7 +437,19 @@ DECL_FUNCTION(int32_t, HBM_NN_ACP_ACPGetTitleMetaXmlByDevice, uint32_t titleid_u return result; } -WUPS_MUST_REPLACE_PHYSICAL(HBM_NN_ACP_ACPGetTitleMetaXmlByDevice, 0x2E36CE44, 0x0E36CE44); + +DECL_FUNCTION(uint32_t, ACPGetLaunchMetaData, struct _ACPMetaData *metadata) { + uint32_t result = real_ACPGetLaunchMetaData(metadata); + + if (gHomebrewLaunched) { + memcpy(metadata->bootmovie, bootMovie_h264, bootMovie_h264_size); + memcpy(metadata->bootlogo, bootLogoTex_tga, bootLogoTex_tga_size); + } + + return result; +} + +// WUPS_MUST_REPLACE_PHYSICAL(HBM_NN_ACP_ACPGetTitleMetaXmlByDevice, 0x2E36CE44, 0x0E36CE44); WUPS_MUST_REPLACE(ACPGetApplicationBox, WUPS_LOADER_LIBRARY_NN_ACP, ACPGetApplicationBox); WUPS_MUST_REPLACE(PatchChkStart__3RplFRCQ3_2nn6drmapp8StartArg, WUPS_LOADER_LIBRARY_DRMAPP, PatchChkStart__3RplFRCQ3_2nn6drmapp8StartArg); WUPS_MUST_REPLACE(MCP_RightCheckLaunchable, WUPS_LOADER_LIBRARY_COREINIT, MCP_RightCheckLaunchable); @@ -448,3 +465,4 @@ WUPS_MUST_REPLACE(ACPGetTitleMetaXmlByDevice, WUPS_LOADER_LIBRARY_NN_ACP, ACPGet WUPS_MUST_REPLACE(ACPGetLaunchMetaXml, WUPS_LOADER_LIBRARY_NN_ACP, ACPGetLaunchMetaXml); WUPS_MUST_REPLACE(ACPGetTitleMetaDirByDevice, WUPS_LOADER_LIBRARY_NN_ACP, ACPGetTitleMetaDirByDevice); WUPS_MUST_REPLACE(_SYSLaunchTitleByPathFromLauncher, WUPS_LOADER_LIBRARY_SYSAPP, _SYSLaunchTitleByPathFromLauncher); +WUPS_MUST_REPLACE(ACPGetLaunchMetaData, WUPS_LOADER_LIBRARY_NN_ACP, ACPGetLaunchMetaData);