├── cef ├── lib │ ├── libcglue.a │ ├── libc.a │ ├── libvlfgu.a │ ├── libvlfgui.a │ ├── libvlflibc.a │ ├── libvlfutils.a │ ├── build_prx.mak │ ├── libpspvshctrl │ │ ├── Makefile │ │ └── VshCtrl.S │ ├── build.mak │ ├── libpspisoctrl_driver │ │ ├── isoCtrl_driver.S │ │ └── Makefile │ ├── libpspgalaxy_driver │ │ ├── galaxy_driver.S │ │ └── Makefile │ ├── libpspmarch33_driver │ │ ├── march33_driver.S │ │ └── Makefile │ ├── libpspinferno_driver │ │ ├── Makefile │ │ └── inferno_driver.S │ ├── libpspkubridge │ │ ├── Makefile │ │ └── KUBridge.S │ ├── libpspsysc_user │ │ └── Makefile │ └── build_bin.mak ├── include │ ├── kubridge.h │ ├── libpsardumper.h │ ├── pspelf.h │ ├── rebootexconfig.h │ ├── common.h │ ├── pspamctrl.h │ ├── extratypes.h │ └── isoctrl.h ├── updater │ ├── ICON0.PNG │ ├── UPDATE.SFO │ ├── version.c │ ├── README.md │ └── Makefile ├── btcnf │ ├── pspbtcnf_inferno │ │ ├── build.bat │ │ ├── Makefile │ │ └── pspbtcnf.txt │ ├── pspbtcnf_march33 │ │ ├── build.bat │ │ ├── Makefile │ │ └── pspbtcnf.txt │ ├── pspbtcnf_normal │ │ ├── build.bat │ │ ├── Makefile │ │ └── pspbtcnf.txt │ ├── pspbtcnf_np9660 │ │ ├── build.bat │ │ ├── Makefile │ │ └── pspbtcnf.txt │ └── pspbtcnf_recovery │ │ ├── build.bat │ │ ├── Makefile │ │ └── pspbtcnf.txt ├── march33 │ ├── umdman.h │ ├── umd9660.h │ ├── mediaman.h │ ├── README.md │ ├── Makefile │ ├── main.c │ └── umdman.c ├── xmbctrl │ ├── exports.exp │ ├── list.h │ ├── utils.h │ ├── README.md │ ├── Makefile │ ├── plugins.h │ ├── config.c │ ├── list.c │ └── options.h ├── satelite │ ├── exports.exp │ ├── README.md │ ├── Makefile │ ├── blit.h │ ├── menu.h │ └── satelite.h ├── vshctrl │ ├── isofs_driver │ │ ├── umd9660_driver.h │ │ ├── umd9660_driver.c │ │ └── isofs_driver.h │ ├── externs.h │ ├── README.md │ ├── exports.exp │ ├── Makefile │ ├── patch_vsh.h │ ├── virtualsfo.h │ ├── patch_io.h │ └── main.c ├── binary │ ├── start.S │ ├── Makefile │ ├── linkfile.x │ └── build_bin.mak ├── recovery │ ├── pspPSAR.S │ ├── README.md │ ├── vgraph.h │ ├── Makefile │ ├── installer.h │ ├── plugins.h │ ├── utils.h │ ├── main.h │ ├── menu.h │ └── options.h ├── popcorn │ ├── exports.exp │ ├── README.md │ ├── Makefile │ ├── popcorn.h │ └── main.c ├── payloadex │ ├── linkfile.x │ ├── Makefile │ ├── libc.h │ ├── main.h │ └── libc.c ├── rebootex │ ├── linkfile.x │ ├── Makefile │ ├── libc.h │ ├── main.h │ └── libc.c ├── bits │ └── README.md ├── inferno │ ├── README.md │ ├── Makefile │ ├── inferno.h │ └── isoread.c ├── systemctrl │ ├── pgd.h │ ├── README.md │ ├── ttystdio.h │ ├── init_patch.h │ ├── storage_cache.h │ ├── gameinfo.h │ ├── plugin.h │ ├── adrenaline.h │ ├── nodrm.h │ ├── setjmp_clone.S │ ├── string_clone.h │ ├── Makefile │ ├── libraries_patch.h │ ├── main.h │ ├── LflashFatfmt.c │ └── malloc.c ├── galaxy │ ├── README.md │ ├── Makefile │ ├── exports.exp │ └── main.c └── kermit_idstorage │ ├── Makefile │ ├── exports.exp │ └── main.c ├── user ├── flash0 │ ├── vsh │ │ └── module │ │ │ └── .gitkeep │ └── kd │ │ └── libpsardumper.prx ├── exports.yml ├── includes │ ├── gtu_f.h │ ├── gtu_v.h │ ├── clear_f.h │ ├── clear_v.h │ ├── color_f.h │ ├── color_v.h │ ├── lcd3x_f.h │ ├── lcd3x_v.h │ ├── opaque_f.h │ ├── opaque_v.h │ ├── ribbon_f.h │ ├── ribbon_v.h │ ├── xbr_2x_f.h │ ├── xbr_2x_v.h │ ├── bicubic_f.h │ ├── scale2x_f.h │ ├── scale2x_v.h │ ├── texture_f.h │ ├── texture_v.h │ ├── advanced_aa_f.h │ ├── advanced_aa_v.h │ ├── alpha_blend_f.h │ ├── alpha_blend_v.h │ ├── xbr_2x_fast_f.h │ ├── xbr_2x_fast_v.h │ ├── texture_tint_f.h │ ├── ribbon_simple_f.h │ ├── ribbon_simple_v.h │ ├── sharp_bilinear_f.h │ ├── sharp_bilinear_v.h │ ├── sharp_bilinear_simple_f.h │ ├── sharp_bilinear_simple_v.h │ ├── vflux_v.h │ └── vflux_f.h ├── lz4 │ └── LICENSE ├── flashfs.h ├── usb.h ├── titleinfo.h ├── pops.h └── states.h ├── .gitattributes ├── docs ├── custom.css ├── src │ ├── assets │ │ ├── 06-overlay.png │ │ ├── XX-TitleID.png │ │ ├── 03-state-load.png │ │ ├── 03-state-save.png │ │ ├── 04-rec-exit.png │ │ ├── 04-rec-plugin.png │ │ ├── 04-xmb-plugin.png │ │ ├── 06-overlay-1.png │ │ ├── 07-vsh-menu.png │ │ ├── 03-state-delete.png │ │ ├── 10-cfw-settings.png │ │ ├── 03-epi-menu-about.png │ │ ├── 03-epi-menu-main.png │ │ ├── 03-state-overwrite.png │ │ ├── 04-import-plugins.png │ │ ├── 10-plugin-manager.png │ │ ├── 03-epi-menu-settings.png │ │ ├── 04-xmb-plugin-state.png │ │ ├── 09-rec-menu-advanced.png │ │ ├── 09-rec-menu-general.png │ │ ├── 09-rec-menu-plugins.png │ │ ├── 10-cfw-settings-list.png │ │ ├── 03-epi-menu-main-states.png │ │ ├── 10-plugin-manager-list.png │ │ ├── 10-cfw-settings-need-restart.png │ │ └── 10-plugins-manager-options.png │ ├── 07-VSHMenu.md │ ├── SUMMARY.md │ ├── XX-Credits.md │ ├── 10-XmbCfwMenus.md │ ├── 03-AdrenalineMenu.md │ ├── XX-CompatIssues.md │ ├── 04-HomebrewSupport.md │ └── 02-Install.md └── book.toml ├── bubble ├── pkg │ ├── sce_sys │ │ ├── icon0.png │ │ └── livearea │ │ │ └── contents │ │ │ ├── bg.png │ │ │ ├── startup.png │ │ │ └── template.xml │ ├── eboot.pbp │ └── frame.xml ├── utils.h ├── CMakeLists.txt └── utils.c ├── vsh ├── exports.yml └── CMakeLists.txt ├── usbdevice ├── exports.yml └── CMakeLists.txt ├── kernel ├── exports.yml ├── utils.h ├── utils.c └── CMakeLists.txt ├── todo.md ├── .gitignore ├── Dockerfile └── adrenaline_version.h /cef/lib/libcglue.a: -------------------------------------------------------------------------------- 1 | ! 2 | -------------------------------------------------------------------------------- /user/flash0/vsh/module/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /docs/custom.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --content-max-width: 60%; 3 | } -------------------------------------------------------------------------------- /cef/lib/libc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/lib/libc.a -------------------------------------------------------------------------------- /cef/lib/libvlfgu.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/lib/libvlfgu.a -------------------------------------------------------------------------------- /cef/lib/libvlfgui.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/lib/libvlfgui.a -------------------------------------------------------------------------------- /cef/lib/libvlflibc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/lib/libvlflibc.a -------------------------------------------------------------------------------- /cef/include/kubridge.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/include/kubridge.h -------------------------------------------------------------------------------- /cef/lib/libvlfutils.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/lib/libvlfutils.a -------------------------------------------------------------------------------- /cef/updater/ICON0.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/updater/ICON0.PNG -------------------------------------------------------------------------------- /cef/updater/UPDATE.SFO: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/cef/updater/UPDATE.SFO -------------------------------------------------------------------------------- /bubble/pkg/sce_sys/icon0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/bubble/pkg/sce_sys/icon0.png -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_inferno/build.bat: -------------------------------------------------------------------------------- 1 | btcnf pspbtcnf -b 2 | move pspbtcnf.new ../../flash0/kd/pspbtknf.bin -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_march33/build.bat: -------------------------------------------------------------------------------- 1 | btcnf pspbtcnf -b 2 | move pspbtcnf.new ../../flash0/kd/pspbtlnf.bin -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_normal/build.bat: -------------------------------------------------------------------------------- 1 | btcnf pspbtcnf -b 2 | move pspbtcnf.new ../../flash0/kd/pspbtjnf.bin -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_np9660/build.bat: -------------------------------------------------------------------------------- 1 | btcnf pspbtcnf -b 2 | move pspbtcnf.new ../../flash0/kd/pspbtmnf.bin -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_recovery/build.bat: -------------------------------------------------------------------------------- 1 | btcnf pspbtcnf -b 2 | move pspbtcnf.new ../../flash0/kd/pspbtrnf.bin -------------------------------------------------------------------------------- /docs/src/assets/06-overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/06-overlay.png -------------------------------------------------------------------------------- /docs/src/assets/XX-TitleID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/XX-TitleID.png -------------------------------------------------------------------------------- /cef/march33/umdman.h: -------------------------------------------------------------------------------- 1 | #ifndef __UMDMAN_H__ 2 | #define __UMDMAN_H__ 3 | 4 | int InitUmdMan(); 5 | 6 | #endif 7 | 8 | -------------------------------------------------------------------------------- /docs/src/assets/03-state-load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-state-load.png -------------------------------------------------------------------------------- /docs/src/assets/03-state-save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-state-save.png -------------------------------------------------------------------------------- /docs/src/assets/04-rec-exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/04-rec-exit.png -------------------------------------------------------------------------------- /docs/src/assets/04-rec-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/04-rec-plugin.png -------------------------------------------------------------------------------- /docs/src/assets/04-xmb-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/04-xmb-plugin.png -------------------------------------------------------------------------------- /docs/src/assets/06-overlay-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/06-overlay-1.png -------------------------------------------------------------------------------- /docs/src/assets/07-vsh-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/07-vsh-menu.png -------------------------------------------------------------------------------- /user/flash0/kd/libpsardumper.prx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/user/flash0/kd/libpsardumper.prx -------------------------------------------------------------------------------- /docs/src/assets/03-state-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-state-delete.png -------------------------------------------------------------------------------- /docs/src/assets/10-cfw-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-cfw-settings.png -------------------------------------------------------------------------------- /bubble/pkg/eboot.pbp: -------------------------------------------------------------------------------- 1 | PBP( -------------------------------------------------------------------------------- /docs/src/assets/03-epi-menu-about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-epi-menu-about.png -------------------------------------------------------------------------------- /docs/src/assets/03-epi-menu-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-epi-menu-main.png -------------------------------------------------------------------------------- /docs/src/assets/03-state-overwrite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-state-overwrite.png -------------------------------------------------------------------------------- /docs/src/assets/04-import-plugins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/04-import-plugins.png -------------------------------------------------------------------------------- /docs/src/assets/10-plugin-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-plugin-manager.png -------------------------------------------------------------------------------- /docs/src/assets/03-epi-menu-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-epi-menu-settings.png -------------------------------------------------------------------------------- /docs/src/assets/04-xmb-plugin-state.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/04-xmb-plugin-state.png -------------------------------------------------------------------------------- /docs/src/assets/09-rec-menu-advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/09-rec-menu-advanced.png -------------------------------------------------------------------------------- /docs/src/assets/09-rec-menu-general.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/09-rec-menu-general.png -------------------------------------------------------------------------------- /docs/src/assets/09-rec-menu-plugins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/09-rec-menu-plugins.png -------------------------------------------------------------------------------- /docs/src/assets/10-cfw-settings-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-cfw-settings-list.png -------------------------------------------------------------------------------- /bubble/pkg/sce_sys/livearea/contents/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/bubble/pkg/sce_sys/livearea/contents/bg.png -------------------------------------------------------------------------------- /docs/src/assets/03-epi-menu-main-states.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/03-epi-menu-main-states.png -------------------------------------------------------------------------------- /docs/src/assets/10-plugin-manager-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-plugin-manager-list.png -------------------------------------------------------------------------------- /bubble/pkg/sce_sys/livearea/contents/startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/bubble/pkg/sce_sys/livearea/contents/startup.png -------------------------------------------------------------------------------- /docs/src/assets/10-cfw-settings-need-restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-cfw-settings-need-restart.png -------------------------------------------------------------------------------- /docs/src/assets/10-plugins-manager-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isage/Adrenaline/HEAD/docs/src/assets/10-plugins-manager-options.png -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_inferno/Makefile: -------------------------------------------------------------------------------- 1 | all: _btcnf 2 | 3 | _btcnf: 4 | python3 ../btcnf.py build ./pspbtcnf.txt 5 | clean: 6 | rm -f ./pspbtcnf.bin 7 | -------------------------------------------------------------------------------- /user/exports.yml: -------------------------------------------------------------------------------- 1 | AdrenalineUser: 2 | attributes: 0 3 | version: 4 | major: 1 5 | minor: 0 6 | main: 7 | start: module_start 8 | stop: module_stop -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_normal/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | all: _btcnf 4 | 5 | _btcnf: 6 | python3 ../btcnf.py build ./pspbtcnf.txt 7 | clean: 8 | rm -f ./pspbtcnf.bin 9 | -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_np9660/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | all: _btcnf 4 | 5 | _btcnf: 6 | python3 ../btcnf.py build ./pspbtcnf.txt 7 | clean: 8 | rm -f ./pspbtcnf.bin 9 | -------------------------------------------------------------------------------- /vsh/exports.yml: -------------------------------------------------------------------------------- 1 | AdrenalineVsh: 2 | attributes: 0 3 | version: 4 | major: 1 5 | minor: 0 6 | main: 7 | start: module_start 8 | stop: module_stop -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_march33/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | all: _btcnf 4 | 5 | _btcnf: 6 | python3 ../btcnf.py build ./pspbtcnf.txt 7 | clean: 8 | rm -f ./pspbtcnf.bin 9 | -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_recovery/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | all: _btcnf 4 | 5 | _btcnf: 6 | python3 ../btcnf.py build ./pspbtcnf.txt 7 | clean: 8 | rm -f ./pspbtcnf.bin 9 | -------------------------------------------------------------------------------- /usbdevice/exports.yml: -------------------------------------------------------------------------------- 1 | VitaShellUsbDevice: 2 | attributes: 0 3 | version: 4 | major: 1 5 | minor: 0 6 | main: 7 | start: module_start 8 | stop: module_stop 9 | -------------------------------------------------------------------------------- /cef/updater/version.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "../../adrenaline_version.h" 4 | 5 | int main() { 6 | printf("0x%08x", ADRENALINE_VERSION); 7 | return 0; 8 | } -------------------------------------------------------------------------------- /cef/xmbctrl/exports.exp: -------------------------------------------------------------------------------- 1 | PSP_BEGIN_EXPORTS 2 | 3 | PSP_EXPORT_START(syslib, 0, 0x8000) 4 | PSP_EXPORT_FUNC(module_start) 5 | PSP_EXPORT_VAR(module_info) 6 | PSP_EXPORT_END 7 | 8 | PSP_END_EXPORTS -------------------------------------------------------------------------------- /cef/satelite/exports.exp: -------------------------------------------------------------------------------- 1 | PSP_BEGIN_EXPORTS 2 | 3 | PSP_EXPORT_START(syslib, 0, 0x8000) 4 | PSP_EXPORT_FUNC(module_start) 5 | PSP_EXPORT_FUNC(module_stop) 6 | PSP_EXPORT_VAR(module_info) 7 | PSP_EXPORT_END 8 | 9 | PSP_END_EXPORTS -------------------------------------------------------------------------------- /cef/vshctrl/isofs_driver/umd9660_driver.h: -------------------------------------------------------------------------------- 1 | #ifndef __UMD9660_DRIVER_H__ 2 | #define __UMD9660_DRIVER_H__ 3 | 4 | #define SECTOR_SIZE 0x0800 5 | 6 | void VshCtrlSetUmdFile(const char *file); 7 | 8 | int Umd9660ReadSectors(int lba, int nsectors, void *buf); 9 | 10 | #endif -------------------------------------------------------------------------------- /cef/march33/umd9660.h: -------------------------------------------------------------------------------- 1 | #ifndef __UMD9660_H__ 2 | #define __UMD9660_H__ 3 | 4 | #define SECTOR_SIZE 0x0800 5 | 6 | #define MAX_DESCRIPTORS 8 7 | 8 | typedef struct UmdFD { 9 | int busy; 10 | int discpointer; 11 | } UmdFD; 12 | 13 | int InitUmd9660(); 14 | 15 | #endif // __UMD9660_H__ 16 | 17 | -------------------------------------------------------------------------------- /cef/binary/start.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | .global _start 4 | .ent _start 5 | _start: 6 | move $a0, $sp 7 | move $a1, $ra 8 | la $sp, 0x00014000 9 | jal _main 10 | nop 11 | move $ra, $v0 12 | jr $ra 13 | move $sp, $v1 14 | .end _start -------------------------------------------------------------------------------- /cef/xmbctrl/list.h: -------------------------------------------------------------------------------- 1 | #ifndef LIST_H 2 | #define LIST_H 3 | 4 | #include 5 | 6 | typedef struct List{ 7 | void** table; 8 | int count; 9 | int max; 10 | } List; 11 | 12 | void add_list(List* list, void* item); 13 | 14 | void clear_list(List* list, void (*cleaner)(void*)); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /docs/book.toml: -------------------------------------------------------------------------------- 1 | [book] 2 | authors = ["GrayJack"] 3 | language = "en" 4 | src = "src" 5 | title = "Adrenaline Manual/Wiki" 6 | description = "Manual/Wiki for Adrenaline App and Adrenaline CFW" 7 | 8 | [output.html] 9 | default-theme = "rust" 10 | additional-css = ["custom.css"] 11 | 12 | [preprocessor.callouts] -------------------------------------------------------------------------------- /bubble/pkg/frame.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Adrenaline 7.1.7 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /cef/recovery/pspPSAR.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspstub.s" 4 | 5 | STUB_START "pspPSAR",0x40090000,0x00040005 6 | STUB_FUNC 0xD31CB80A,pspDecryptTable 7 | STUB_FUNC 0x56C924E1,pspPSARInit 8 | STUB_FUNC 0x9C91DD9D,pspPSARGetNextFile 9 | STUB_FUNC 0xC907D012,pspPSARSetBufferPosition 10 | STUB_END 11 | -------------------------------------------------------------------------------- /cef/xmbctrl/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef __XMBCTRL_UTILS_H__ 2 | #define __XMBCTRL_UTILS_H__ 3 | 4 | #include 5 | 6 | #include 7 | 8 | int utf8_to_unicode(wchar_t *dest, char *src); 9 | int ReadLine(SceUID fd, char *str); 10 | int GetPlugin(char *buf, int size, char *str, int *activated); 11 | 12 | #endif -------------------------------------------------------------------------------- /cef/binary/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = binary 2 | OBJS = start.o main.o 3 | 4 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 5 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 6 | ASFLAGS = $(CFLAGS) 7 | 8 | LDFLAGS = -nostartfiles -T linkfile.x -nostdlib 9 | 10 | PSPSDK = $(shell psp-config --pspsdk-path) 11 | include build_bin.mak -------------------------------------------------------------------------------- /cef/popcorn/exports.exp: -------------------------------------------------------------------------------- 1 | PSP_BEGIN_EXPORTS 2 | 3 | PSP_EXPORT_START(syslib, 0, 0x8000) 4 | PSP_EXPORT_FUNC(module_start) 5 | PSP_EXPORT_VAR(module_info) 6 | PSP_EXPORT_END 7 | 8 | # For new syscalls 9 | PSP_EXPORT_START(PopcornPrivate, 0x0011, 0x4001) 10 | PSP_EXPORT_FUNC(scePopsManExitVSHKernelPatched) 11 | PSP_EXPORT_END 12 | 13 | PSP_END_EXPORTS -------------------------------------------------------------------------------- /cef/march33/mediaman.h: -------------------------------------------------------------------------------- 1 | #ifndef __MEDIAMAN_H__ 2 | #define __MEDIAMAN_H__ 3 | 4 | #include 5 | 6 | enum SceUmdMode { 7 | SCE_UMD_MODE_POWERON = 0x01, 8 | SCE_UMD_MODE_POWERCUR = 0x02, 9 | }; 10 | 11 | typedef pspUmdInfo SceUmdDiscInfo; 12 | 13 | int InitMediaMan(); 14 | void UmdNotifyCallback(int stat); 15 | 16 | #endif // __MEDIAMAN_H__ 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /kernel/exports.yml: -------------------------------------------------------------------------------- 1 | AdrenalineKernel: 2 | attributes: 0 3 | version: 4 | major: 1 5 | minor: 0 6 | main: 7 | start: module_start 8 | stop: module_stop 9 | libraries: 10 | AdrenalineKubridge: 11 | syscall: true 12 | functions: 13 | - kuCtrlPeekBufferPositive 14 | - adrStartBlanking 15 | - adrStopBlanking -------------------------------------------------------------------------------- /cef/binary/linkfile.x: -------------------------------------------------------------------------------- 1 | OUTPUT_FORMAT("elf32-littlemips") 2 | OUTPUT_ARCH(mips) 3 | 4 | ENTRY(_start) 5 | 6 | SECTIONS 7 | { 8 | . = 0x00010000; 9 | .text.start : { 10 | *(.text.start) 11 | } 12 | .text : { 13 | *(.text) 14 | } 15 | .data : { 16 | *(.data) 17 | } 18 | .rodata : { 19 | *(.rodata) 20 | } 21 | .bss : { 22 | *(.bss) 23 | } 24 | } -------------------------------------------------------------------------------- /cef/payloadex/linkfile.x: -------------------------------------------------------------------------------- 1 | OUTPUT_FORMAT("elf32-littlemips") 2 | OUTPUT_ARCH(mips) 3 | 4 | ENTRY(_start) 5 | 6 | SECTIONS 7 | { 8 | . = 0x88FC0000; 9 | .text.start : { 10 | *(.text.start) 11 | } 12 | .text : { 13 | *(.text) 14 | } 15 | .data : { 16 | *(.data) 17 | } 18 | .rodata : { 19 | *(.rodata) 20 | } 21 | .bss : { 22 | *(.bss) 23 | } 24 | } -------------------------------------------------------------------------------- /cef/rebootex/linkfile.x: -------------------------------------------------------------------------------- 1 | OUTPUT_FORMAT("elf32-littlemips") 2 | OUTPUT_ARCH(mips) 3 | 4 | ENTRY(_start) 5 | 6 | SECTIONS 7 | { 8 | . = 0x88FC0000; 9 | .text.start : { 10 | *(.text.start) 11 | } 12 | .text : { 13 | *(.text) 14 | } 15 | .data : { 16 | *(.data) 17 | } 18 | .rodata : { 19 | *(.rodata) 20 | } 21 | .bss : { 22 | *(.bss) 23 | } 24 | } -------------------------------------------------------------------------------- /cef/include/libpsardumper.h: -------------------------------------------------------------------------------- 1 | #ifndef __LIBPSARDUMPER_H__ 2 | #define __LIBPSARDUMPER_H__ 3 | 4 | int pspDecryptTable(u8 *buf1, u8 *buf2, int size, int mode); 5 | int pspPSARInit(u8 *dataPSAR, u8 *dataOut, u8 *dataOut2); 6 | int pspPSARGetNextFile(u8 *dataPSAR, int cbFile, u8 *dataOut, u8 *dataOut2, char *name, int *retSize, int *retPos); 7 | int pspPSARSetBufferPosition(int position); 8 | 9 | #endif -------------------------------------------------------------------------------- /cef/payloadex/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = payloadex 2 | OBJS = main.o libc.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division -fno-builtin 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | 9 | LDFLAGS = -nostartfiles -T linkfile.x -nostdlib 10 | 11 | PSPSDK = $(shell psp-config --pspsdk-path) 12 | include ../lib/build_bin.mak -------------------------------------------------------------------------------- /cef/rebootex/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = rebootex 2 | OBJS = main.o libc.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division -fno-builtin 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | 9 | LDFLAGS = -nostartfiles -T linkfile.x -nostdlib 10 | 11 | PSPSDK = $(shell psp-config --pspsdk-path) 12 | include ../lib/build_bin.mak -------------------------------------------------------------------------------- /cef/updater/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Updater 2 | 3 | A Updater App for Adrenaline. 4 | 5 | ## Credits 6 | 7 | - TheFl0w for starting Adrenaline 8 | 9 | ## License 10 | 11 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 12 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 13 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /todo.md: -------------------------------------------------------------------------------- 1 | - Provide source for psp-packer 2 | - Provide source for galaxy 3 | - Provide source for march33 4 | - Automate frame.xml / template.xml versioning 5 | - Implement ISO (and updates) version display 6 | - UMD Video 7 | - ADHOC shenenigans 8 | - Redesign/rewrite recovery 9 | - Fix pspemu resampler on vita side (drop mic patches) 10 | - Apply per-game flags/fixes 11 | - Apply custom color on initial setup -------------------------------------------------------------------------------- /cef/bits/README.md: -------------------------------------------------------------------------------- 1 | # Bits 2 | 3 | Bits of code meant to be shared by multiple sub-projects and doesn't make much sense to export as PSP library for reuse (e.g. Only one ISO driver is run at a time so it doesn't make sense to export from `systemctrl` as doing so will increase the size of the "systemctrl.prx" and the memory usage even when no iso driver is currently being used). 4 | 5 | - `iso_common.c`: Common code related to PSP ISO formats -------------------------------------------------------------------------------- /cef/recovery/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Recovery Menu 2 | 3 | A Recovery Menu implementation for Adrenaline CFW. 4 | 5 | 6 | ## Credits 7 | 8 | - TheFl0w for starting Adrenaline 9 | 10 | ## License 11 | 12 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 13 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 14 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/vshctrl/externs.h: -------------------------------------------------------------------------------- 1 | #ifndef _EXTERNS_H 2 | #define _EXTERNS_H 3 | 4 | #include 5 | 6 | #include 7 | 8 | extern AdrenalineConfig g_cfw_config; 9 | 10 | extern int (* g_vshmenu_ctrl)(SceCtrlData *pad_data, int count); 11 | 12 | extern u8 g_set; 13 | extern int g_cpu_list[9]; 14 | extern int g_bus_list[9]; 15 | #define N_CPU (sizeof(g_cpu_list) / sizeof(int)) 16 | 17 | extern u32 g_firsttick; 18 | 19 | 20 | #endif -------------------------------------------------------------------------------- /cef/satelite/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Satelite 2 | 3 | A menu Adrenaline CFW plugin. 4 | 5 | The plugin that provides the VSH Menu to the CFW. 6 | 7 | ## Credits 8 | 9 | - TheFl0w for starting Adrenaline 10 | 11 | ## License 12 | 13 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 14 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 15 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | 3 | build 4 | 5 | cef/systemctrl/binary.h 6 | cef/systemctrl/rebootex.h 7 | 8 | cef/lib/libpsp*.a 9 | 10 | cef/updater/version 11 | cef/updater/updater.elf 12 | cef/updater/adrenaline_kernel.h 13 | cef/updater/adrenaline_user.h 14 | cef/updater/adrenaline_vsh.h 15 | cef/updater/frame_xml.h 16 | cef/updater/template_xml.h 17 | cef/updater/main.o 18 | cef/updater/EBOOT.PBP 19 | cef/updater/updater.prx 20 | cef/updater/psp-updatelist.txt 21 | 22 | user/flash0 23 | 24 | docs/book -------------------------------------------------------------------------------- /cef/lib/build_prx.mak: -------------------------------------------------------------------------------- 1 | # Adrenaline — https://github.com/isage/Adrenaline 2 | # ----------------------------------------------------------------------- 3 | # Licensed under the BSD 3-clause license 4 | # 5 | # build_prx.mak — An extension of PSPSDK build_prx.mak 6 | # 7 | # Copyright (c) 2025 GrayJack 8 | 9 | ifeq ($(USE_KERNEL_LIBS),1) 10 | CFLAGS += -D__KERNEL__ 11 | else 12 | CFLAGS += -D__USER__ 13 | endif 14 | 15 | PSPSDK = $(shell psp-config --pspsdk-path) 16 | include $(PSPSDK)/lib/build_prx.mak -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM vitasdk/vitasdk:latest 2 | 3 | RUN wget https://github.com/pspdev/pspdev/releases/latest/download/pspdev-ubuntu-latest-x86_64.tar.gz 4 | 5 | RUN mkdir -p /usr/local/pspdev 6 | RUN tar -xzf pspdev-ubuntu-latest-x86_64.tar.gz -C /usr/local/ 7 | 8 | ENV PSPDEV=/usr/local/pspdev 9 | ENV PATH=${PSPDEV}/bin:$PATH 10 | 11 | RUN echo "export PSPDEV=${PSPDEV}" > /etc/profile.d/vitasdk.sh && \ 12 | echo 'export PATH=$PSPDEV/bin:$PATH' >> /etc/profile.d/vitasdk.sh 13 | 14 | # COPY --chown=user ${PSPDEV} ${PSPDEV} -------------------------------------------------------------------------------- /cef/lib/libpspvshctrl/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | VshCtrl_0000.o \ 4 | VshCtrl_0001.o \ 5 | VshCtrl_0002.o \ 6 | VshCtrl_0003.o \ 7 | VshCtrl_0004.o 8 | 9 | 10 | %.o: VshCtrl.S 11 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 12 | 13 | all: $(OBJS) 14 | @psp-ar cru libpspvshctrl.a $(OBJS) 15 | @psp-ranlib libpspvshctrl.a 16 | @echo Finished creating stubs for VshCtrl 17 | 18 | clean: 19 | @rm -f *.o 20 | @rm -f *.a 21 | @echo VshCtrl cleaning done 22 | -------------------------------------------------------------------------------- /cef/inferno/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Inferno Driver 2 | 3 | A core Adrenaline CFW plugin. 4 | 5 | It is a custom PSP UMDemu driver with support for ISO and many Compressed ISO formats. 6 | 7 | ## Credits 8 | 9 | - PRO CFW Team: For original Inferno 10 | - ARK CFW Team: For Inferno 2 11 | 12 | ## License 13 | 14 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 15 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 16 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/xmbctrl/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline XMB Control 2 | 3 | A extra Adrenaline CFW plugin. 4 | 5 | A plugin that adds to XMB extra configuration items related to the CFW, like CFW configuration and plugin manager. 6 | 7 | ## Credits 8 | 9 | - ARK CFW Team: For help and camaraderie and bits of code 10 | 11 | ## License 12 | 13 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 14 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 15 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/lib/build.mak: -------------------------------------------------------------------------------- 1 | # Adrenaline — https://github.com/isage/Adrenaline 2 | # ----------------------------------------------------------------------- 3 | # Licensed under the BSD 3-clause license 4 | # 5 | # build.mak — An extension of PSPSDK build.mak 6 | # 7 | # Copyright (c) 2025 GrayJack 8 | 9 | ifeq ($(USE_KERNEL_LIBS),1) 10 | CFLAGS += -D__KERNEL__ 11 | else 12 | CFLAGS += -D__USER__ 13 | endif 14 | 15 | ifeq ($(USE_UPDATER_LIBS),1) 16 | CFLAGS += -D__UPDATER__ 17 | endif 18 | 19 | PSPSDK = $(shell psp-config --pspsdk-path) 20 | include $(PSPSDK)/lib/build.mak -------------------------------------------------------------------------------- /cef/lib/libpspisoctrl_driver/isoCtrl_driver.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // isoCtrl_driver_XXXX.o 7 | 8 | #ifdef F_isoCtrl_driver_0000 9 | IMPORT_START "isoCtrl_driver",0x00090011 10 | #endif 11 | #ifdef F_isoCtrl_driver_0001 12 | IMPORT_FUNC "isoCtrl_driver",0xD4FAB33F,isoGetTitleId 13 | #endif 14 | #ifdef F_isoCtrl_driver_0002 15 | IMPORT_FUNC "isoCtrl_driver",0xFAEC97D6,isoSetUmdDelay 16 | #endif 17 | #ifdef F_isoCtrl_driver_0003 18 | IMPORT_FUNC "isoCtrl_driver",0x3F83B110,isoReadUmdFile 19 | #endif 20 | -------------------------------------------------------------------------------- /cef/march33/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline March33 Driver 2 | 3 | A core Adrenaline CFW plugin. 4 | 5 | It is a custom PSP UMDemu driver with support for ISO and many Compressed ISO formats. 6 | 7 | ## Credits 8 | 9 | - M33 Team: For original M33 10 | - ARK CFW Team: For improvements and the most unified, generic and portable base image-reading implementation 11 | 12 | ## License 13 | 14 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 15 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 16 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /user/includes/gtu_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _gtu_f_h_ 8 | #define _gtu_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char gtu_f[]; 11 | extern const int gtu_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_gtu_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/gtu_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _gtu_v_h_ 8 | #define _gtu_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char gtu_v[]; 11 | extern const int gtu_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_gtu_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/clear_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _clear_f_h_ 8 | #define _clear_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char clear_f[]; 11 | extern const int clear_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_clear_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/clear_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _clear_v_h_ 8 | #define _clear_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char clear_v[]; 11 | extern const int clear_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_clear_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/color_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _color_f_h_ 8 | #define _color_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char color_f[]; 11 | extern const int color_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_color_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/color_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _color_v_h_ 8 | #define _color_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char color_v[]; 11 | extern const int color_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_color_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/lcd3x_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _lcd3x_f_h_ 8 | #define _lcd3x_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char lcd3x_f[]; 11 | extern const int lcd3x_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_lcd3x_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/lcd3x_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _lcd3x_v_h_ 8 | #define _lcd3x_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char lcd3x_v[]; 11 | extern const int lcd3x_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_lcd3x_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/lz4/LICENSE: -------------------------------------------------------------------------------- 1 | This repository uses 2 different licenses : 2 | - all files in the `lib` directory use a BSD 2-Clause license 3 | - all other files use a GPLv2 license, unless explicitly stated otherwise 4 | 5 | Relevant license is reminded at the top of each source file, 6 | and with presence of COPYING or LICENSE file in associated directories. 7 | 8 | This model is selected to emphasize that 9 | files in the `lib` directory are designed to be included into 3rd party applications, 10 | while all other files, in `programs`, `tests` or `examples`, 11 | receive more limited attention and support for such scenario. 12 | -------------------------------------------------------------------------------- /user/includes/opaque_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _opaque_f_h_ 8 | #define _opaque_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char opaque_f[]; 11 | extern const int opaque_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_opaque_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/opaque_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _opaque_v_h_ 8 | #define _opaque_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char opaque_v[]; 11 | extern const int opaque_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_opaque_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/ribbon_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _ribbon_f_h_ 8 | #define _ribbon_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char ribbon_f[]; 11 | extern const int ribbon_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_ribbon_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/ribbon_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _ribbon_v_h_ 8 | #define _ribbon_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char ribbon_v[]; 11 | extern const int ribbon_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_ribbon_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/xbr_2x_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _xbr_2x_f_h_ 8 | #define _xbr_2x_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char xbr_2x_f[]; 11 | extern const int xbr_2x_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_xbr_2x_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/xbr_2x_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _xbr_2x_v_h_ 8 | #define _xbr_2x_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char xbr_2x_v[]; 11 | extern const int xbr_2x_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_xbr_2x_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/bicubic_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _bicubic_f_h_ 8 | #define _bicubic_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char bicubic_f[]; 11 | extern const int bicubic_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_bicubic_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/scale2x_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _scale2x_f_h_ 8 | #define _scale2x_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char scale2x_f[]; 11 | extern const int scale2x_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_scale2x_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/scale2x_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _scale2x_v_h_ 8 | #define _scale2x_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char scale2x_v[]; 11 | extern const int scale2x_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_scale2x_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/texture_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _texture_f_h_ 8 | #define _texture_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char texture_f[]; 11 | extern const int texture_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_texture_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/texture_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _texture_v_h_ 8 | #define _texture_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char texture_v[]; 11 | extern const int texture_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_texture_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /cef/vshctrl/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline VSH Control 2 | 3 | A core Adrenaline CFW plugin. 4 | 5 | Provides main patches for VSH (XMB) to allow booting homebrew and ISO files and an additional API that can be used by homebrew that run on VSH. 6 | 7 | ## Credits 8 | 9 | - M33 Team: For bits of code 10 | - TheFl0w: For starting Adrenaline 11 | - ARK CFW Team: For help and camaraderie 12 | 13 | ## License 14 | 15 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 16 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 17 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/popcorn/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline PopCorn 2 | 3 | A core Adrenaline CFW plugin. 4 | 5 | It handles all the patches needed to get custom PSX games running and loading external POPS configuration for custom PSX games. 6 | 7 | ## Credits 8 | 9 | - M33 Team: For bits of code 10 | - TheFl0w: For starting Adrenaline 11 | - ARK CFW Team: For help and camaraderie. And the idea of external config 12 | 13 | ## License 14 | 15 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 16 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 17 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/systemctrl/pgd.h: -------------------------------------------------------------------------------- 1 | #ifndef _PGD_H 2 | #define _PGD_H 3 | 4 | #include 5 | 6 | typedef struct { 7 | u8 vkey[16]; 8 | 9 | int open_flag; 10 | int key_index; 11 | int drm_type; 12 | int mac_type; 13 | int cipher_type; 14 | 15 | int data_size; 16 | int align_size; 17 | int block_size; 18 | int block_nr; 19 | int data_offset; 20 | int table_offset; 21 | 22 | u8 *buf; 23 | } PGD_DESC; 24 | 25 | int kirk7(u8 *buf, int size, int type); 26 | 27 | int get_version_key(u8 *version_key, char *path); 28 | int get_edat_key(u8 *vkey, u8 *pgd_buf); 29 | int dumpPS1key(const char *path, u8 *buf); 30 | 31 | #endif /* _PGD_H */ 32 | -------------------------------------------------------------------------------- /cef/galaxy/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Galaxy Controller 2 | 3 | A core Adrenaline CFW plugin that tricks the Sony's NP9660 Driver into executing ISO and Compressed ISO formats. 4 | 5 | This plugin allows the usage of the Sony NP9660 UMD Driver as one of the ISO Drivers available to Adrenaline. 6 | 7 | ## Credits 8 | 9 | - M33 Team Developers: For M33 Galaxy Code 10 | - PRO CFW Team: For PRO Galaxy Code 11 | 12 | ## License 13 | 14 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 15 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 16 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/lib/libpspgalaxy_driver/galaxy_driver.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // galaxy_driver_XXXX.o 7 | 8 | #ifdef F_galaxy_driver_0000 9 | IMPORT_START "galaxy_driver",0x00090011 10 | #endif 11 | #ifdef F_galaxy_driver_0001 12 | IMPORT_FUNC "galaxy_driver",0xD4FAB33F,isoGetTitleId 13 | #endif 14 | #ifdef F_galaxy_driver_0002 15 | IMPORT_FUNC "galaxy_driver",0xFAEC97D6,isoSetUmdDelay 16 | #endif 17 | #ifdef F_galaxy_driver_0003 18 | IMPORT_FUNC "galaxy_driver",0xB6522E93,isoSetUmdDelay 19 | #endif 20 | #ifdef F_galaxy_driver_0004 21 | IMPORT_FUNC "galaxy_driver",0x3F83B110,isoReadUmdFile 22 | #endif 23 | -------------------------------------------------------------------------------- /user/includes/advanced_aa_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _advanced_aa_f_h_ 8 | #define _advanced_aa_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char advanced_aa_f[]; 11 | extern const int advanced_aa_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_advanced_aa_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/advanced_aa_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _advanced_aa_v_h_ 8 | #define _advanced_aa_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char advanced_aa_v[]; 11 | extern const int advanced_aa_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_advanced_aa_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/alpha_blend_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _alpha_blend_f_h_ 8 | #define _alpha_blend_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char alpha_blend_f[]; 11 | extern const int alpha_blend_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_alpha_blend_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/alpha_blend_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _alpha_blend_v_h_ 8 | #define _alpha_blend_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char alpha_blend_v[]; 11 | extern const int alpha_blend_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_alpha_blend_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/xbr_2x_fast_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _xbr_2x_fast_f_h_ 8 | #define _xbr_2x_fast_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char xbr_2x_fast_f[]; 11 | extern const int xbr_2x_fast_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_xbr_2x_fast_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/xbr_2x_fast_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _xbr_2x_fast_v_h_ 8 | #define _xbr_2x_fast_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char xbr_2x_fast_v[]; 11 | extern const int xbr_2x_fast_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_xbr_2x_fast_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/texture_tint_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _texture_tint_f_h_ 8 | #define _texture_tint_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char texture_tint_f[]; 11 | extern const int texture_tint_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_texture_tint_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /cef/lib/libpspmarch33_driver/march33_driver.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // march33_driver_XXXX.o 7 | 8 | #ifdef F_march33_driver_0000 9 | IMPORT_START "march33_driver",0x00090011 10 | #endif 11 | #ifdef F_march33_driver_0001 12 | IMPORT_FUNC "march33_driver",0xFAEC97D6,isoSetUmdDelay 13 | #endif 14 | #ifdef F_march33_driver_0002 15 | IMPORT_FUNC "march33_driver",0xB6522E93,isoSetUmdDelay 16 | #endif 17 | #ifdef F_march33_driver_0003 18 | IMPORT_FUNC "march33_driver",0xD4FAB33F,isoGetTitleId 19 | #endif 20 | #ifdef F_march33_driver_0004 21 | IMPORT_FUNC "march33_driver",0x3F83B110,isoReadUmdFile 22 | #endif 23 | -------------------------------------------------------------------------------- /user/includes/ribbon_simple_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _ribbon_simple_f_h_ 8 | #define _ribbon_simple_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char ribbon_simple_f[]; 11 | extern const int ribbon_simple_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_ribbon_simple_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/ribbon_simple_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _ribbon_simple_v_h_ 8 | #define _ribbon_simple_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char ribbon_simple_v[]; 11 | extern const int ribbon_simple_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_ribbon_simple_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/sharp_bilinear_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _sharp_bilinear_f_h_ 8 | #define _sharp_bilinear_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char sharp_bilinear_f[]; 11 | extern const int sharp_bilinear_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_sharp_bilinear_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/sharp_bilinear_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _sharp_bilinear_v_h_ 8 | #define _sharp_bilinear_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char sharp_bilinear_v[]; 11 | extern const int sharp_bilinear_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_sharp_bilinear_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /cef/kermit_idstorage/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = kermit_idstorage 2 | OBJS = main.o exports.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef KERMIT_IDSTORAGE_DEBUG 11 | CFLAGS += -DDEBUG=$(KERMIT_IDSTORAGE_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC = 1 22 | USE_KERNEL_LIBS = 1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspwlandrv_driver -lpspkermitperipheral_driver 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/popcorn/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = popcorn 2 | OBJS = main.o syspatches.o libcrypt.o exports.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef POPCORN_DEBUG 11 | CFLAGS += -DDEBUG=$(POPCORN_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC = 1 22 | USE_KERNEL_LIBS = 1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsystemctrl_kernel -lpspsemaphore -lpspamctrl_driver 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/satelite/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = satelite 2 | OBJS = main.o menu.o blit.o exports.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef SATELITE_DEBUG 11 | CFLAGS += -DDEBUG=$(SATELITE_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_PSPSDK_LIBS = 0 22 | USE_PSPSDK_LIBC = 0 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsystemctrl_user -lpspsysc_user -lpspvshctrl -lpsppower 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/recovery/vgraph.h: -------------------------------------------------------------------------------- 1 | #ifndef __VGRAPH_H__ 2 | #define __VGRAPH_H__ 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | void VGraphInit(u8 doublebuf); 12 | 13 | void VGraphPrintf(const char *fmt, ...) __attribute__((format(printf,1,2))); 14 | void VGraphPutc(u8 ch); 15 | 16 | void VGraphSetBackColor(u32 color); 17 | void VGraphSetTextColor(u32 color, u32 back); 18 | 19 | //void VGraphPutChar(int x, int y, u32 color, u8 ch); 20 | 21 | void VGraphGoto(int x, int y); 22 | 23 | void VGraphClear(void); 24 | void VGraphClearLine(u32 color); 25 | 26 | void VGraphSwap(); 27 | 28 | #ifdef __cplusplus 29 | } 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /cef/galaxy/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = galaxy 2 | OBJS = main.o syspatches.o exports.o ../bits/iso_common.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -Wno-array-bounds -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef GALAXY_DEBUG 11 | CFLAGS += -DDEBUG=$(GALAXY_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC=1 22 | USE_KERNEL_LIBS=1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsystemctrl_kernel -lpspsysmem_kernel -lpspsysclib_kernel -lpspinit_kernel 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /user/includes/sharp_bilinear_simple_f.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _sharp_bilinear_simple_f_h_ 8 | #define _sharp_bilinear_simple_f_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char sharp_bilinear_simple_f[]; 11 | extern const int sharp_bilinear_simple_f_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_sharp_bilinear_simple_f_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /user/includes/sharp_bilinear_simple_v.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file was autogenerated by raw2c. 3 | Visit http://www.devkitpro.org 4 | */ 5 | 6 | //--------------------------------------------------------------------------------- 7 | #ifndef _sharp_bilinear_simple_v_h_ 8 | #define _sharp_bilinear_simple_v_h_ 9 | //--------------------------------------------------------------------------------- 10 | extern const unsigned char sharp_bilinear_simple_v[]; 11 | extern const int sharp_bilinear_simple_v_size; 12 | //--------------------------------------------------------------------------------- 13 | #endif //_sharp_bilinear_simple_v_h_ 14 | //--------------------------------------------------------------------------------- 15 | -------------------------------------------------------------------------------- /cef/systemctrl/README.md: -------------------------------------------------------------------------------- 1 | # Adrenaline System Control 2 | 3 | A core Adrenaline CFW plugin. 4 | 5 | It is the heart of the CFW. Provides patches for unsigned code execution and the API that serves the rest of the CFW and that can be used by homebrew apps. 6 | 7 | ## Credits 8 | 9 | - M33 Team: For bits of code 10 | - TheFl0w: For starting Adrenaline 11 | - ARK CFW Team: For help and camaraderie 12 | - qwikrazor87 for DRM RE 13 | - meetpatty for fixing autoboot 14 | 15 | ## License 16 | 17 | This software is licensed under the [GNU General Public License, v. 3](./../LICENSE) 18 | (GPLv3). If a copy of the GPLv3 was not distributed with this file, you can obtain 19 | one at https://www.gnu.org/licenses/gpl-3.0.html. -------------------------------------------------------------------------------- /cef/recovery/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = recovery 2 | OBJS = main.o menu.o installer.o plugins.o utils.o pspPSAR.o vgraph.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division -Wno-unused-variable -Wno-incompatible-pointer-types 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef RECOVERY_DEBUG 11 | CFLAGS += -DDEBUG=$(RECOVERY_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | 20 | USE_PSPSDK_LIBC = 1 21 | USE_PSPSDK_LIBS = 1 22 | 23 | LIBDIR = ../lib 24 | LIBS = -lz -lpspreg -lpspsystemctrl_user -lpspkubridge -lpspsysc_user 25 | 26 | include ../lib/build.mak -------------------------------------------------------------------------------- /cef/march33/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = march33 2 | OBJS = main.o exports.o umdman.o mediaman.o umd9660.o ../bits/iso_common.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -O2 -G0 -Wall -Wno-array-bounds -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef MARCH33_DEBUG 11 | CFLAGS += -DDEBUG=$(MARCH33_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC = 1 22 | USE_KERNEL_LIBS = 1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsysmem_kernel -lpspsystemctrl_kernel -lpspthreadman_kernel -lpspinit_kernel 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/xmbctrl/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = xmbctrl 2 | OBJS = main.o list.o plugins.o utils.o exports.o config.o patch_vsh.o 3 | 4 | CFLAGS = -std=c99 -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 5 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 6 | ASFLAGS = $(CFLAGS) 7 | PSP_FW_VERSION = 661 8 | 9 | ifdef XMBCTRL_DEBUG 10 | CFLAGS += -DDEBUG=$(XMBCTRL_DEBUG) 11 | endif 12 | 13 | ifdef DEBUG 14 | CFLAGS += -DDEBUG=$(DEBUG) 15 | endif 16 | 17 | BUILD_PRX = 1 18 | PRX_EXPORTS = exports.exp 19 | 20 | INCDIR = ../include 21 | LIBDIR = ../lib 22 | 23 | USE_PSPSDK_LIBS = 0 24 | USE_PSPSDK_LIBC = 0 25 | 26 | LIBS = -lpspsystemctrl_user -lpspsysc_user -lpspkubridge -lpspvshctrl -lpsppaf -lpspvsh -lpspvshcommongui 27 | 28 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /docs/src/07-VSHMenu.md: -------------------------------------------------------------------------------- 1 | # Adrenaline VSH Menu 2 | --- 3 | 4 | VSH Menu is a menu that can be accessed while on XMB/VSH. It contains the most common CFW configurations that users of Adrenaline change with more frequency and quick commands. 5 | 6 | To access this menu, click the `Select` button while on XMB/VSH. 7 | 8 |

9 | 10 |

11 | 12 | 13 | ## Available features 14 | 15 | - Modify the CPU/BUS speed for the XMB/VSH 16 | - Modify the CPU/BUS speed for PSP Games 17 | - Modify the ISO driver to use when launching ISO games 18 | - Quick option to suspend the device 19 | - Quick option to restart the system in the [Recovery Menu](./09-RecoveryMenu.md) 20 | - Quick option to restart XMB/VSH 21 | -------------------------------------------------------------------------------- /cef/inferno/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = inferno 2 | OBJS = main.o iodrv_funcs.o umd.o isoread.o isocache.o exports.o ../bits/iso_common.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -Wno-array-bounds -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef INFERNO_DEBUG 11 | CFLAGS += -DDEBUG=$(INFERNO_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC=1 22 | USE_KERNEL_LIBS=1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsystemctrl_kernel -lpspsemaphore -lpspsysmem_kernel -lpspinit_kernel 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/vshctrl/exports.exp: -------------------------------------------------------------------------------- 1 | PSP_BEGIN_EXPORTS 2 | 3 | PSP_EXPORT_START(syslib, 0, 0x8000) 4 | PSP_EXPORT_FUNC(module_start) 5 | PSP_EXPORT_VAR(module_info) 6 | PSP_EXPORT_END 7 | 8 | PSP_EXPORT_START(VshCtrlLib, 0, 0x4001) 9 | PSP_EXPORT_FUNC(vctrlVSHRegisterVshMenu) 10 | PSP_EXPORT_FUNC(vctrlVSHExitVSHMenu) 11 | PSP_EXPORT_FUNC(vctrlGetRegistryValue) 12 | PSP_EXPORT_FUNC(vctrlSetRegistryValue) 13 | PSP_EXPORT_FUNC(vshDetectDiscType) 14 | PSP_EXPORT_END 15 | 16 | PSP_EXPORT_START(VshCtrlPrivate, 0, 0x4001) 17 | PSP_EXPORT_FUNC(InitUsbPatched) 18 | PSP_EXPORT_FUNC(ShutdownUsbPatched) 19 | PSP_EXPORT_FUNC(GetUsbStatusPatched) 20 | PSP_EXPORT_FUNC(sceUpdateDownloadSetVersionPatched) 21 | PSP_EXPORT_FUNC(SetDefaultNicknamePatched) 22 | PSP_EXPORT_END 23 | 24 | PSP_END_EXPORTS -------------------------------------------------------------------------------- /cef/include/pspelf.h: -------------------------------------------------------------------------------- 1 | #ifndef _PSPELF_H_ 2 | #define _PSPELF_H_ 3 | 4 | #include 5 | 6 | typedef struct { 7 | u32 e_magic; 8 | u8 e_class; 9 | u8 e_data; 10 | u8 e_idver; 11 | u8 e_pad[9]; 12 | u16 e_type; 13 | u16 e_machine; 14 | u32 e_version; 15 | u32 e_entry; 16 | u32 e_phoff; 17 | u32 e_shoff; 18 | u32 e_flags; 19 | u16 e_ehsize; 20 | u16 e_phentsize; 21 | u16 e_phnum; 22 | u16 e_shentsize; 23 | u16 e_shnum; 24 | u16 e_shstrndx; 25 | } __attribute__((packed)) Elf32_Ehdr; 26 | 27 | typedef struct { 28 | u32 sh_name; 29 | u32 sh_type; 30 | u32 sh_flags; 31 | u32 sh_addr; 32 | u32 sh_offset; 33 | u32 sh_size; 34 | u32 sh_link; 35 | u32 sh_info; 36 | u32 sh_addralign; 37 | u32 sh_entsize; 38 | } __attribute__((packed)) Elf32_Shdr; 39 | 40 | #endif -------------------------------------------------------------------------------- /cef/lib/libpspisoctrl_driver/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | isoCtrl_driver_0000.o \ 4 | isoCtrl_driver_0001.o \ 5 | isoCtrl_driver_0002.o \ 6 | isoCtrl_driver_0003.o 7 | 8 | CC=psp-gcc 9 | INCDIR = 10 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 11 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 12 | ASFLAGS = $(CFLAGS) 13 | LDFLAGS=-nodefaultlibs 14 | 15 | LIBDIR = 16 | 17 | %.o: isoCtrl_driver.S 18 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 19 | 20 | all: $(OBJS) 21 | @psp-ar cru libpspisoctrl_driver.a $(OBJS) 22 | @psp-ranlib libpspisoctrl_driver.a 23 | @echo Finished creating stubs for isoCtrl_driver 24 | 25 | clean: 26 | @rm -f *.o 27 | @rm -f *.a 28 | @echo isoCtrl_driver cleaning done -------------------------------------------------------------------------------- /cef/lib/libpspgalaxy_driver/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | galaxy_driver_0000.o \ 4 | galaxy_driver_0001.o \ 5 | galaxy_driver_0002.o \ 6 | galaxy_driver_0003.o \ 7 | galaxy_driver_0004.o 8 | 9 | CC=psp-gcc 10 | INCDIR = 11 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 12 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 13 | ASFLAGS = $(CFLAGS) 14 | LDFLAGS=-nodefaultlibs 15 | 16 | LIBDIR = 17 | 18 | %.o: galaxy_driver.S 19 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 20 | 21 | all: $(OBJS) 22 | @psp-ar cru libpspgalaxy_driver.a $(OBJS) 23 | @psp-ranlib libpspgalaxy_driver.a 24 | @echo Finished creating stubs for galaxy_driver 25 | 26 | clean: 27 | @rm -f *.o 28 | @rm -f *.a 29 | @echo galaxy_driver cleaning done -------------------------------------------------------------------------------- /cef/xmbctrl/plugins.h: -------------------------------------------------------------------------------- 1 | #ifndef PLUGINS_H 2 | #define PLUGINS_H 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | #define LINE_BUFFER_SIZE 1024 14 | #define LINE_TOKEN_DELIMITER ',' 15 | 16 | #define STAR "★" 17 | #define ADVANCED "▲" 18 | 19 | enum{ 20 | PLACE_VSH, 21 | PLACE_GAME, 22 | PLACE_POPS, 23 | }; 24 | 25 | enum{ 26 | PLUGIN_OFF, 27 | PLUGIN_ON, 28 | PLUGIN_REMOVED, 29 | }; 30 | 31 | typedef struct{ 32 | char* name; 33 | char* path; 34 | char* surname; 35 | char* runlevel; 36 | int active; 37 | int place; 38 | } Plugin; 39 | 40 | extern List g_plugins; 41 | 42 | void loadPlugins(void); 43 | 44 | void savePlugins(void); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /cef/lib/libpspmarch33_driver/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | march33_driver_0000.o \ 4 | march33_driver_0001.o \ 5 | march33_driver_0002.o \ 6 | march33_driver_0003.o \ 7 | march33_driver_0004.o 8 | 9 | CC=psp-gcc 10 | INCDIR = 11 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 12 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 13 | ASFLAGS = $(CFLAGS) 14 | LDFLAGS=-nodefaultlibs 15 | 16 | LIBDIR = 17 | 18 | %.o: march33_driver.S 19 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 20 | 21 | all: $(OBJS) 22 | @psp-ar cru libpspmarch33_driver.a $(OBJS) 23 | @psp-ranlib libpspmarch33_driver.a 24 | @echo Finished creating stubs for march33_driver 25 | 26 | clean: 27 | @rm -f *.o 28 | @rm -f *.a 29 | @echo march33_driver cleaning done -------------------------------------------------------------------------------- /cef/updater/Makefile: -------------------------------------------------------------------------------- 1 | release: all 2 | pack-pbp EBOOT.PBP UPDATE.SFO ICON0.PNG NULL NULL NULL NULL updater.prx NULL 3 | 4 | version: 5 | gcc version.c -o version 6 | 7 | psp-updatelist.txt: version 8 | sed "s/{{ADRENALINE_VERSION}}/$$(./version)/g" psp-updatelist.template > psp-updatelist.txt 9 | 10 | TARGET = updater 11 | OBJS = main.o 12 | 13 | INCDIR = ../include 14 | CFLAGS = -Os -G0 -Wall -fshort-wchar -fno-pic -mno-check-zero-division 15 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 16 | ASFLAGS = $(CFLAGS) 17 | PSP_FW_VERSION = 661 18 | 19 | BUILD_PRX = 1 20 | USE_UPDATER_LIBS = 1 21 | 22 | #LIBDIR = ../lib 23 | LIBS = ../lib/libpspsystemctrl_user.a 24 | EXTRA_TARGETS = version psp-updatelist.txt adrenaline_kernel.h adrenaline_user.h adrenaline_vsh.h frame_xml.h template_xml.h 25 | 26 | include ../lib/build.mak -------------------------------------------------------------------------------- /cef/vshctrl/isofs_driver/umd9660_driver.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "umd9660_driver.h" 5 | #include "../bits/iso_common.h" 6 | 7 | void VshCtrlSetUmdFile(const char *file) { 8 | SetUmdFile(file); 9 | iso_close(); 10 | strncpy(g_iso_fn, file, sizeof(g_iso_fn)-1); 11 | } 12 | 13 | int Umd9660ReadSectors(int lba, int nsectors, void *buf) { 14 | if (g_iso_opened == 0) { 15 | for (int i = 0; i < 0x10; i++) { 16 | if (sceIoLseek32(g_iso_fd, 0, PSP_SEEK_CUR) >= 0) { 17 | break; 18 | } 19 | 20 | iso_open(); 21 | } 22 | 23 | if (g_iso_opened == 0) { 24 | return SCE_ENODEV; 25 | } 26 | } 27 | 28 | IoReadArg read_arg = { 29 | .offset = lba * SECTOR_SIZE, 30 | .address = buf, 31 | .size = SECTOR_SIZE * nsectors 32 | }; 33 | 34 | int read = iso_read(&read_arg); 35 | return read/SECTOR_SIZE; 36 | } -------------------------------------------------------------------------------- /cef/recovery/installer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __INSTALLER_H__ 20 | #define __INSTALLER_H__ 21 | 22 | void Installer(); 23 | 24 | #endif -------------------------------------------------------------------------------- /user/flashfs.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __FLASHFS_H__ 20 | #define __FLASHFS_H__ 21 | 22 | int ScePspemuBuildFlash0(); 23 | 24 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/ttystdio.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __TTYSTDIO_H__ 20 | #define __TTYSTDIO_H__ 21 | 22 | int tty_init(void); 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /cef/vshctrl/Makefile: -------------------------------------------------------------------------------- 1 | TARGET = vshctrl 2 | OBJS = main.o vshctrl.o patch_vsh.o patch_io.o virtualsfo.o virtualpbpmgr.o isofs_driver/isofs_driver.o isofs_driver/umd9660_driver.o exports.o ../bits/iso_common.o 3 | 4 | INCDIR = ../include 5 | CFLAGS = -Os -G0 -Wall -Wno-array-bounds -fshort-wchar -fno-pic -mno-check-zero-division 6 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 7 | ASFLAGS = $(CFLAGS) 8 | PSP_FW_VERSION = 661 9 | 10 | ifdef VSHCTRL_DEBUG 11 | CFLAGS += -DDEBUG=$(VSHCTRL_DEBUG) 12 | endif 13 | 14 | ifdef DEBUG 15 | CFLAGS += -DDEBUG=$(DEBUG) 16 | endif 17 | 18 | BUILD_PRX = 1 19 | PRX_EXPORTS = exports.exp 20 | 21 | USE_KERNEL_LIBC = 1 22 | USE_KERNEL_LIBS = 1 23 | 24 | LIBDIR = ../lib 25 | LIBS = -lpspsystemctrl_kernel -lpsppower_driver -lpsprtc_driver -lpspusb_driver -lpspreg_driver -lpspsysclib_kernel -lpspsysmem_kernel -lpspinit_kernel 26 | 27 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /cef/march33/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define _ADRENALINE_LOG_IMPL_ 5 | #include 6 | 7 | #include "umdman.h" 8 | #include "umd9660.h" 9 | #include "mediaman.h" 10 | 11 | PSP_MODULE_INFO("EPI-March33Driver", 0x1006, 2, 0); 12 | PSP_MAIN_THREAD_ATTR(0); 13 | 14 | int module_start(SceSize args, void *argp) { 15 | logInit("ms0:/log_march33.txt"); 16 | logmsg("March33 driver started...\n") 17 | 18 | int res = InitUmdMan(); 19 | logmsg("%s: InitUmdMan -> 0x%08X\n", __func__, res); 20 | if (res < 0) { 21 | return res; 22 | } 23 | 24 | res = InitUmd9660(); 25 | logmsg("%s: InitUmd9660 -> 0x%08X\n", __func__, res); 26 | if (res < 0) { 27 | return res; 28 | } 29 | 30 | res = InitMediaMan(); 31 | logmsg("%s: InitMediaMan -> 0x%08X\n", __func__, res); 32 | if (res < 0) { 33 | return res; 34 | } 35 | 36 | return 0; 37 | } 38 | 39 | -------------------------------------------------------------------------------- /bubble/pkg/sce_sys/livearea/contents/template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bg.png 6 | 7 | 8 | 9 | startup.png 10 | 11 | 12 | 13 | 14 | 15 | Adrenaline 7.1.7 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | by Cat and GrayJack 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /cef/galaxy/exports.exp: -------------------------------------------------------------------------------- 1 | # Define the exports for the prx 2 | PSP_BEGIN_EXPORTS 3 | 4 | PSP_EXPORT_START(syslib, 0, 0x8000) 5 | PSP_EXPORT_FUNC_HASH(module_start) 6 | PSP_EXPORT_VAR_HASH(module_info) 7 | PSP_EXPORT_END 8 | 9 | PSP_EXPORT_START(galaxy_driver, 0x0011, 0x0001) 10 | # galaxy_driver_D4FAB33F 11 | PSP_EXPORT_FUNC(isoGetTitleId) 12 | # galaxy_driver_FAEC97D6 13 | PSP_EXPORT_FUNC(isoSetUmdDelay) 14 | # Compat with inferno 2 15 | PSP_EXPORT_FUNC_NID(isoSetUmdDelay, 0xB6522E93) 16 | # galaxy_driver_3F83B110 17 | PSP_EXPORT_FUNC(isoReadUmdFile) 18 | PSP_EXPORT_END 19 | 20 | # Common API between UMDemu ISO drivers 21 | PSP_EXPORT_START(isoCtrl_driver, 0x0011, 0x0001) 22 | # isoCtrl_driver_D4FAB33F 23 | PSP_EXPORT_FUNC(isoGetTitleId) 24 | # isoCtrl_driver_FAEC97D6 25 | PSP_EXPORT_FUNC(isoSetUmdDelay) 26 | # isoCtrl_driver_3F83B110 27 | PSP_EXPORT_FUNC(isoReadUmdFile) 28 | PSP_EXPORT_END 29 | 30 | PSP_END_EXPORTS 31 | -------------------------------------------------------------------------------- /cef/systemctrl/init_patch.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __INIT_PATCH_H__ 20 | #define __INIT_PATCH_H__ 21 | 22 | 23 | 24 | int PatchInit(int (* module_bootstart)(SceSize, void *), void *argp); 25 | 26 | #endif -------------------------------------------------------------------------------- /cef/lib/libpspinferno_driver/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | inferno_driver_0000.o \ 4 | inferno_driver_0001.o \ 5 | inferno_driver_0002.o \ 6 | inferno_driver_0003.o \ 7 | inferno_driver_0004.o \ 8 | inferno_driver_0005.o \ 9 | inferno_driver_0006.o \ 10 | inferno_driver_0007.o \ 11 | inferno_driver_0008.o 12 | 13 | CC=psp-gcc 14 | INCDIR = 15 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 16 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 17 | ASFLAGS = $(CFLAGS) 18 | LDFLAGS=-nodefaultlibs 19 | 20 | LIBDIR = 21 | 22 | %.o: inferno_driver.S 23 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 24 | 25 | all: $(OBJS) 26 | @psp-ar cru libpspinferno_driver.a $(OBJS) 27 | @psp-ranlib libpspinferno_driver.a 28 | @echo Finished creating stubs for inferno_driver 29 | 30 | clean: 31 | @rm -f *.o 32 | @rm -f *.a 33 | @echo inferno_driver cleaning done -------------------------------------------------------------------------------- /cef/xmbctrl/config.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include "xmbctrl.h" 10 | #include "list.h" 11 | #include "plugins.h" 12 | 13 | static int g_old_vsh_speed; 14 | 15 | void loadSettings() { 16 | paf_memset(&g_cfw_config, 0, sizeof(g_cfw_config)); 17 | 18 | sctrlSEGetConfig(&g_cfw_config); 19 | g_old_vsh_speed = g_cfw_config.vsh_cpu_speed; 20 | } 21 | 22 | void saveSettings() { 23 | sctrlSESetConfig(&g_cfw_config); 24 | 25 | // Apply VSH config change 26 | if (g_cfw_config.vsh_cpu_speed != g_old_vsh_speed) { 27 | static int cpu_list[] = { 0, 20, 75, 100, 133, 222, 266, 300, 333 }; 28 | static int bus_list[] = { 0, 10, 37, 50, 66, 111, 133, 150, 166 }; 29 | 30 | sctrlHENSetSpeed(cpu_list[g_cfw_config.vsh_cpu_speed], bus_list[g_cfw_config.vsh_cpu_speed]); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /user/usb.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __USB_H__ 20 | #define __USB_H__ 21 | 22 | SceUID startUsb(const char *usbDevicePath, const char *imgFilePath, int type); 23 | int stopUsb(SceUID modid); 24 | 25 | #endif -------------------------------------------------------------------------------- /cef/xmbctrl/list.c: -------------------------------------------------------------------------------- 1 | #include "list.h" 2 | #include "xmbctrl.h" 3 | 4 | void add_list(List* list, void* item) { 5 | if (list->table == NULL){ 6 | list->table = paf_malloc(sizeof(void*)*8); 7 | paf_memset(list->table, 0, sizeof(void*)*8); 8 | list->max = 8; 9 | list->count = 0; 10 | } 11 | if (list->count >= list->max){ 12 | void** old_table = list->table; 13 | list->max *= 2; 14 | list->table = paf_malloc(sizeof(void*)*list->max); 15 | paf_memset(list->table, 0, sizeof(void*)*list->max); 16 | for (int i=0; icount; i++){ 17 | list->table[i] = old_table[i]; 18 | } 19 | paf_free(old_table); 20 | } 21 | list->table[list->count++] = item; 22 | } 23 | 24 | void clear_list(List* list, void (*cleaner)(void*)){ 25 | if (list->table == NULL) return; 26 | for (int i=0; icount; i++){ 27 | cleaner(list->table[i]); 28 | } 29 | paf_free(list->table); 30 | list->table = NULL; 31 | list->count = 0; 32 | list->max = 0; 33 | } -------------------------------------------------------------------------------- /user/titleinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __TITLEINFO_H__ 20 | #define __TITLEINFO_H__ 21 | 22 | #include 23 | 24 | int ScePspemuInitTitleSpecificInfoPatched(const char *titleid, SceUID uid); 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /bubble/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __UTILS_H__ 20 | #define __UTILS_H__ 21 | 22 | int debugPrintf(char *text, ...); 23 | int ReadFile(char *file, void *buf, int size); 24 | int WriteFile(char *file, void *buf, int size); 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /cef/satelite/blit.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __BLIT_H__ 20 | #define __BLIT_H__ 21 | 22 | #define CENTER(x) (480 - (((x >> 1) << 1) * 8)) / 2 23 | 24 | int blit_setup(); 25 | int blit_string(int sx, int sy, int fcolor, int bcolor, const char *msg); 26 | 27 | #endif -------------------------------------------------------------------------------- /usbdevice/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) 4 | if(DEFINED ENV{VITASDK}) 5 | set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file") 6 | else() 7 | message(FATAL_ERROR "Please define VITASDK to point to your SDK path!") 8 | endif() 9 | endif() 10 | 11 | project(usbdevice) 12 | include("${VITASDK}/share/vita.cmake" REQUIRED) 13 | 14 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-q -Wall -O3 -nostdlib") 15 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") 16 | 17 | add_executable(usbdevice 18 | main.c 19 | ) 20 | 21 | target_link_libraries(usbdevice 22 | SceUdcdForDriver_stub 23 | SceIofilemgrForDriver_stub 24 | SceSysclibForDriver_stub 25 | taihenForKernel_stub 26 | ) 27 | 28 | vita_create_self(usbdevice.skprx usbdevice CONFIG exports.yml UNSAFE) 29 | 30 | add_custom_target(usbdevice_all 31 | ALL 32 | DEPENDS adrenaline_kernel.skprx-self 33 | ) 34 | -------------------------------------------------------------------------------- /cef/systemctrl/storage_cache.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #ifndef _STORAGE_CACHE_H_ 22 | #define _STORAGE_CACHE_H_ 23 | 24 | int storageCacheInit(const char *driver); 25 | void storageCacheDisable(void); 26 | void storageCacheStat(int reset); 27 | 28 | #endif -------------------------------------------------------------------------------- /cef/recovery/plugins.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __PLUGINS_H__ 20 | #define __PLUGINS_H__ 21 | 22 | #define MAX_PLUGINS_PER_MODE 8 23 | #define MAX_PLUGINS MAX_PLUGINS_PER_MODE * 3 24 | 25 | extern Entry g_plugins_tool_entries[MAX_PLUGINS + 1]; 26 | 27 | int Plugins(); 28 | void ImportClassicPlugins(int sel); 29 | 30 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/gameinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2025, GrayJack 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __GAMEINFO_H__ 20 | #define __GAMEINFO_H__ 21 | 22 | /** Find and set title_id on rebootex (Not on DISC, for disc, patch _sceLoadExecVSHWithApitype) */ 23 | void findAndSetTitleId(void); 24 | int readTitleIdFromDisc(void); 25 | 26 | void PatchGameInfoGetter(SceModule* mod); 27 | 28 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/plugin.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2025, GrayJack 4 | Copyright (C) 2021, ARK CFW 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see . 18 | */ 19 | 20 | #ifndef _PLUGIN_H_ 21 | #define _PLUGIN_H_ 22 | 23 | extern int disable_plugins; 24 | 25 | // Load Plugins 26 | void loadPlugins(void); 27 | 28 | /// Returns true if the system is at the stage of loading third-party plugins. 29 | int isLoadingPlugins(); 30 | 31 | #endif 32 | 33 | -------------------------------------------------------------------------------- /cef/kermit_idstorage/exports.exp: -------------------------------------------------------------------------------- 1 | PSP_BEGIN_EXPORTS 2 | 3 | PSP_EXPORT_START(syslib, 0, 0x8000) 4 | PSP_EXPORT_FUNC(module_start) 5 | PSP_EXPORT_FUNC(module_reboot_before) 6 | PSP_EXPORT_VAR(module_info) 7 | PSP_EXPORT_END 8 | 9 | PSP_EXPORT_START(sceIdStorage_driver, 0x0011, 0x0001) 10 | PSP_EXPORT_FUNC(sceIdStorageCreateAtomicLeaves) 11 | PSP_EXPORT_FUNC(sceIdStorageCreateLeaf) 12 | PSP_EXPORT_FUNC(sceIdStorageDeleteLeaf) 13 | PSP_EXPORT_FUNC(sceIdStorageEnd) 14 | PSP_EXPORT_FUNC(sceIdStorageEnumId) 15 | PSP_EXPORT_FUNC(sceIdStorageFlush) 16 | PSP_EXPORT_FUNC(sceIdStorageFormat) 17 | PSP_EXPORT_FUNC(sceIdStorageGetFreeLeaves) 18 | PSP_EXPORT_FUNC(sceIdStorageGetLeafSize) 19 | PSP_EXPORT_FUNC(sceIdStorageInit) 20 | PSP_EXPORT_FUNC(sceIdStorageIsDirty) 21 | PSP_EXPORT_FUNC(sceIdStorageIsFormatted) 22 | PSP_EXPORT_FUNC(sceIdStorageIsReadOnly) 23 | PSP_EXPORT_FUNC(sceIdStorageLookup) 24 | PSP_EXPORT_FUNC(sceIdStorageReadLeaf) 25 | PSP_EXPORT_FUNC(sceIdStorageUnformat) 26 | PSP_EXPORT_FUNC(sceIdStorageUpdate) 27 | PSP_EXPORT_FUNC(sceIdStorageWriteLeaf) 28 | PSP_EXPORT_END 29 | 30 | PSP_END_EXPORTS -------------------------------------------------------------------------------- /cef/systemctrl/adrenaline.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __ADRENALINE_H__ 20 | #define __ADRENALINE_H__ 21 | 22 | int SendAdrenalineCmd(int cmd, u32 args); 23 | 24 | void initAdrenalineInfo(); 25 | 26 | void PatchSasCore(SceModule* mod); 27 | void PatchLowIODriver2(SceModule* mod); 28 | void PatchPowerService2(SceModule* mod); 29 | 30 | int initAdrenaline(); 31 | 32 | #endif -------------------------------------------------------------------------------- /cef/payloadex/libc.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __LIBC_H__ 20 | #define __LIBC_H__ 21 | 22 | #include 23 | 24 | unsigned int _strlen(const char *s); 25 | int _strcmp(const char *s1, const char *s2); 26 | void *_memcpy(void *dst, const void *src, int len); 27 | void *_memset(void *b, int c, size_t len); 28 | void *_memmove(void *dst, const void *src, size_t len); 29 | 30 | #endif -------------------------------------------------------------------------------- /cef/rebootex/libc.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __LIBC_H__ 20 | #define __LIBC_H__ 21 | 22 | #include 23 | 24 | unsigned int _strlen(const char *s); 25 | int _strcmp(const char *s1, const char *s2); 26 | void *_memcpy(void *dst, const void *src, int len); 27 | void *_memset(void *b, int c, size_t len); 28 | void *_memmove(void *dst, const void *src, size_t len); 29 | 30 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/nodrm.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __NODRM_H__ 20 | #define __NODRM_H__ 21 | 22 | #include 23 | 24 | void PatchNpDrmDriver(SceModule* mod); 25 | void PatchNp9660Driver(SceModule* mod); 26 | void PatchVshForDrm(SceModule *mod); 27 | void PatchDrmOnVsh(); 28 | void PatchSysconfForDrm(SceModule *mod); 29 | void PatchDrmGameModule(SceModule* mod); 30 | 31 | #endif -------------------------------------------------------------------------------- /kernel/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __UTILS_H__ 20 | #define __UTILS_H__ 21 | 22 | #define debugPrintf(...) \ 23 | { \ 24 | char msg[128]; \ 25 | snprintf(msg, sizeof(msg), __VA_ARGS__); \ 26 | debug_printf(msg); \ 27 | } 28 | 29 | void debug_printf(char *msg); 30 | int ReadFile(char *file, void *buf, int size); 31 | int WriteFile(char *file, void *buf, int size); 32 | 33 | #endif -------------------------------------------------------------------------------- /cef/lib/libpspkubridge/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | KUBridge_0000.o \ 4 | KUBridge_0001.o \ 5 | KUBridge_0002.o \ 6 | KUBridge_0003.o \ 7 | KUBridge_0004.o \ 8 | KUBridge_0005.o \ 9 | KUBridge_0006.o \ 10 | KUBridge_0007.o \ 11 | KUBridge_0008.o \ 12 | KUBridge_0009.o \ 13 | KUBridge_0010.o \ 14 | KUBridge_0011.o \ 15 | KUBridge_0012.o \ 16 | KUBridge_0013.o \ 17 | KUBridge_0014.o \ 18 | KUBridge_0015.o \ 19 | KUBridge_0016.o \ 20 | KUBridge_0017.o \ 21 | KUBridge_0018.o \ 22 | KUBridge_0019.o 23 | 24 | 25 | CC=psp-gcc 26 | INCDIR = 27 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 28 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 29 | ASFLAGS = $(CFLAGS) 30 | LDFLAGS=-nodefaultlibs 31 | 32 | LIBDIR = 33 | 34 | %.o: KUBridge.S 35 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 36 | 37 | all: $(OBJS) 38 | @psp-ar cru libpspkubridge.a $(OBJS) 39 | @psp-ranlib libpspkubridge.a 40 | @echo Finished creating stubs for KUBridge 41 | 42 | clean: 43 | @rm -f *.o 44 | @rm -f *.a 45 | @echo KUBridge cleaning done -------------------------------------------------------------------------------- /cef/systemctrl/setjmp_clone.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | .set noat 3 | 4 | #define zr 0 5 | 6 | .global setjmp_clone 7 | .global longjmp_clone 8 | 9 | .ent setjmp_clone 10 | setjmp_clone: 11 | sw $ra, 0($a0) 12 | sw $gp, 44($a0) 13 | sw $sp, 4($a0) 14 | sw $fp, 8($a0) 15 | sw $s0, 12($a0) 16 | sw $s1, 16($a0) 17 | sw $s2, 20($a0) 18 | sw $s3, 24($a0) 19 | sw $s4, 28($a0) 20 | sw $s5, 32($a0) 21 | sw $s6, 36($a0) 22 | sw $s7, 40($a0) 23 | jr $ra 24 | move $v0, $zr 25 | .end setjmp_clone 26 | 27 | .ent longjmp_clone 28 | longjmp_clone: 29 | lw $ra, 0($a0) 30 | lw $gp, 44($a0) 31 | lw $sp, 4($a0) 32 | lw $fp, 8($a0) 33 | lw $s0, 12($a0) 34 | lw $s1, 16($a0) 35 | lw $s2, 20($a0) 36 | lw $s3, 24($a0) 37 | lw $s4, 28($a0) 38 | lw $s5, 32($a0) 39 | lw $s6, 36($a0) 40 | lw $s7, 40($a0) 41 | jr $ra 42 | move $v0, $a1 43 | .end longjmp_clone -------------------------------------------------------------------------------- /cef/vshctrl/patch_vsh.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #ifndef _PATCH_VSH_H 22 | #define _PATCH_VSH_H 23 | 24 | #include 25 | 26 | void PatchVshMain(SceModule *mod); 27 | void PatchSysconfPlugin(SceModule *mod); 28 | void PatchGamePlugin(SceModule *mod); 29 | void PatchUpdatePlugin(SceModule *mod); 30 | void PatchLoadExec(); 31 | 32 | #endif -------------------------------------------------------------------------------- /cef/satelite/menu.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MENU_H__ 20 | #define __MENU_H__ 21 | 22 | #include 23 | 24 | typedef struct { 25 | char *name; 26 | void (* function)(); 27 | char **options; 28 | int size_options; 29 | u8 *value; 30 | int exit; 31 | } Entry; 32 | 33 | void MenuReset(Entry *entries, int size_entries); 34 | void MenuExitFunction(int exit_mode); 35 | int MenuCtrl(); 36 | int MenuDisplay(); 37 | 38 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/string_clone.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __STRING_CLONE_H__ 20 | #define __STRING_CLONE_H__ 21 | 22 | char *strtok_r(char *string, const char *seps, char **context); 23 | char *strtok(char *str, const char *seps); 24 | void atob(char *a0, int *a1); 25 | size_t strspn(const char *s, const char *accept); 26 | size_t strcspn(const char *s, const char *reject); 27 | char *strncat(char *s, const char *append, size_t count); 28 | 29 | #endif -------------------------------------------------------------------------------- /cef/satelite/satelite.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __SATELITE_H__ 20 | #define __SATELITE_H__ 21 | 22 | #include 23 | 24 | #include 25 | 26 | #define ALL_CTRL (PSP_CTRL_SELECT|PSP_CTRL_START|PSP_CTRL_UP|PSP_CTRL_RIGHT|PSP_CTRL_DOWN|PSP_CTRL_LEFT| \ 27 | PSP_CTRL_L2|PSP_CTRL_R2|PSP_CTRL_TRIANGLE|PSP_CTRL_CIRCLE|PSP_CTRL_CROSS|PSP_CTRL_SQUARE|PSP_CTRL_HOME) 28 | 29 | 30 | extern u32 g_button_on; 31 | 32 | #endif // __SATELITE_H__ -------------------------------------------------------------------------------- /cef/vshctrl/virtualsfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #ifndef __VIRTUALSFO__ 22 | #define __VIRTUALSFO__ 23 | 24 | void virtual_sfo_init(); 25 | int virtual_sfo_size(); 26 | unsigned char* virtual_sfo_get(); 27 | void sfo_set_int_param(char *key, int value); 28 | void sfo_set_string_param(char *key, char* value); 29 | int sfo_get_int_param(char *key); 30 | char* sfo_get_string_param(char *key); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /cef/lib/libpspinferno_driver/inferno_driver.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // inferno_driver_XXXX.o 7 | 8 | #ifdef F_inferno_driver_0000 9 | IMPORT_START "inferno_driver",0x00090011 10 | #endif 11 | #ifdef F_inferno_driver_0001 12 | IMPORT_FUNC "inferno_driver",0xCF8299BE,infernoSetDiscType 13 | #endif 14 | #ifdef F_inferno_driver_0002 15 | IMPORT_FUNC "inferno_driver",0xC0736FD6,infernoCacheSetPolicy 16 | #endif 17 | #ifdef F_inferno_driver_0003 18 | IMPORT_FUNC "inferno_driver",0x8CDE7F95,infernoCacheInit 19 | #endif 20 | #ifdef F_inferno_driver_0004 21 | IMPORT_FUNC_WITH_ALIAS "inferno_driver",0xB6522E93,infernoSetUmdDelay,isoSetUmdDelay 22 | #endif 23 | #ifdef F_inferno_driver_0005 24 | IMPORT_FUNC_WITH_ALIAS "inferno_driver",0xFAEC97D6,infernoSetUmdDelay,isoSetUmdDelay 25 | #endif 26 | #ifdef F_inferno_driver_0006 27 | IMPORT_FUNC_WITH_ALIAS "inferno_driver",0xB573209C,isoReadUmdFile,infernoIsoRead 28 | #endif 29 | #ifdef F_inferno_driver_0007 30 | IMPORT_FUNC_WITH_ALIAS "inferno_driver",0x3F83B110,isoReadUmdFile,infernoIsoRead 31 | #endif 32 | #ifdef F_inferno_driver_0008 33 | IMPORT_FUNC "inferno_driver",0xD4FAB33F,isoGetTitleId 34 | #endif 35 | -------------------------------------------------------------------------------- /cef/recovery/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __UTILS__H__ 20 | #define __UTILS__H__ 21 | 22 | char *stristr(const char *str1, const char *str2); 23 | 24 | int WriteFile(char *file, void *buf, int size); 25 | int removePath(const char *path); 26 | int CreateDirectories(char **directories, int n); 27 | 28 | int GetRegistryData(const char *dir, const char *name, int type, void *data, int data_size); 29 | int SetRegistryData(const char *dir, const char *name, int type, void *data, int data_size); 30 | 31 | #endif -------------------------------------------------------------------------------- /cef/popcorn/popcorn.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __POPCORN_H__ 20 | #define __POPCORN_H__ 21 | 22 | #include 23 | #include 24 | 25 | #define KIRK7_HEADER_SIZE 0x14 26 | 27 | #define VERSION_KEY_SIZE 0x10 28 | #define CONTENT_ID_SIZE 0x30 29 | 30 | #define PGD_MAGIC 0x44475000 31 | #define LIBCRYPT_XOR_MAGIC 0x72D0EE59 32 | 33 | 34 | u32 searchLibCryptMagicWord(u8* disc_id); 35 | int initGlobals(); 36 | 37 | void PatchScePopsMgr(void); 38 | void PatchPops(SceModule *mod); 39 | 40 | #endif // __POPCORN_H__ -------------------------------------------------------------------------------- /cef/systemctrl/Makefile: -------------------------------------------------------------------------------- 1 | release: all 2 | psp-fixup-imports -m nid_map.txt $(TARGET).prx 3 | 4 | TARGET = systemctrl 5 | OBJS = main.o adrenaline.o executable_patch.o libraries_patch.o io_patch.o init_patch.o power_patch.o usbcam_patch.o utility_patch.o game_patch.o hide_patch.o sysmodpatches.o modpatches.o \ 6 | nodrm.o conf.o malloc.o kubridge.o systemctrl.o ttystdio.o LflashFatfmt.o setjmp_clone.o exports.o \ 7 | lz4.o minilzo.o sysclibforuser.o gameinfo.o plugin.o pgd.o utils.o storage_cache.o 8 | 9 | INCDIR = ../include 10 | CFLAGS = -Os -G0 -Wall -Wno-builtin-declaration-mismatch -fshort-wchar -fno-pic -mno-check-zero-division 11 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 12 | ASFLAGS = $(CFLAGS) 13 | PSP_FW_VERSION = 661 14 | 15 | ifdef SCTRL_DEBUG 16 | CFLAGS += -DDEBUG=$(SCTRL_DEBUG) 17 | endif 18 | 19 | ifdef DEBUG 20 | CFLAGS += -DDEBUG=$(DEBUG) 21 | endif 22 | 23 | BUILD_PRX = 1 24 | PRX_EXPORTS = exports.exp 25 | 26 | LIBDIR = ../lib 27 | LIBS = -lpspsemaphore -lpspamctrl_driver -lpspinit_kernel -lpspthreadman_kernel -lpspinterruptmanager_kernel -lpsploadexec_kernel -lpspsysclib_kernel -lpsploadcore_kernel -lpspmodulemgr_kernel -lpspusbcam_driver -lpspusb_driver -lpspchkreg_driver -lpsppower_driver -lpspdisplay_driver -lpspkermit_driver -lpspsysmem_kernel 28 | 29 | USE_KERNEL_LIBC = 1 30 | USE_KERNEL_LIBS = 1 31 | 32 | include ../lib/build_prx.mak -------------------------------------------------------------------------------- /adrenaline_version.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __ADRENALINE_VERSION_H__ 20 | #define __ADRENALINE_VERSION_H__ 21 | 22 | #define ADRENALINE_VERSION_MAJOR 7 23 | #define ADRENALINE_VERSION_MINOR 1 24 | #define ADRENALINE_VERSION_MICRO 7 25 | #define ADRENALINE_VERSION ((ADRENALINE_VERSION_MAJOR << 24) | (ADRENALINE_VERSION_MINOR << 16) | (ADRENALINE_VERSION_MICRO << 8)) 26 | 27 | #define xstr(s) #s 28 | #define str(s) xstr(s) 29 | #define ADRENALINE_VERSION_MAJOR_STR str(ADRENALINE_VERSION_MAJOR) 30 | #define ADRENALINE_VERSION_MINOR_STR str(ADRENALINE_VERSION_MINOR) 31 | #define ADRENALINE_VERSION_MICRO_STR str(ADRENALINE_VERSION_MICRO) 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /cef/recovery/main.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MAIN_H__ 20 | #define __MAIN_H__ 21 | 22 | #include "vgraph.h" 23 | 24 | //#define printf rDebugScreenPrintf 25 | 26 | extern AdrenalineConfig g_cfw_config; 27 | extern u32 select_color; 28 | extern u8 g_theme; 29 | extern u32 g_button_assign_value; 30 | 31 | void MainMenu(); 32 | void ToggleUSB(); 33 | void Configuration(); 34 | void RunRecovery(); 35 | void ResetSettings(); 36 | void Advanced(); 37 | void AdvancedConfiguration(); 38 | void CpuSpeed(); 39 | void SetButtonAssign(int sel); 40 | void SetWMA(int sel); 41 | void SetFlashPlayer(int sel); 42 | void Setrecovery_color(int sel); 43 | void Exit(); 44 | 45 | #endif -------------------------------------------------------------------------------- /cef/include/rebootexconfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline System Control (SystemControl API) 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #ifndef _REBOOTCONFIG_H_ 22 | #define _REBOOTCONFIG_H_ 23 | 24 | #include 25 | 26 | typedef struct { 27 | int bootfileindex; 28 | u8 iso_disc_type; 29 | 30 | char *module_after; 31 | void *buf; 32 | int size; 33 | int flags; 34 | 35 | u32 ram2; 36 | u32 ram11; 37 | 38 | char umdfilename[256]; 39 | char title_id[10]; 40 | 41 | // Maybe make it generic for the whole AdrenalineConfig 42 | u8 overwrite_use_psposk; 43 | u8 overwrite_use_psposk_to; 44 | } RebootexConfig; 45 | 46 | #endif // _REBOOTCONFIG_H_ -------------------------------------------------------------------------------- /cef/payloadex/main.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MAIN_H__ 20 | #define __MAIN_H__ 21 | 22 | typedef struct { 23 | u32 addr; 24 | u32 size; 25 | } SceSysmemPartInfo; 26 | 27 | typedef struct { 28 | u32 memSize; 29 | u32 unk4; 30 | u32 unk8; 31 | SceSysmemPartInfo other1; // 12 32 | SceSysmemPartInfo other2; // 20 33 | SceSysmemPartInfo vshell; // 28 34 | SceSysmemPartInfo scUser; // 36 35 | SceSysmemPartInfo meUser; // 44 36 | SceSysmemPartInfo extSc2Kernel; // 52 37 | SceSysmemPartInfo extScKernel; // 60 38 | SceSysmemPartInfo extMeKernel; // 68 39 | SceSysmemPartInfo extVshell; // 76 40 | } SceSysmemPartTable; 41 | 42 | #endif -------------------------------------------------------------------------------- /cef/rebootex/main.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MAIN_H__ 20 | #define __MAIN_H__ 21 | 22 | typedef struct { 23 | u32 addr; 24 | u32 size; 25 | } SceSysmemPartInfo; 26 | 27 | typedef struct { 28 | u32 memSize; 29 | u32 unk4; 30 | u32 unk8; 31 | SceSysmemPartInfo other1; // 12 32 | SceSysmemPartInfo other2; // 20 33 | SceSysmemPartInfo vshell; // 28 34 | SceSysmemPartInfo scUser; // 36 35 | SceSysmemPartInfo meUser; // 44 36 | SceSysmemPartInfo extSc2Kernel; // 52 37 | SceSysmemPartInfo extScKernel; // 60 38 | SceSysmemPartInfo extMeKernel; // 68 39 | SceSysmemPartInfo extVshell; // 76 40 | } SceSysmemPartTable; 41 | 42 | #endif -------------------------------------------------------------------------------- /docs/src/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | - [Adrenaline](./01-Intro.md) 4 | 5 | # User Manual 6 | 7 | - [Installation and Update](./02-Install.md) 8 | - [Adrenaline Menu](./03-AdrenalineMenu.md) 9 | - [Save State](./03-AdrenalineMenu/01-SaveState.md) 10 | - [Adrenaline App Settings](./03-AdrenalineMenu/02-AdrenalineSettings.md) 11 | - [PSP Homebrew Support](./04-HomebrewSupport.md) 12 | - [PSP Plugins](./04-HomebrewSupport/01-Plugin.md) 13 | - [Plugin Configuration Format](./04-HomebrewSupport/02-PluginConfigFormat.md) 14 | - [Notable Plugins](./04-HomebrewSupport/03-NotablePlugins.md) 15 | - [PSP Playback](./05-PSPPlayback.md) 16 | - [Compressed ISO Formats](./05-PSPPlayback/01-CompressedIsoFormats.md) 17 | - [Inferno Driver](./05-PSPPlayback/02-Inferno.md) 18 | - [March33 Driver](./05-PSPPlayback/03-March33.md) 19 | - [Galaxy Controller](./05-PSPPlayback/04-Galaxy.md) 20 | - [PS1 Playback](./06-PS1Playback.md) 21 | - [VSH Menu](./07-VSHMenu.md) 22 | - [Adrenaline Custom Firmware Settings](./08-CfwConfiguration.md) 23 | - [Recovery Menu](./09-RecoveryMenu.md) 24 | - [XMB CFW Menus](./10-XmbCfwMenus.md) 25 | 26 | # Developer Manual 27 | - [Contributing](./11-Contributing.md) 28 | - [Using CFW APIs](./12-UsingCFWAPI.md) 29 | 30 | 31 | [Glossary](./XX-Glossary.md) 32 | [Compatibility Issues](./XX-CompatIssues.md) 33 | [Fun Facts and FAQ](./XX-FAQ.md) 34 | [Changelog](./XX-Changelog.md) 35 | [Credits](./XX-Credits.md) 36 | -------------------------------------------------------------------------------- /cef/xmbctrl/options.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef __XMBCTRL_OPTIONS_H__ 4 | #define __XMBCTRL_OPTIONS_H__ 5 | 6 | static char *g_plugins_options[] = {"Off", "On", "Remove"}; 7 | 8 | static char *g_cpuspeeds_options[] = { 9 | "Default", 10 | "20/10", 11 | "75/37", 12 | "100/50", 13 | "133/66", 14 | "222/111", 15 | "266/133", 16 | "300/150", 17 | "333/166" 18 | }; 19 | 20 | static char *g_umd_driver_options[] = { 21 | "Inferno", 22 | "M33 Driver", 23 | "Sony NP9660", 24 | }; 25 | 26 | static char *g_region_options[] = { 27 | "Disabled", "Japan", "America", "Europe", "Korea", 28 | "United Kingdom", "Latin America", "Australia", "Hong Kong", "Taiwan", 29 | "Russia", "China", "Debug I", "Debug II" 30 | }; 31 | 32 | static char *g_highmem_options[] = {"Disabled", "Stable", "Max"}; 33 | 34 | static char *g_use_extended_color_option[] = {"Disabled", "02g", "03g"}; 35 | 36 | static char *g_boolean_options[] = {"Off", "On"}; 37 | 38 | static char *g_iso_cache_options[] = {"LRU", "RR", "Off"}; 39 | static char *g_iso_cache_num_options[] = {"Auto", "1", "2", "4", "8", "16", "32", "64", "128"}; 40 | static char *g_iso_cache_size_options[] = {"Auto", "1KB", "2KB", "4KB", "8KB", "16KB", "32KB", "64KB"}; 41 | static char *g_iso_umd_seek_read_options[] = {"Auto", "1x", "2x", "3x", "4x"}; 42 | 43 | static char *g_hide_pics_options[] = {"Disabled", "Both", "PIC0 Only", "PIC1 Only"}; 44 | 45 | #endif -------------------------------------------------------------------------------- /docs/src/XX-Credits.md: -------------------------------------------------------------------------------- 1 | # Credits 2 | --- 3 | 4 | - `Ancient gods` of the PSP scene: M33 Team, Proxima, zecoxao, among other tinkerers for starting it all. 5 | - `M33 Team`: Dark_AleX, adrahil, Mathieulh for creating M33 CFW and open-sourcing it. 6 | - `Team Molecule`: yifanlu, xyz, Proxima, Davee for Henkaku. 7 | - `TheFl0w` (aka. `Total_Noob`) for his advancements and research in CFW development, starting Adrenaline, and overall contributions to the scene. 8 | - `xerpi` for vita2dlib and VITA reversing work. 9 | - `qwikrazor87` for his hard work on reversing DRM. 10 | - `frangarcj` for graphics filtering on Adrenaline. 11 | - `Rinnegatamante` for f.lux on Adrenaline. 12 | - `meetpatty` for fixing autoboot on Adrenaline. 13 | - `ARK CFW` team: Acid_Snake, Krazynez, for Inferno 2, being a good fellow CFW-makers and helping in many ways. 14 | - And for allowing us to reuse parts of ARK-4 documentation for things that both Adrenaline and ARK CFW support (this reduced so much time used for writing this doc 😁) 15 | - `Codestation` for his incredible work improving CSO speeds and creating the ZSO format. 16 | - `UnkownBrackets` (maxcso) for creating the CSOv2 format. 17 | - `Cat` (aka. `isage`) for everything that he has done for Adrenaline and continued improving it along the way. 18 | - `GrayJack` for everything that they have done for Adrenaline and help Cat maintain it. 19 | - Every other giant shoulder we are standing on. 20 | -------------------------------------------------------------------------------- /cef/systemctrl/libraries_patch.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __LIBRARIES_PATCH_H__ 20 | #define __LIBRARIES_PATCH_H__ 21 | 22 | typedef struct { 23 | u32 nid; 24 | void *function; 25 | } MissingNid; 26 | 27 | typedef struct { 28 | char *libname; 29 | MissingNid *nid; 30 | int n_nid; 31 | } MissingNidList; 32 | 33 | extern MissingNid LoadCoreForKernel_nids[]; 34 | 35 | extern int setjmp_clone(); 36 | extern void longjmp_clone(); 37 | 38 | extern int (* aLinkLibEntries)(void *lib); 39 | extern int (* search_nid_in_entrytable)(void *lib, u32 nid, int unk, int nidSearchOption); 40 | 41 | int aLinkLibEntriesPatched(void *lib); 42 | int search_nid_in_entrytable_patched(void *lib, u32 nid, void *stub, int count); 43 | 44 | #endif -------------------------------------------------------------------------------- /cef/include/common.h: -------------------------------------------------------------------------------- 1 | #ifndef __COMMON_H__ 2 | #define __COMMON_H__ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | 34 | #include 35 | #include 36 | 37 | // If COMMON_H_SYSCLIB_USER is defined, it includes the sysclib_user.h definitions 38 | // And other other headers from STD C must be manually included if necessary 39 | #ifdef COMMON_H_SYSCLIB_USER 40 | #include 41 | #include 42 | #else 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #endif 50 | 51 | #include "../../adrenaline_compat.h" 52 | 53 | #include 54 | 55 | int sctrlGetUsbState(); 56 | int sctrlStartUsb(); 57 | int sctrlStopUsb(); 58 | 59 | #endif -------------------------------------------------------------------------------- /cef/systemctrl/main.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MAIN_H__ 20 | #define __MAIN_H__ 21 | 22 | #include 23 | 24 | #include "utils.h" 25 | 26 | extern RebootexConfig rebootex_config; 27 | extern AdrenalineConfig config; 28 | extern STMOD_HANDLER module_handler; 29 | 30 | u32 sctrlHENFindImport(const char *szMod, const char *szLib, u32 nid); 31 | 32 | 33 | int sceKermitSendRequest(SceKermitRequest *request, u32 mode, u32 cmd, u32 args, u32 is_callback, u64 *resp); 34 | int sceKermitRegisterVirtualIntrHandler(int num, int (* handler)()); 35 | 36 | int sceKermitMemorySetArgument(SceKermitRequest *request, int argc, const void *data, int size, int mode); 37 | 38 | 39 | int LoadExecForKernel_AA2029EC(); 40 | 41 | int sceChkregCheckRegion(); 42 | int sceChkregGetPsCode(u8 *pscode); 43 | 44 | u32 sctrlHENFakeDevkitVersion(); 45 | 46 | #endif -------------------------------------------------------------------------------- /docs/src/10-XmbCfwMenus.md: -------------------------------------------------------------------------------- 1 | # XMB CFW Menus 2 | --- 3 | 4 | Adrenaline adds extra menus to the XMB that allow the user to change CFW settings and work as a plugin manager. 5 | 6 | ## ★ Adrenaline CFW settings 7 | --- 8 | 9 | This menu can be found in the `Settings` section of the XMB. It allows modifying the [Adrenaline CFW Settings](./08-CfwConfiguration.md). 10 | 11 | Some options may require that the system be restarted before taking effect. This will be informed in the menu (third image). 12 | 13 | Advanced settings are marked with the `▲` symbol at the start. 14 | 15 |

16 | 17 | 18 | 19 |

20 | 21 | ## ★ Plugins Manager 22 | --- 23 | 24 | This menu can be found in the `Settings` section of the XMB. It allows modifying the [plugin configuration](./04-HomebrewSupport/02-PluginConfigFormat.md) directly from the XMB. 25 | 26 | Once opened, it will show the list of plugins, their runlevels, and their path. Clicking the enter button allows to select the state of the plugin entry (`On`, `Off`, `Remove`). 27 | 28 | The `Remove` option will remove the configuration line related to the plugin configuration file and restart the XMB. 29 | 30 |

31 | 32 | 33 | 34 |

35 | 36 | -------------------------------------------------------------------------------- /vsh/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) 4 | if(DEFINED ENV{VITASDK}) 5 | set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file") 6 | else() 7 | message(FATAL_ERROR "Please define VITASDK to point to your SDK path!") 8 | endif() 9 | endif() 10 | 11 | project(adrenaline_vsh) 12 | include("${VITASDK}/share/vita.cmake" REQUIRED) 13 | 14 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-q -Wall -O3 -nostdlib") 15 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") 16 | 17 | add_executable(adrenaline_vsh 18 | main.c 19 | ) 20 | 21 | target_link_directories(adrenaline_vsh PRIVATE ${CMAKE_BINARY_DIR}/kernel) 22 | 23 | target_link_libraries(adrenaline_vsh 24 | AdrenalineKernel_stub 25 | taihen_stub 26 | SceLibKernel_stub 27 | SceAppMgr_stub 28 | SceKernelThreadMgr_stub 29 | SceLsdb_stub_weak 30 | SceIofilemgr_stub 31 | SceAVConfig_stub 32 | ) 33 | 34 | vita_create_self(adrenaline_vsh.suprx adrenaline_vsh CONFIG exports.yml UNSAFE) 35 | 36 | #vita_create_stubs(vstubs adrenaline_vsh ${CMAKE_CURRENT_SOURCE_DIR}/exports.yml) 37 | 38 | #add_custom_target(copy 39 | # COMMAND cp adrenaline_vsh.suprx F:/app/PSPEMUCFW/sce_module/adrenaline_vsh.suprx 40 | # DEPENDS adrenaline_vsh.suprx 41 | #) 42 | 43 | #add_custom_target(pkg 44 | # COMMAND cp adrenaline_vsh.suprx ../../bubble/pkg/sce_module/adrenaline_vsh.suprx 45 | # DEPENDS adrenaline_vsh.suprx 46 | #) 47 | 48 | add_custom_target(vsh_all 49 | ALL 50 | DEPENDS adrenaline_vsh.suprx-self 51 | ) 52 | -------------------------------------------------------------------------------- /cef/recovery/menu.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __MENU_H__ 20 | #define __MENU_H__ 21 | 22 | typedef struct { 23 | char *name; 24 | void (* function)(int sel); 25 | char **options; 26 | int size_options; 27 | u8 *value; 28 | } Entry; 29 | 30 | typedef struct { 31 | u8 accent_color; // arrows, first letters 32 | u8 text_color; // unselected text in main area 33 | u8 main_bg; // main area bg 34 | 35 | u8 select_text_color; // selected menu item 36 | u8 select_text_bg; // selected menu item bg 37 | 38 | u8 panel_text; // top/bottom panels 39 | u8 panel_bg; // top/bottom panels 40 | u8 panel_select_text; // top panel 41 | u8 panel_select_bg; // top panel 42 | u8 dialog_text; // message dialog 43 | u8 dialog_bg; // message dialog 44 | 45 | u8 default_value_color; 46 | u8 changed_value_color; 47 | } Theme; 48 | 49 | void MenuLoop(); 50 | void UpdatePluginCount(int count); 51 | void ShowDialog(char* message); 52 | 53 | #endif -------------------------------------------------------------------------------- /docs/src/03-AdrenalineMenu.md: -------------------------------------------------------------------------------- 1 | # Adrenaline Menu 2 | --- 3 | 4 | Adrenaline Menu is a menu that you access Adrenaline information, Adrenaline Application settings, the save state feature, and more. 5 | 6 | The Adrenaline Menu 7 | 8 | To open the Adrenaline menu, you have to: 9 | 10 | 1. Hold the `HOME` button to open the PSVita/PSTV's **Quick Menu** 11 | 2. Click on the `Settings` button on the screen 12 | 13 | Once opened, you can notice it has four tabs: `Main`, `States`, `Settings`, and `About`. 14 | 15 |

16 | 17 | 18 |

19 | 20 | ## Main tab 21 | 22 | This tab has the launched application information (title and title ID) and the most basic options, detailed bellow. 23 | 24 | - `Enter Standby Mode`: Make the system enter standby mode 25 | - `Open Official Settings`: Opens the official PSVita/PSTV PSPemu game settings 26 | - `Exit PspEmu Application`: Exits the application 27 | - `Exit Adrenaline Menu`: Closes the menu 28 | 29 | ## States 30 | 31 | This tab has the front UI for the native save state feature of Adrenaline. You can find more information on this feature on the [Save State](./03-AdrenalineMenu/01-SaveState.md) page. 32 | 33 | ## Settings 34 | 35 | This tab has the Adrenaline App configuration options. You can find more information on each of the settings at [Adrenaline Settings](./03-AdrenalineMenu/02-AdrenalineSettings.md) page. 36 | 37 | ## About 38 | 39 | This tab shows the Adrenaline version and credits. -------------------------------------------------------------------------------- /user/pops.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __POPS_H__ 20 | #define __POPS_H__ 21 | 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | 28 | int ScePspemuInitAudioOutPatched(); 29 | int sceAudioOutOpenPortPatched(int type, int len, int freq, int mode); 30 | int sceAudioOutOutputPatched(int port, const void *buf); 31 | int ScePspemuDecodePopsAudioPatched(int a1, int a2, int a3, int a4); 32 | int sceCtrlPeekBufferNegative2Patched(int port, SceCtrlData *pad_data, int count); 33 | char *ScePspemuGetTitleidPatched(); 34 | int ScePspemuConvertAddressPatched(uint32_t addr, int mode, uint32_t cache_size); 35 | SceUID sceIoOpenPatched(const char *file, int flags, SceMode mode); 36 | int sceIoGetstatPatched(const char *file, SceIoStat *stat); 37 | int sceDisplaySetFrameBufForCompatPatched(int a1, int a2, int a3, int a4, int a5, SceDisplayFrameBuf *pParam); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /bubble/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) 4 | if(DEFINED ENV{VITASDK}) 5 | set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file") 6 | else() 7 | message(FATAL_ERROR "Please define VITASDK to point to your SDK path!") 8 | endif() 9 | endif() 10 | 11 | project(adrenaline) 12 | include("${VITASDK}/share/vita.cmake" REQUIRED) 13 | set(VITA_APP_NAME "Adrenaline") 14 | set(VITA_TITLEID "PSPEMUCFW") 15 | 16 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-q -Wall -O3") 17 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") 18 | set(VITA_MAKE_FSELF_FLAGS "${VITA_MAKE_FSELF_FLAGS} -a 0x2800000000000001") 19 | 20 | add_executable(adrenaline 21 | main.c 22 | utils.c 23 | scr_printf.c 24 | font.c 25 | ) 26 | 27 | target_link_libraries(adrenaline 28 | taihen_stub 29 | SceAppMgr_stub 30 | SceCtrl_stub 31 | SceDisplay_stub 32 | SceHttp_stub 33 | SceNet_stub 34 | SceNetCtl_stub 35 | SceSysmodule_stub 36 | ScePgf_stub_weak 37 | ) 38 | 39 | vita_create_self(eboot.bin adrenaline UNSAFE) 40 | vita_create_vpk(Adrenaline.vpk ${VITA_TITLEID} eboot.bin 41 | VERSION ${VITA_VERSION} 42 | NAME ${VITA_APP_NAME} 43 | FILE pkg/sce_sys sce_sys 44 | pkg/eboot.pbp eboot.pbp 45 | pkg/frame.xml frame.xml 46 | ${CMAKE_BINARY_DIR}/kernel/adrenaline_kernel.skprx sce_module/adrenaline_kernel.skprx 47 | ${CMAKE_BINARY_DIR}/user/adrenaline_user.suprx sce_module/adrenaline_user.suprx 48 | ${CMAKE_BINARY_DIR}/vsh/adrenaline_vsh.suprx sce_module/adrenaline_vsh.suprx 49 | ${CMAKE_BINARY_DIR}/usbdevice/usbdevice.skprx sce_module/usbdevice.skprx 50 | ) 51 | -------------------------------------------------------------------------------- /kernel/utils.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | #include 24 | #include 25 | 26 | void debug_printf(char *msg) { 27 | SceUID fd = ksceIoOpen("ux0:data/adrenaline_kernel_log.txt", SCE_O_WRONLY | SCE_O_CREAT | SCE_O_APPEND, 0777); 28 | if (fd >= 0) { 29 | ksceIoWrite(fd, msg, strlen(msg)); 30 | ksceIoClose(fd); 31 | } 32 | } 33 | 34 | int ReadFile(char *file, void *buf, int size) { 35 | SceUID fd = ksceIoOpen(file, SCE_O_RDONLY, 0); 36 | if (fd < 0) { 37 | return fd; 38 | } 39 | 40 | int read = ksceIoRead(fd, buf, size); 41 | 42 | ksceIoClose(fd); 43 | return read; 44 | } 45 | 46 | int WriteFile(char *file, void *buf, int size) { 47 | SceUID fd = ksceIoOpen(file, SCE_O_WRONLY | SCE_O_CREAT | SCE_O_TRUNC, 0777); 48 | if (fd < 0) { 49 | return fd; 50 | } 51 | 52 | int written = ksceIoWrite(fd, buf, size); 53 | 54 | ksceIoClose(fd); 55 | return written; 56 | } -------------------------------------------------------------------------------- /cef/vshctrl/isofs_driver/isofs_driver.h: -------------------------------------------------------------------------------- 1 | #ifndef __ISOFS_DRIVER_H__ 2 | #define __ISOFS_DRIVER_H__ 3 | 4 | #include "umd9660_driver.h" 5 | 6 | #define ISO9660_FILEFLAGS_FILE 1 7 | #define ISO9660_FILEFLAGS_DIR 2 8 | 9 | typedef struct __attribute__((packed)) { 10 | // Directory record length. 11 | u8 len_dr; 12 | // Extended attribute record length. 13 | u8 XARlength; 14 | // First logical block where file starts. 15 | u32 lsbStart; 16 | u32 msbStart; 17 | // Number of bytes in file. 18 | u32 lsbDataLength; 19 | u32 msbDataLength; 20 | // Since 1900. 21 | u8 year; 22 | u8 month; 23 | u8 day; 24 | u8 hour; 25 | u8 minute; 26 | u8 second; 27 | // 15-minute offset from Universal Time. 28 | u8 gmtOffse; 29 | // Attributes of a file or directory. 30 | u8 fileFlags; 31 | // Used for interleaved files. 32 | u8 interleaveSize; 33 | // Used for interleaved files. 34 | u8 interleaveSkip; 35 | // Which volume in volume set contains this file. 36 | u16 lsbVolSetSeqNum; 37 | u16 msbVolSetSeqNum; 38 | // Length of file identifier that follows. 39 | u8 len_fi; 40 | // File identifier: actual is len_fi. 41 | // Contains extra blank byte if len_fi odd. 42 | char fi; 43 | } Iso9660DirectoryRecord; 44 | 45 | typedef struct { 46 | 47 | int opened; 48 | int lba; 49 | int filesize; 50 | int filepointer; 51 | int olddirlen; 52 | int eof; 53 | } FileHandle; 54 | 55 | int isofs_init(); 56 | int isofs_fastinit(); 57 | int isofs_exit(); 58 | int isofs_reset(); 59 | int isofs_open(char *fullpath, int flags, SceMode mode); 60 | int isofs_close(SceUID fd); 61 | int isofs_read(SceUID fd, char *data, int len); 62 | SceOff isofs_lseek(SceUID fd, SceOff ofs, int whence); 63 | int isofs_getstat(const char *file, SceIoStat *stat); 64 | 65 | #endif -------------------------------------------------------------------------------- /docs/src/XX-CompatIssues.md: -------------------------------------------------------------------------------- 1 | # Known Compatibility Issues 2 | --- 3 | 4 | This is a list of compatibility issues on Adrenaline with games, application, homebrews and plugins. 5 | 6 | ## EyePet 7 | --- 8 | 9 | The camera is not working in this game. That seems to be caused by some buffer in PSPemu that somehow gets invalid. 10 | 11 | There are currently no way to solve the issue with this game. 12 | 13 | ## Titles that ISO need to use `BOOT.BIN` 14 | --- 15 | 16 | Titles in the ISO/Compressed ISO format that are decrypted or are demo, prototype or modded version of a game will need to be launched while [holding the `R` trigger](./05-PSPPlayback.md#execute-bootbin-instead-of-ebootbin), otherwise the game won't launch properly or crash the system. 17 | 18 | 19 | ## Games with Network issues (requires re-testing) 20 | --- 21 | 22 | ### Hang when trying to get to the AP connection screen 23 | - `Twisted Metal Head On` 24 | - `NBA` 25 | - `ATV Blazin Fury` 26 | 27 | ### Others 28 | 29 | Games that use GameMode API - partial list of games here. 30 | - `Burnout Dominator`: Game becomes too fast for everyone if a Vita player joins, also happens if one of the PSPs is overclocked (video demonstration here). 31 | - `Lego Indiana Jones 2`: Getting a wireless error (Adrenaline) or the game freezes up (ARK4). 32 | - `Street Riders`/`Asphalt: Urban GT 2`: Can't see other consoles in lobby (same developer made both games so its most likely the same issue). 33 | - `CSPSP`: Game gets a blue screen/crash when entering multiplayer , note that the game works fine on Adrenaline. 34 | - `Sega Rally Revo`: Game disconnects after it starts in infrastructure mode only. 35 | 36 | Some network issues may be fixed with the updated [PRO Online](https://github.com/Kethen/aemu). 37 | -------------------------------------------------------------------------------- /cef/systemctrl/LflashFatfmt.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | #include "main.h" 22 | 23 | int removePath(const char *path) { 24 | SceUID dfd = sceIoDopen(path); 25 | if (dfd >= 0) { 26 | int res = 0; 27 | 28 | do { 29 | SceIoDirent dir; 30 | memset(&dir, 0, sizeof(SceIoDirent)); 31 | 32 | res = sceIoDread(dfd, &dir); 33 | if (res > 0) { 34 | if (dir.d_name[0] != '.') { 35 | char new_path[128]; 36 | sprintf(new_path, "%s/%s", path, dir.d_name); 37 | removePath(new_path); 38 | } 39 | } 40 | } while (res > 0); 41 | 42 | sceIoDclose(dfd); 43 | 44 | sceIoRmdir(path); 45 | } else { 46 | sceIoRemove(path); 47 | } 48 | 49 | return 0; 50 | } 51 | 52 | int sceLflashFatfmtStartFatfmt(int argc, char *argv[]) { 53 | if (argv) { 54 | if (strncmp(argv[1], "lflash0:0,", 10) == 0) { 55 | int num = argv[1][10] - '0'; 56 | 57 | char path[128]; 58 | sprintf(path, "ms0:/__ADRENALINE__/flash%d", num); 59 | 60 | removePath(path); 61 | sceIoMkdir(path, 0777); 62 | } 63 | } 64 | 65 | return 0; 66 | } -------------------------------------------------------------------------------- /cef/lib/libpspvshctrl/VshCtrl.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // VshCtrl_XXXX.o 7 | 8 | #ifdef F_VshCtrl_0000 9 | IMPORT_START "VshCtrlLib",0x40090000 10 | #endif 11 | #ifdef F_VshCtrl_0001 12 | IMPORT_FUNC "VshCtrlLib",0xFD26DA72,vctrlVSHRegisterVshMenu 13 | #endif 14 | #ifdef F_VshCtrl_0002 15 | IMPORT_FUNC "VshCtrlLib",0xCD6B3913,vctrlVSHExitVSHMenu 16 | #endif 17 | #ifdef F_VshCtrl_0003 18 | IMPORT_FUNC "VshCtrlLib",0x0B8D8F45,vctrlGetRegistryValue 19 | #endif 20 | #ifdef F_VshCtrl_0004 21 | IMPORT_FUNC "VshCtrlLib",0x3A65060D,vctrlSetRegistryValue 22 | #endif 23 | 24 | 25 | // #ifdef F_VshCtrl_0003 26 | // IMPORT_FUNC "VshCtrlLib",0xC1BE3884,vctrlVSHUpdateConfig 27 | // #endif 28 | // #ifdef F_VshCtrl_0004 29 | // IMPORT_FUNC "VshCtrlLib",0xC1FED158,vshDetectDiscType 30 | // #endif 31 | // #ifdef F_VshCtrl_0005 32 | // IMPORT_FUNC "VshCtrlLib",0x12DC7CF4,fakeParamInexistance 33 | // #endif 34 | // #ifdef F_VshCtrl_0006 35 | // IMPORT_FUNC "VshCtrlLib",0x36197FB3,vshCtrlDeleteHibernation 36 | // #endif 37 | // #ifdef F_VshCtrl_0007 38 | // IMPORT_FUNC "VshCtrlLib",0xF1E6A46D,isoOpen 39 | // #endif 40 | // #ifdef F_VshCtrl_0008 41 | // IMPORT_FUNC "VshCtrlLib",0xC4B3078E,isoRead 42 | // #endif 43 | // #ifdef F_VshCtrl_0009 44 | // IMPORT_FUNC "VshCtrlLib",0x4DA81CDD,isoClose 45 | // #endif 46 | // #ifdef F_VshCtrl_0010 47 | // IMPORT_FUNC "VshCtrlLib",0xE2498CEC,isoGetFileInfo 48 | // #endif 49 | // #ifdef F_VshCtrl_0011 50 | // IMPORT_FUNC "VshCtrlLib",0x4BDA734F,isoGetTotalSectorSize 51 | // #endif 52 | // #ifdef F_VshCtrl_0012 53 | // IMPORT_FUNC "VshCtrlLib",0x29154CE0,has_prometheus_module 54 | // #endif 55 | // #ifdef F_VshCtrl_0013 56 | // IMPORT_FUNC "VshCtrlLib",0x39F5F78E,has_update_file 57 | // #endif 58 | 59 | -------------------------------------------------------------------------------- /cef/vshctrl/patch_io.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #ifndef _PATCH_IO_H 22 | #define _PATCH_IO_H 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | int GetIsoIndex(const char *file); 29 | 30 | SceUID sceIoDopenPatched(const char *dirname); 31 | int sceIoDreadPatched(SceUID fd, SceIoDirent *dir); 32 | int sceIoDclosePatched(SceUID fd); 33 | 34 | SceUID sceIoOpenPatched(const char *file, int flags, SceMode mode); 35 | int sceIoClosePatched(SceUID fd); 36 | int sceIoReadPatched(SceUID fd, void *data, SceSize size); 37 | SceOff sceIoLseekPatched(SceUID fd, SceOff offset, int whence); 38 | int sceIoLseek32Patched(SceUID fd, int offset, int whence); 39 | int sceIoGetstatPatched(const char *file, SceIoStat *stat); 40 | int sceIoChstatPatched(const char *file, SceIoStat *stat, int bits); 41 | int sceIoRemovePatched(const char *file); 42 | int sceIoRmdirPatched(const char *path); 43 | int sceIoMkdirPatched(const char *dir, SceMode mode); 44 | 45 | void IoPatches(); 46 | 47 | #endif -------------------------------------------------------------------------------- /bubble/utils.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | int debugPrintf(char *text, ...) { 28 | va_list list; 29 | char string[512]; 30 | 31 | va_start(list, text); 32 | vsprintf(string, text, list); 33 | va_end(list); 34 | 35 | SceUID fd = sceIoOpen("ux0:data/adrenaline_bubble_log.txt", SCE_O_WRONLY | SCE_O_CREAT | SCE_O_APPEND, 0777); 36 | if (fd >= 0) { 37 | sceIoWrite(fd, string, strlen(string)); 38 | sceIoClose(fd); 39 | } 40 | 41 | return 0; 42 | } 43 | 44 | int ReadFile(char *file, void *buf, int size) { 45 | SceUID fd = sceIoOpen(file, SCE_O_RDONLY, 0); 46 | if (fd < 0) 47 | return fd; 48 | 49 | int read = sceIoRead(fd, buf, size); 50 | 51 | sceIoClose(fd); 52 | return read; 53 | } 54 | 55 | int WriteFile(char *file, void *buf, int size) { 56 | SceUID fd = sceIoOpen(file, SCE_O_WRONLY | SCE_O_CREAT | SCE_O_TRUNC, 0777); 57 | if (fd < 0) 58 | return fd; 59 | 60 | int written = sceIoWrite(fd, buf, size); 61 | 62 | sceIoClose(fd); 63 | return written; 64 | } -------------------------------------------------------------------------------- /user/includes/vflux_v.h: -------------------------------------------------------------------------------- 1 | #ifndef __vflux_v__ 2 | #define __vflux_v__ 3 | 4 | // static unsigned int size_vflux_v = 284; 5 | static unsigned char vflux_v[] __attribute__((aligned(16))) = { 6 | 0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x1a, 0x01, 0x00, 0x00, 0xfa, 0xa4, 0x63, 0xbe, 7 | 0x5c, 0xd9, 0x77, 0x28, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 8 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 9 | 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00, 10 | 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 11 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 12 | 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 13 | 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 14 | 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 15 | 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 16 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 17 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 18 | 0x00, 0x07, 0x44, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x40, 0x09, 0x00, 0xf8, 0x02, 0x80, 0x81, 0xaf, 19 | 0x9c, 0x0d, 0x80, 0x40, 0x00, 0xa2, 0x3d, 0xc0, 0x81, 0x30, 0x90, 0x18, 0x00, 0x00, 0x20, 0xa0, 20 | 0x00, 0x50, 0x27, 0xfb, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 21 | 0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 22 | 0x01, 0xe4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x50, 0x6f, 0x73, 23 | 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x77, 0x76, 0x70, 0x00, 0x00, 0x00, 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /cef/galaxy/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline Galaxy Controller 3 | Copyright (C) 2025, GrayJack 4 | Copyright (C) 2021, PRO CFW 5 | Copyright (C) 2008, M33 Team Developers (Dark_Alex, adrahil, Mathieulh) 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #include 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | #define _ADRENALINE_LOG_IMPL_ 28 | #include 29 | 30 | #include "galaxy.h" 31 | #include "../bits/iso_common.h" 32 | 33 | PSP_MODULE_INFO("EPI-GalaxyController", 0x1006, 1, 0); 34 | 35 | int module_start(SceSize args, void* argp) { 36 | logInit("ms0:/log_galaxy.txt"); 37 | logmsg("Galaxy driver started...\n") 38 | 39 | // Get ISO path 40 | memset(g_iso_fn, 0, sizeof(g_iso_fn)); 41 | strncpy(g_iso_fn, sctrlSEGetUmdFile(), sizeof(g_iso_fn)-1); 42 | logmsg3("[INFO] UMD File: %s\n", g_iso_fn); 43 | 44 | // Leave NP9660 alone, we got no ISO 45 | if(g_iso_fn[0] == 0) { 46 | return 1; 47 | } 48 | 49 | PatchThreadManager(); 50 | 51 | // ISO File Descriptor 52 | int fd = -1; 53 | 54 | // Wait for MS 55 | while (1) { 56 | fd = sceIoOpen(g_iso_fn, PSP_O_RDONLY, 0); 57 | 58 | if (fd >= 0) { 59 | break; 60 | } 61 | 62 | // Delay and retry 63 | sceKernelDelayThread(10000); 64 | } 65 | 66 | sceIoClose(fd); 67 | 68 | return 0; 69 | } 70 | 71 | -------------------------------------------------------------------------------- /cef/popcorn/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline PopCorn 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2025, GrayJack 5 | 6 | This program is free software: you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License as published by 8 | the Free Software Foundation, either version 3 of the License, or 9 | (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program. If not, see . 18 | */ 19 | 20 | #include 21 | 22 | #include 23 | #include 24 | 25 | #define _ADRENALINE_LOG_IMPL_ 26 | #include 27 | 28 | #include "popcorn.h" 29 | 30 | PSP_MODULE_INFO("EPI-PopcornManager", 0x1007, 1, 1); 31 | 32 | STMOD_HANDLER previous; 33 | 34 | int (* setCompiledSdkVersion)(u32 ver) = NULL; 35 | static void setPsxCompiledFwVersion(u32 version) { 36 | if (NULL == setCompiledSdkVersion) { 37 | setCompiledSdkVersion = (void*)sctrlHENFindFunction("sceSystemMemoryManager", "SysMemUserForUser", 0x358CA1BB); 38 | } 39 | 40 | setCompiledSdkVersion(version); 41 | } 42 | 43 | int OnModuleStart(SceModule *mod) { 44 | if (strcmp(mod->modname, "pops") == 0) { 45 | PatchPops(mod); 46 | } 47 | 48 | if (!previous){ 49 | return 0; 50 | } 51 | 52 | return previous(mod); 53 | } 54 | 55 | int module_start(SceSize args, void *argp) { 56 | logInit("ms0:/log_popcorn.txt"); 57 | logmsg("Popcorn started...\n"); 58 | 59 | int res = initGlobals(); 60 | if (res < 0) { 61 | return res; 62 | } 63 | 64 | setPsxCompiledFwVersion(FW_661); 65 | 66 | previous = sctrlHENSetStartModuleHandler(OnModuleStart); 67 | 68 | PatchScePopsMgr(); 69 | 70 | return 0; 71 | } -------------------------------------------------------------------------------- /user/includes/vflux_f.h: -------------------------------------------------------------------------------- 1 | #ifndef __vflux_f__ 2 | #define __vflux_f__ 3 | 4 | // static unsigned int size_vflux_f = 288; 5 | static unsigned char vflux_f[] __attribute__((aligned(16))) = { 6 | 0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x33, 0xa4, 0x38, 0xca, 7 | 0x36, 0x96, 0xde, 0x11, 0xc1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 8 | 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 9 | 0x00, 0x00, 0x05, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 10 | 0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 11 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 12 | 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 13 | 0x01, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 14 | 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 15 | 0x02, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 16 | 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x80, 0x1d, 0xa0, 17 | 0x3e, 0x0c, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xfa, 18 | 0x01, 0x00, 0x00, 0x60, 0x04, 0x00, 0x81, 0x40, 0x02, 0x00, 0x20, 0x60, 0x04, 0x00, 0x81, 0x40, 19 | 0x84, 0x00, 0x0a, 0x30, 0x81, 0x06, 0x88, 0x48, 0x04, 0x00, 0x0a, 0x30, 0x81, 0x06, 0x88, 0x49, 20 | 0x04, 0x00, 0x0a, 0x70, 0x81, 0x06, 0x88, 0x49, 0x00, 0x00, 0x00, 0xd0, 0xdd, 0x82, 0x90, 0x86, 21 | 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 22 | 0x13, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0xe4, 0x00, 0x00, 23 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x00, 0x00, 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /cef/inferno/inferno.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of PRO CFW. 3 | 4 | * PRO CFW is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * PRO CFW is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with PRO CFW. If not, see . 17 | */ 18 | 19 | #ifndef __OPTIONS_H__ 20 | #define __OPTIONS_H__ 21 | 22 | static char *g_disenabled[] = { "Disabled", "Enabled" }; 23 | static char *g_endisabled[] = { "Enabled", "Disabled" }; 24 | 25 | static char *g_umdmodes[] = { "Inferno", "M33 Driver", "Sony NP9660" }; 26 | static char *g_extendedcolors[] = { "Disabled", "02g", "03g" }; 27 | static char *g_cpuspeeds[] = { "Default", "20/10", "75/37", "100/50", "133/66", "222/111", "266/133", "300/150", "333/166" }; 28 | static char *g_highmem[] = { "Default", "Stable", "Max" }; 29 | 30 | static char *g_buttonassign[] = { "O is enter", "X is enter" }; 31 | 32 | static char *g_regions[] = { 33 | "Disabled", 34 | "Japan", 35 | "America", 36 | "Europe", 37 | "Korea", 38 | "United Kingdom", 39 | "Mexico", 40 | "Australia/NZ", 41 | "East", 42 | "Taiwan", 43 | "Russia", 44 | "China", 45 | "Debug Type I", 46 | "Debug Type II" 47 | }; 48 | 49 | static char *g_iso_cache[] = {"LRU", "RR", "Off"}; 50 | static char *g_iso_cache_num[] = {"Auto", "1", "2", "4", "8", "16", "32", "64", "128"}; 51 | static char *g_iso_cache_size[] = {"Auto", "1KB", "2KB", "4KB", "8KB", "16KB", "32KB", "64KB"}; 52 | static char *g_umd_seek_read_delay[] = {"Auto", "1x", "2x", "3x", "4x"}; 53 | static char *g_hide_pics[] = {"Disabled", "Both", "PIC0 Only", "PIC1 Only"}; 54 | 55 | #endif -------------------------------------------------------------------------------- /cef/lib/libpspsysc_user/Makefile: -------------------------------------------------------------------------------- 1 | PSPSDK=$(shell psp-config --pspsdk-path) 2 | OBJS = \ 3 | SysclibForUser_0000.o \ 4 | SysclibForUser_0001.o \ 5 | SysclibForUser_0002.o \ 6 | SysclibForUser_0003.o \ 7 | SysclibForUser_0004.o \ 8 | SysclibForUser_0005.o \ 9 | SysclibForUser_0006.o \ 10 | SysclibForUser_0007.o \ 11 | SysclibForUser_0008.o \ 12 | SysclibForUser_0009.o \ 13 | SysclibForUser_0010.o \ 14 | SysclibForUser_0011.o \ 15 | SysclibForUser_0012.o \ 16 | SysclibForUser_0013.o \ 17 | SysclibForUser_0014.o \ 18 | SysclibForUser_0015.o \ 19 | SysclibForUser_0016.o \ 20 | SysclibForUser_0017.o \ 21 | SysclibForUser_0018.o \ 22 | SysclibForUser_0019.o \ 23 | SysclibForUser_0020.o \ 24 | SysclibForUser_0021.o \ 25 | SysclibForUser_0022.o \ 26 | SysclibForUser_0023.o \ 27 | SysclibForUser_0024.o \ 28 | SysclibForUser_0025.o \ 29 | SysclibForUser_0026.o \ 30 | SysclibForUser_0027.o \ 31 | SysclibForUser_0028.o \ 32 | SysclibForUser_0029.o \ 33 | SysclibForUser_0030.o \ 34 | SysclibForUser_0031.o \ 35 | SysclibForUser_0032.o \ 36 | SysclibForUser_0033.o \ 37 | SysclibForUser_0034.o \ 38 | SysclibForUser_0035.o \ 39 | SysclibForUser_0036.o \ 40 | SysclibForUser_0037.o \ 41 | SysclibForUser_0038.o \ 42 | SysclibForUser_0039.o \ 43 | SysclibForUser_0040.o \ 44 | SysclibForUser_0041.o \ 45 | SysclibForUser_0042.o \ 46 | SysclibForUser_0043.o \ 47 | SysclibForUser_0044.o \ 48 | SysclibForUser_0045.o \ 49 | SysclibForUser_0046.o \ 50 | SysclibForUser_0047.o 51 | 52 | 53 | CC=psp-gcc 54 | INCDIR = 55 | CFLAGS = -std=c99 -Os -G0 -Wall -fno-builtin-printf -I$(PSPSDK)/include 56 | CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti 57 | ASFLAGS = $(CFLAGS) 58 | LDFLAGS=-nodefaultlibs 59 | 60 | LIBDIR = 61 | 62 | %.o: SysclibForUser.S 63 | @psp-gcc -g -O2 -G0 -Wall -I${PSPSDK}/include -DF_$* $< -c -o $@ 64 | 65 | all: $(OBJS) 66 | @psp-ar cru libpspsysc_user.a $(OBJS) 67 | @psp-ranlib libpspsysc_user.a 68 | @echo Finished creating stubs for SysclibForUser 69 | 70 | clean: 71 | @rm -f *.o 72 | @rm -f *.a 73 | @echo SysclibForUser cleaning done -------------------------------------------------------------------------------- /docs/src/04-HomebrewSupport.md: -------------------------------------------------------------------------------- 1 | # PSP Homebrew Support 2 | --- 3 | 4 | Adrenaline support launching unsigned homebrew applications directly from the XMB/VSH, and loading plugins with a powerful configuration format. 5 | 6 | All user-mode PSP homebrew since PSP Firmware (FW) 3.71 onwards should work fine. Kernel-mode PSP homebrew, on the other hand, may require a build specifically targeted to PSP firmware 6.60 or 6.61 to work on Adrenaline. 7 | 8 | ## Homebrew Apps 9 | 10 | PSP homebrew applications are custom software created by the community that can run on the PSP hardware, ranging from games, emulators, and utilities (like media players and file managers). 11 | 12 | Homebrew applications must be live on `???0:/pspemu/PSP/GAME/` directory to appear in the XMB/VSH. 13 | 14 | ## Homebrew plugins 15 | 16 | Homebrew plugins are programs in the form of `PRX` files that can add extra features and/or modify the behavior of the PSP system and games. 17 | 18 | Homebrew plugins `.prx` files must be put in the `???0:/pspemu/seplugins/` folder and be added to the configuration file `???0:/pspemu/seplugins/EPIplugins.txt`. 19 | 20 | > [!INFO] 21 | > PSP filepaths are case insensitive. For that reason, files and directories inside the Vita/PSTV `???0:/pspemu/` directory can be all uppercase letters, lowercase letters, or a mix, and it will work normally. 22 | > 23 | > So don't worry if you find variations in paths like `/SEPLUGINS/epiplugins.txt`, or even crazy paths like `/SePlUgInS/EpIpLuGiNs.TxT`. 24 | 25 | The following pages provide more detailed information on plugins. 26 | 27 | 28 | ## Legacy 1.50 Homebrew 29 | 30 | There is some support for legacy FW 1.50 homebrew, but it is not very well tested. If you have any legacy 1.50 homebrew, try to find out if it works on Adrenaline. 31 | 32 | > [!QUESTION] What do I do if my legacy 1.50 homebrew fails to run? 33 | > You are encouraged to open an issue on [Adrenaline Issue Tracker](https://github.com/isage/Adrenaline/issues). Please, remember to give as much information as possible so the developers can better find potential solutions for the issue. -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_inferno/pspbtcnf.txt: -------------------------------------------------------------------------------- 1 | 0x06060010 2 | $/kd/sysmem.prx VGUPAEM 3 | $/kd/loadcore.prx VGUPAEM 4 | $/kd/exceptionman.prx VGUPAEM 5 | $/kd/interruptman.prx VGUPAEM 6 | $/kd/threadman.prx VGUPAEM 7 | $/kd/kermit.prx VGUPAEM 8 | $/kd/dmacman.prx VGUPAEM 9 | $/kd/systimer.prx VGUPAEM 10 | $/kd/iofilemgr.prx VGUPAEM 11 | $/kd/memlmd_01g.prx VGUPAEM 12 | $/kd/modulemgr.prx VGUPAEM 13 | $/kd/systemctrl.prx VGUPAEM 14 | $/kd/init.prx VGUPAEM 15 | $/kd/loadexec_01g.prx VGUPAEM 16 | $/kd/kermit_lowio.prx VGUPAEM 17 | $/kd/kermit_flashfs.prx VGUPAEM 18 | $/kd/kermit_msfs.prx VGUPAEM 19 | $/kd/ge.prx VGUPAEM 20 | $/kd/kermit_peripheral.prx VGUPAEM 21 | $/kd/kermit_idstorage.prx VGUPAEM 22 | $/kd/kermit_rtc.prx VGUPAEM 23 | $/kd/kermit_display.prx VGUPAEM 24 | $/kd/kermit_ctrl.prx VGUPAEM 25 | $/kd/kermit_power.prx VGUPAEM 26 | $/kd/kermit_msemu.prx VGUPAEM 27 | $/kd/kermit_audio.prx VGUAEM 28 | $/kd/kermit_hpremote.prx VGUPAEM 29 | $/kd/openpsid.prx VGUPAEM 30 | $/kd/kermit_usb.prx VGAEM 31 | $/kd/kermit_wlan.prx VGUAEM 32 | $/kd/registry.prx VGUPAEM 33 | $/kd/chkreg.prx VUP 34 | $/kd/mesg_led_01g.prx VGUPAEM 35 | $/kd/semawm.prx V 36 | $/kd/amctrl.prx VGPAEM 37 | $/kd/npdrm.prx VPEM 38 | $/kd/iofilemgr_dnas.prx VGPAEM 39 | $/kd/inferno.prx GEM 40 | $/kd/isofs.prx GEM 41 | $/kd/chnnlsv.prx VP 42 | $/kd/kermit_utility.prx VGUPAEM 43 | $/kd/popsman.prx P 44 | $/kd/kermit_me_wrapper.prx VGUPAEM 45 | $/kd/vaudio.prx VU 46 | $/kd/impose_01g.prx VGUPAEM 47 | $/kd/vshbridge_msapp.prx A 48 | $/kd/avcodec.prx V 49 | $/kd/mediasync.prx VGUPAEM 50 | $/kd/vshbridge.prx VU 51 | $/kd/mlnbridge.prx M 52 | $/kd/mlnbridge_msapp.prx M 53 | $%/kd/usersystemlib.prx VGUPAEM 54 | $%/vsh/module/mlncmn.prx M 55 | $%/vsh/module/mcore.prx M 56 | $%/vsh/module/mlnapp_proxy.prx M 57 | $%/vsh/module/libfont_hv.prx P 58 | $%/vsh/module/pafmini.prx P 59 | %%/kd/dummy_anchor_IhariUafaayk98.prx GUAEM 60 | $%/kd/libatrac3plus.prx V 61 | $%/vsh/module/paf.prx V 62 | $%/vsh/module/common_gui.prx V 63 | $%/vsh/module/common_util.prx VP 64 | $%/vsh/module/libpspvmc.prx P 65 | %%/kd/dummy_anchor_IhariUafaayk98.prx P 66 | $%%/vsh/module/vshmain.prx V -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_march33/pspbtcnf.txt: -------------------------------------------------------------------------------- 1 | 0x06060010 2 | $/kd/sysmem.prx VGUPAEM 3 | $/kd/loadcore.prx VGUPAEM 4 | $/kd/exceptionman.prx VGUPAEM 5 | $/kd/interruptman.prx VGUPAEM 6 | $/kd/threadman.prx VGUPAEM 7 | $/kd/kermit.prx VGUPAEM 8 | $/kd/dmacman.prx VGUPAEM 9 | $/kd/systimer.prx VGUPAEM 10 | $/kd/iofilemgr.prx VGUPAEM 11 | $/kd/memlmd_01g.prx VGUPAEM 12 | $/kd/modulemgr.prx VGUPAEM 13 | $/kd/systemctrl.prx VGUPAEM 14 | $/kd/init.prx VGUPAEM 15 | $/kd/loadexec_01g.prx VGUPAEM 16 | $/kd/kermit_lowio.prx VGUPAEM 17 | $/kd/kermit_flashfs.prx VGUPAEM 18 | $/kd/kermit_msfs.prx VGUPAEM 19 | $/kd/ge.prx VGUPAEM 20 | $/kd/kermit_peripheral.prx VGUPAEM 21 | $/kd/kermit_idstorage.prx VGUPAEM 22 | $/kd/kermit_rtc.prx VGUPAEM 23 | $/kd/kermit_display.prx VGUPAEM 24 | $/kd/kermit_ctrl.prx VGUPAEM 25 | $/kd/kermit_power.prx VGUPAEM 26 | $/kd/kermit_msemu.prx VGUPAEM 27 | $/kd/kermit_audio.prx VGUAEM 28 | $/kd/kermit_hpremote.prx VGUPAEM 29 | $/kd/openpsid.prx VGUPAEM 30 | $/kd/kermit_usb.prx VGAEM 31 | $/kd/kermit_wlan.prx VGUAEM 32 | $/kd/registry.prx VGUPAEM 33 | $/kd/chkreg.prx VUP 34 | $/kd/mesg_led_01g.prx VGUPAEM 35 | $/kd/semawm.prx V 36 | $/kd/amctrl.prx VGPAEM 37 | $/kd/npdrm.prx VPEM 38 | $/kd/iofilemgr_dnas.prx VGPAEM 39 | $/kd/march33.prx GEM 40 | $/kd/isofs.prx GEM 41 | $/kd/chnnlsv.prx VP 42 | $/kd/kermit_utility.prx VGUPAEM 43 | $/kd/popsman.prx P 44 | $/kd/kermit_me_wrapper.prx VGUPAEM 45 | $/kd/vaudio.prx VU 46 | $/kd/impose_01g.prx VGUPAEM 47 | $/kd/vshbridge_msapp.prx A 48 | $/kd/avcodec.prx V 49 | $/kd/mediasync.prx VGUPAEM 50 | $/kd/vshbridge.prx VU 51 | $/kd/mlnbridge.prx M 52 | $/kd/mlnbridge_msapp.prx M 53 | $%/kd/usersystemlib.prx VGUPAEM 54 | $%/vsh/module/mlncmn.prx M 55 | $%/vsh/module/mcore.prx M 56 | $%/vsh/module/mlnapp_proxy.prx M 57 | $%/vsh/module/libfont_hv.prx P 58 | $%/vsh/module/pafmini.prx P 59 | %%/kd/dummy_anchor_IhariUafaayk98.prx GUAEM 60 | $%/kd/libatrac3plus.prx V 61 | $%/vsh/module/paf.prx V 62 | $%/vsh/module/common_gui.prx V 63 | $%/vsh/module/common_util.prx VP 64 | $%/vsh/module/libpspvmc.prx P 65 | %%/kd/dummy_anchor_IhariUafaayk98.prx P 66 | $%%/vsh/module/vshmain.prx V -------------------------------------------------------------------------------- /cef/vshctrl/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | #include 22 | 23 | #include 24 | #include 25 | 26 | #define _ADRENALINE_LOG_IMPL_ 27 | #include 28 | 29 | #include "patch_vsh.h" 30 | 31 | PSP_MODULE_INFO("VshControl", 0x1007, 1, 2); 32 | 33 | STMOD_HANDLER previous; 34 | 35 | AdrenalineConfig g_cfw_config; 36 | u32 g_firsttick; 37 | 38 | int OnModuleStart(SceModule *mod) { 39 | char *modname = mod->modname; 40 | 41 | if (strcmp(modname, "vsh_module") == 0) { 42 | PatchVshMain(mod); 43 | } else if (strcmp(modname, "sysconf_plugin_module") == 0) { 44 | PatchSysconfPlugin(mod); 45 | } else if (strcmp(modname, "game_plugin_module") == 0) { 46 | PatchGamePlugin(mod); 47 | } else if (strcmp(modname, "update_plugin_module") == 0) { 48 | PatchUpdatePlugin(mod); 49 | } 50 | 51 | if (!previous) 52 | return 0; 53 | 54 | return previous(mod); 55 | } 56 | 57 | int module_start(SceSize args, void *argp) { 58 | logInit("ms0:/log_vshctrl.txt"); 59 | logmsg("VshCtrl started\n"); 60 | 61 | PatchLoadExec(); 62 | 63 | sctrlSEGetConfig(&g_cfw_config); 64 | 65 | if (g_cfw_config.vsh_cpu_speed != 0) { 66 | g_firsttick = sceKernelGetSystemTimeLow(); 67 | } 68 | 69 | previous = sctrlHENSetStartModuleHandler(OnModuleStart); 70 | 71 | return 0; 72 | } -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_np9660/pspbtcnf.txt: -------------------------------------------------------------------------------- 1 | 0x06060010 2 | $/kd/sysmem.prx VGUPAEM 3 | $/kd/loadcore.prx VGUPAEM 4 | $/kd/exceptionman.prx VGUPAEM 5 | $/kd/interruptman.prx VGUPAEM 6 | $/kd/threadman.prx VGUPAEM 7 | $/kd/kermit.prx VGUPAEM 8 | $/kd/dmacman.prx VGUPAEM 9 | $/kd/systimer.prx VGUPAEM 10 | $/kd/iofilemgr.prx VGUPAEM 11 | $/kd/memlmd_01g.prx VGUPAEM 12 | $/kd/modulemgr.prx VGUPAEM 13 | $/kd/systemctrl.prx VGUPAEM 14 | $/kd/init.prx VGUPAEM 15 | $/kd/loadexec_01g.prx VGUPAEM 16 | $/kd/kermit_lowio.prx VGUPAEM 17 | $/kd/kermit_flashfs.prx VGUPAEM 18 | $/kd/kermit_msfs.prx VGUPAEM 19 | $/kd/ge.prx VGUPAEM 20 | $/kd/kermit_peripheral.prx VGUPAEM 21 | $/kd/kermit_idstorage.prx VGUPAEM 22 | $/kd/kermit_rtc.prx VGUPAEM 23 | $/kd/kermit_display.prx VGUPAEM 24 | $/kd/kermit_ctrl.prx VGUPAEM 25 | $/kd/kermit_power.prx VGUPAEM 26 | $/kd/kermit_msemu.prx VGUPAEM 27 | $/kd/kermit_audio.prx VGUAEM 28 | $/kd/kermit_hpremote.prx VGUPAEM 29 | $/kd/openpsid.prx VGUPAEM 30 | $/kd/kermit_usb.prx VGAEM 31 | $/kd/kermit_wlan.prx VGUAEM 32 | $/kd/registry.prx VGUPAEM 33 | $/kd/chkreg.prx VUP 34 | $/kd/mesg_led_01g.prx VGUPAEM 35 | $/kd/semawm.prx V 36 | $/kd/amctrl.prx VGPAEM 37 | $/kd/npdrm.prx VPEM 38 | $/kd/iofilemgr_dnas.prx VGPAEM 39 | $/kd/galaxy.prx GEM 40 | $/kd/np9660.prx GEM 41 | $/kd/isofs.prx GEM 42 | $/kd/chnnlsv.prx VP 43 | $/kd/kermit_utility.prx VGUPAEM 44 | $/kd/popsman.prx P 45 | $/kd/kermit_me_wrapper.prx VGUPAEM 46 | $/kd/vaudio.prx VU 47 | $/kd/impose_01g.prx VGUPAEM 48 | $/kd/vshbridge_msapp.prx A 49 | $/kd/avcodec.prx V 50 | $/kd/mediasync.prx VGUPAEM 51 | $/kd/vshbridge.prx VU 52 | $/kd/mlnbridge.prx M 53 | $/kd/mlnbridge_msapp.prx M 54 | $%/kd/usersystemlib.prx VGUPAEM 55 | $%/vsh/module/mlncmn.prx M 56 | $%/vsh/module/mcore.prx M 57 | $%/vsh/module/mlnapp_proxy.prx M 58 | $%/vsh/module/libfont_hv.prx P 59 | $%/vsh/module/pafmini.prx P 60 | %%/kd/dummy_anchor_IhariUafaayk98.prx GUAEM 61 | $%/kd/libatrac3plus.prx V 62 | $%/vsh/module/paf.prx V 63 | $%/vsh/module/common_gui.prx V 64 | $%/vsh/module/common_util.prx VP 65 | $%/vsh/module/libpspvmc.prx P 66 | %%/kd/dummy_anchor_IhariUafaayk98.prx P 67 | $%%/vsh/module/vshmain.prx V -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_recovery/pspbtcnf.txt: -------------------------------------------------------------------------------- 1 | 0x06060010 2 | $/kd/sysmem.prx VGUPAEM 3 | $/kd/loadcore.prx VGUPAEM 4 | $/kd/exceptionman.prx VGUPAEM 5 | $/kd/interruptman.prx VGUPAEM 6 | $/kd/threadman.prx VGUPAEM 7 | $/kd/kermit.prx VGUPAEM 8 | $/kd/dmacman.prx VGUPAEM 9 | $/kd/systimer.prx VGUPAEM 10 | $/kd/iofilemgr.prx VGUPAEM 11 | $/kd/memlmd_01g.prx VGUPAEM 12 | $/kd/modulemgr.prx VGUPAEM 13 | $/kd/systemctrl.prx VGUPAEM 14 | $/kd/init.prx VGUPAEM 15 | $/kd/loadexec_01g.prx VGUPAEM 16 | $/kd/kermit_lowio.prx VGUPAEM 17 | $/kd/kermit_flashfs.prx VGUPAEM 18 | $/kd/kermit_msfs.prx VGUPAEM 19 | $/kd/ge.prx VGUPAEM 20 | $/kd/kermit_peripheral.prx VGUPAEM 21 | $/kd/kermit_idstorage.prx VGUPAEM 22 | $/kd/kermit_rtc.prx VGUPAEM 23 | $/kd/kermit_display.prx VGUPAEM 24 | $/kd/kermit_ctrl.prx VGUPAEM 25 | $/kd/kermit_power.prx VGUPAEM 26 | $/kd/kermit_msemu.prx VGUPAEM 27 | $/kd/kermit_audio.prx VGUAEM 28 | $/kd/kermit_hpremote.prx VGUPAEM 29 | $/kd/openpsid.prx VGUPAEM 30 | $/kd/kermit_usb.prx VGAEM 31 | $/kd/kermit_wlan.prx VGUAEM 32 | $/kd/registry.prx VGUPAEM 33 | $/kd/chkreg.prx VUP 34 | $/kd/mesg_led_01g.prx VGUPAEM 35 | $/kd/semawm.prx V 36 | $/kd/amctrl.prx VGPAEM 37 | $/kd/iofilemgr_dnas.prx VGPAEM 38 | $/kd/mediaman.prx VGUA 39 | $/kd/np9660.prx EM 40 | $/kd/isofs.prx EM 41 | $/kd/chnnlsv.prx VP 42 | $/kd/kermit_utility.prx V 43 | $/kd/popsman.prx P 44 | $/kd/kermit_me_wrapper.prx VGUPAEM 45 | $/kd/vaudio.prx VU 46 | $/kd/impose_01g.prx VGUPAEM 47 | $/kd/vshbridge_msapp.prx A 48 | $/kd/avcodec.prx V 49 | $/kd/mediasync.prx VGUPAEM 50 | $/kd/vshbridge.prx VU 51 | $/kd/mlnbridge.prx M 52 | $/kd/mlnbridge_msapp.prx M 53 | $/kd/libpsardumper.prx V 54 | $%/kd/usersystemlib.prx VGUPAEM 55 | $%/vsh/module/mlncmn.prx M 56 | $%/vsh/module/mcore.prx M 57 | $%/vsh/module/mlnapp_proxy.prx M 58 | $%/vsh/module/libfont_hv.prx P 59 | $%/vsh/module/pafmini.prx P 60 | %%/kd/dummy_anchor_IhariUafaayk98.prx GUAEM 61 | $%/kd/libatrac3plus.prx V 62 | $%/vsh/module/paf.prx V 63 | $%/vsh/module/common_gui.prx V 64 | $%/vsh/module/common_util.prx VP 65 | $%/vsh/module/libpspvmc.prx P 66 | %%/kd/dummy_anchor_IhariUafaayk98.prx P 67 | $%%/vsh/module/recovery.prx V -------------------------------------------------------------------------------- /cef/march33/umdman.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #include "umdman.h" 11 | 12 | static int g_id_iecallback; 13 | static u32 g_gp_iecallback; 14 | static void *g_arg_iecallback; 15 | static int (* g_iecallback)(int id, void *arg, int unk); 16 | 17 | int sceUmdManRegisterImposeCallBack(int id, void *callback) { 18 | return 0; 19 | } 20 | 21 | int sceUmdManUnRegisterImposeCallback(int id) { 22 | return 0; 23 | } 24 | 25 | static void NotifyInsertEjectCallback(int u) { 26 | if (g_iecallback) { 27 | asm("lw $gp, 0(%0)\n" :: "r"(&g_gp_iecallback)); 28 | g_iecallback(g_id_iecallback, g_arg_iecallback, u); 29 | } 30 | } 31 | 32 | int sceUmdManRegisterInsertEjectUMDCallBack(int id, void *callback, void *arg) { 33 | int res = 0; 34 | 35 | if (g_id_iecallback != 0) { 36 | res = SCE_ENOMEM; 37 | goto out; 38 | } 39 | 40 | g_id_iecallback = id; 41 | asm("sw $gp, 0(%0)\n" :: "r"(&g_gp_iecallback)); 42 | g_arg_iecallback = arg; 43 | g_iecallback = callback; 44 | 45 | u32 *mod = (u32 *)sceKernelFindModuleByName("sceIsofs_driver"); 46 | u32 text_addr = *(mod+27); 47 | 48 | MAKE_INSTRUCTION(text_addr+0x3FEC, 0x00001021); 49 | MAKE_INSTRUCTION(text_addr+0x4024, 0x00001021); 50 | MAKE_INSTRUCTION(text_addr+0x40D8, 0x00001021); 51 | MAKE_INSTRUCTION(text_addr+0x42B4, 0x00001021); 52 | 53 | sctrlFlushCache(); 54 | 55 | NotifyInsertEjectCallback(1); 56 | 57 | out: 58 | logmsg("%s: id=0x%08X, cb=0x%p, arg=0x%p -> 0x%08X\n", __func__, id, callback, arg, res); 59 | return res; 60 | } 61 | 62 | int sceUmdManUnRegisterInsertEjectUMDCallBack(int id) { 63 | int res = 0; 64 | if (id != g_id_iecallback) { 65 | res = SCE_ENOENT; 66 | goto out; 67 | } 68 | 69 | g_id_iecallback = 0; 70 | g_gp_iecallback = 0; 71 | g_arg_iecallback = 0; 72 | g_iecallback = NULL; 73 | 74 | out: 75 | logmsg("%s: id=0x%08X -> 0x%08X\n", __func__, id, res); 76 | return res; 77 | } 78 | 79 | int sceUmdManIsDvdDrive() { 80 | return 0; 81 | } 82 | 83 | int InitUmdMan() { 84 | return 0; 85 | } 86 | -------------------------------------------------------------------------------- /kernel/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) 4 | if(DEFINED ENV{VITASDK}) 5 | set(CMAKE_TOOLCHAIN_FILE "$ENV{VITASDK}/share/vita.toolchain.cmake" CACHE PATH "toolchain file") 6 | else() 7 | message(FATAL_ERROR "Please define VITASDK to point to your SDK path!") 8 | endif() 9 | endif() 10 | 11 | project(adrenaline_kernel) 12 | include("${VITASDK}/share/vita.cmake" REQUIRED) 13 | 14 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,-q -Wall -O3 -nostdlib") 15 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions") 16 | 17 | add_executable(adrenaline_kernel 18 | main.c 19 | utils.c 20 | ) 21 | 22 | target_link_libraries(adrenaline_kernel 23 | taihenForKernel_stub 24 | taihenModuleUtils_stub 25 | SceCpuForDriver_stub 26 | SceCtrlForDriver_stub 27 | SceIofilemgrForDriver_stub 28 | SceModulemgrForDriver_stub 29 | SceProcessmgrForDriver_stub 30 | SceSysclibForDriver_stub 31 | SceSysmemForDriver_stub 32 | SceSysrootForKernel_stub 33 | SceSysrootForDriver_stub 34 | SceThreadmgrForDriver_stub 35 | SceDebugForDriver_stub 36 | ) 37 | 38 | vita_create_self(adrenaline_kernel.skprx adrenaline_kernel CONFIG exports.yml UNSAFE) 39 | 40 | vita_create_stubs(kstubs adrenaline_kernel ${CMAKE_CURRENT_SOURCE_DIR}/exports.yml KERNEL) 41 | 42 | #install(DIRECTORY ${CMAKE_BINARY_DIR}/stubs/ 43 | # DESTINATION lib 44 | # FILES_MATCHING PATTERN "*.a" 45 | #) 46 | 47 | 48 | #add_custom_target(copy 49 | # COMMAND cp adrenaline_kernel.skprx H:/app/PSPEMUCFW/sce_module/adrenaline_kernel.skprx 50 | # DEPENDS adrenaline_kernel.skprx 51 | #) 52 | 53 | #add_custom_target(pkg 54 | # COMMAND cp adrenaline_kernel.skprx ../../bubble/pkg/sce_module/adrenaline_kernel.skprx 55 | # DEPENDS adrenaline_kernel.skprx 56 | #) 57 | 58 | #add_custom_target(updater 59 | # COMMAND bin2c adrenaline_kernel.skprx ../../cef/updater/adrenaline_kernel.h adrenaline_kernel 60 | # DEPENDS adrenaline_kernel.skprx 61 | #) 62 | 63 | add_custom_target(kernel_all 64 | ALL 65 | DEPENDS adrenaline_kernel.skprx-self 66 | DEPENDS libAdrenalineKernel_stub.a 67 | DEPENDS libAdrenalineKernel_stub_weak.a 68 | ) 69 | -------------------------------------------------------------------------------- /cef/btcnf/pspbtcnf_normal/pspbtcnf.txt: -------------------------------------------------------------------------------- 1 | 0x06060010 2 | $/kd/sysmem.prx VGUPAEM 3 | $/kd/loadcore.prx VGUPAEM 4 | $/kd/exceptionman.prx VGUPAEM 5 | $/kd/interruptman.prx VGUPAEM 6 | $/kd/threadman.prx VGUPAEM 7 | $/kd/kermit.prx VGUPAEM 8 | $/kd/dmacman.prx VGUPAEM 9 | $/kd/systimer.prx VGUPAEM 10 | $/kd/iofilemgr.prx VGUPAEM 11 | $/kd/memlmd_01g.prx VGUPAEM 12 | $/kd/modulemgr.prx VGUPAEM 13 | $/kd/systemctrl.prx VGUPAEM 14 | $/kd/init.prx VGUPAEM 15 | $/kd/loadexec_01g.prx VGUPAEM 16 | $/kd/kermit_lowio.prx VGUPAEM 17 | $/kd/kermit_flashfs.prx VGUPAEM 18 | $/kd/kermit_msfs.prx VGUPAEM 19 | $/kd/ge.prx VGUPAEM 20 | $/kd/kermit_peripheral.prx VGUPAEM 21 | $/kd/kermit_idstorage.prx VGUPAEM 22 | $/kd/kermit_rtc.prx VGUPAEM 23 | $/kd/kermit_display.prx VGUPAEM 24 | $/kd/kermit_ctrl.prx VGUPAEM 25 | $/kd/kermit_power.prx VGUPAEM 26 | $/kd/kermit_msemu.prx VGUPAEM 27 | $/kd/kermit_audio.prx VGUAEM 28 | $/kd/kermit_hpremote.prx VGUPAEM 29 | $/kd/openpsid.prx VGUPAEM 30 | $/kd/kermit_usb.prx VGAEM 31 | $/kd/kermit_wlan.prx VGUAEM 32 | $/kd/registry.prx VGUPAEM 33 | $/kd/chkreg.prx VUP 34 | $/kd/mesg_led_01g.prx VGUPAEM 35 | $/kd/semawm.prx V 36 | $/kd/amctrl.prx VGPAEM 37 | $/kd/npdrm.prx VPEM 38 | $/kd/iofilemgr_dnas.prx VGPAEM 39 | $/kd/mediaman.prx VGUA 40 | $/kd/np9660.prx EM 41 | $/kd/isofs.prx EM 42 | $/kd/chnnlsv.prx VP 43 | $/kd/kermit_utility.prx VGUPAEM 44 | $/kd/popsman.prx P 45 | $/kd/popcorn.prx P 46 | $/kd/kermit_me_wrapper.prx VGUPAEM 47 | $/kd/vaudio.prx VU 48 | $/kd/impose_01g.prx VGUPAEM 49 | $/kd/vshbridge_msapp.prx A 50 | $/kd/avcodec.prx V 51 | $/kd/mediasync.prx VGUPAEM 52 | $/kd/vshbridge.prx VU 53 | $/kd/mlnbridge.prx M 54 | $/kd/mlnbridge_msapp.prx M 55 | $/kd/vshctrl.prx V 56 | $%/kd/usersystemlib.prx VGUPAEM 57 | $%/vsh/module/mlncmn.prx M 58 | $%/vsh/module/mcore.prx M 59 | $%/vsh/module/mlnapp_proxy.prx M 60 | $%/vsh/module/libfont_hv.prx P 61 | $%/vsh/module/pafmini.prx P 62 | %%/kd/dummy_anchor_IhariUafaayk98.prx GUAEM 63 | $%/kd/libatrac3plus.prx V 64 | $%/vsh/module/paf.prx V 65 | $%/vsh/module/common_gui.prx V 66 | $%/vsh/module/common_util.prx VP 67 | $%/vsh/module/libpspvmc.prx P 68 | %%/kd/dummy_anchor_IhariUafaayk98.prx P 69 | $%%/vsh/module/vshmain.prx V -------------------------------------------------------------------------------- /cef/lib/libpspkubridge/KUBridge.S: -------------------------------------------------------------------------------- 1 | .set noreorder 2 | 3 | #include "pspimport.s" 4 | 5 | // Build files 6 | // KUBridge_XXXX.o 7 | 8 | #ifdef F_KUBridge_0000 9 | IMPORT_START "KUBridge",0x40090000 10 | #endif 11 | #ifdef F_KUBridge_0001 12 | IMPORT_FUNC "KUBridge",0x60DDB4AE,kuKernelBootFrom 13 | #endif 14 | #ifdef F_KUBridge_0002 15 | IMPORT_FUNC "KUBridge",0x9060F69D,kuKernelCall 16 | #endif 17 | #ifdef F_KUBridge_0003 18 | IMPORT_FUNC "KUBridge",0x5C6C3DBA,kuKernelCallExtendStack 19 | #endif 20 | #ifdef F_KUBridge_0004 21 | IMPORT_FUNC "KUBridge",0xCC5F0398,kuKernelFindModuleByAddress 22 | #endif 23 | #ifdef F_KUBridge_0005 24 | IMPORT_FUNC "KUBridge",0x4B321167,kuKernelFindModuleByName 25 | #endif 26 | #ifdef F_KUBridge_0006 27 | IMPORT_FUNC "KUBridge",0x24331850,kuKernelGetModel 28 | #endif 29 | #ifdef F_KUBridge_0007 30 | IMPORT_FUNC "KUBridge",0xD0D05A5B,kuKernelGetUmdFile 31 | #endif 32 | #ifdef F_KUBridge_0008 33 | IMPORT_FUNC "KUBridge",0xA2ABB6D3,kuKernelGetUserLevel 34 | #endif 35 | #ifdef F_KUBridge_0009 36 | IMPORT_FUNC "KUBridge",0x219DE4D2,kuKernelIcacheInvalidateAll 37 | #endif 38 | #ifdef F_KUBridge_0010 39 | IMPORT_FUNC "KUBridge",0x8E5A4057,kuKernelInitApitype 40 | #endif 41 | #ifdef F_KUBridge_0011 42 | IMPORT_FUNC "KUBridge",0x1742445F,kuKernelInitFileName 43 | #endif 44 | #ifdef F_KUBridge_0012 45 | IMPORT_FUNC_WITH_ALIAS "KUBridge",0xB0B8824E,kuKernelInitKeyConfig,kuKernelApplicationType 46 | #endif 47 | #ifdef F_KUBridge_0013 48 | IMPORT_FUNC "KUBridge",0x4C25EA72,kuKernelLoadModule 49 | #endif 50 | #ifdef F_KUBridge_0014 51 | IMPORT_FUNC "KUBridge",0x1E9F0498,kuKernelLoadModuleWithApitype2 52 | #endif 53 | #ifdef F_KUBridge_0015 54 | IMPORT_FUNC "KUBridge",0x6B4B577F,kuKernelMemcpy 55 | #endif 56 | #ifdef F_KUBridge_0016 57 | IMPORT_FUNC "KUBridge",0x7A50075E,kuKernelPeekw 58 | #endif 59 | #ifdef F_KUBridge_0017 60 | IMPORT_FUNC "KUBridge",0x0E73A39D,kuKernelPokew 61 | #endif 62 | #ifdef F_KUBridge_0018 63 | IMPORT_FUNC "KUBridge",0xC4AF12AB,kuKernelSetDdrMemoryProtection 64 | #endif 65 | #ifdef F_KUBridge_0019 66 | IMPORT_FUNC_WITH_ALIAS "KUBridge",0x501E983D,kuKernelInitKeyConfig,kuKernelApplicationType 67 | #endif 68 | -------------------------------------------------------------------------------- /cef/include/pspamctrl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * PSP Software Development Kit - http://www.pspdev.org 3 | * ----------------------------------------------------------------------- 4 | * Licensed under the BSD license, see LICENSE in PSPSDK root for details. 5 | * 6 | * pspamctrl.h - Prototypes for the sceAmctrl_driver library. 7 | * 8 | * Copyright (c) 2024 GrayJack 9 | * 10 | * TODO: Contribute this header to PSPSDK 11 | */ 12 | 13 | #ifndef AM_CTRL_H 14 | #define AM_CTRL_H 15 | 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif // __cplusplus 21 | 22 | 23 | typedef struct SceMacKey { 24 | int type; 25 | u8 key[16]; 26 | u8 pad[16]; 27 | int pad_size; 28 | } SceMacKey; 29 | 30 | typedef struct SceCipherKey { 31 | u32 type; 32 | u32 seed; 33 | u8 key[16]; 34 | } SceCipherKey; 35 | 36 | enum SceMacKeyType { 37 | MAC_KEY_TYPE_UNK0 = 0, 38 | MAC_KEY_TYPE_UNK1 = 1, 39 | /** Use fuse ID */ 40 | MAC_KEY_TYPE_FUSE_ID = 2, 41 | /** Use fixed key. MAC will need to encrypt again. */ 42 | MAC_KEY_TYPE_FIXED = 3, 43 | MAC_KEY_TYPE_UNK6 = 6, 44 | }; 45 | 46 | enum SceCipherKeyType { 47 | /** Use fixed key */ 48 | CIPHER_KEY_TYPE_FIXED = 1, 49 | /** Use fuse ID */ 50 | CIPHER_KEY_TYPE_FUSE_ID = 2, 51 | }; 52 | 53 | enum SceCipherKeyMode { 54 | CIPHER_KEY_MODE_ENCRYPT = 1, 55 | CIPHER_KEY_MODE_DECRYPT = 2, 56 | }; 57 | 58 | #ifdef __KERNEL__ 59 | 60 | int sceDrmBBMacInit(SceMacKey *mac_key, int type); 61 | int sceDrmBBMacUpdate(SceMacKey *mac_key, u8 *buf, int size); 62 | int sceAmctrl_driver_9227EA79(SceMacKey *mac_key, u8 *buf, int size); 63 | int sceDrmBBMacFinal(SceMacKey *mac_key, u8 *buf, u8 *version_key); 64 | int sceDrmBBMacFinal2(SceMacKey *mac_key, u8 *buf, u8 *version_key); 65 | 66 | int sceDrmBBCipherInit(SceCipherKey *cipher_key, int type, int mode, u8 *header_key, u8 *version_key, int seed); 67 | int sceDrmBBCipherUpdate(SceCipherKey *cipher_key, u8 *buf, int size); 68 | int sceAmctrl_driver_E04ADD4C(SceCipherKey *cipher_key, u8 *buf, int size); 69 | int sceDrmBBCipherFinal(SceCipherKey *cipher_key); 70 | 71 | #endif // __KERNEL__ 72 | 73 | #ifdef __cplusplus 74 | } 75 | #endif // __cplusplus 76 | 77 | #endif // AM_CTRL_H -------------------------------------------------------------------------------- /user/states.h: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #ifndef __STATES_H__ 20 | #define __STATES_H__ 21 | 22 | #include 23 | 24 | #include "../adrenaline_compat.h" 25 | 26 | #define MAX_STATES 32 27 | #define MAX_POSITION 3 28 | 29 | #define RIGHT_ARROW "\xE2\x96\xB6" 30 | #define LEFT_ARROW "\xE2\x97\x80" 31 | 32 | #define SCREENSHOT_WIDTH 240 33 | #define SCREENSHOT_HEIGHT 136 34 | #define SCREENSHOT_SIZE (SCREENSHOT_WIDTH * SCREENSHOT_HEIGHT * 4) 35 | 36 | #define ADRENALINE_SAVESTATE_MAGIC 0x54535653 37 | #define ADRENALINE_SAVESTATE_VERSION ADRENALINE_VERSION 38 | 39 | typedef struct { 40 | uint32_t magic; // 0x00 41 | uint32_t version; // 0x04 42 | char title[0x80]; // 0x08 43 | uint32_t sp; // 0x88 44 | uint32_t ra; // 0x8C 45 | uint32_t screenshot_offset; // 0x90 46 | uint32_t screenshot_size; // 0x94 47 | uint32_t descriptors_offset; // 0x98 48 | uint32_t descriptors_size; // 0x9C 49 | uint32_t ram_part1_offset; // 0xA0 50 | uint32_t ram_part1_size; // 0xA4 51 | uint32_t ram_part2_offset; // 0xA8 52 | uint32_t ram_part2_size; // 0xAC 53 | char reserved[0x50]; // 0xB0 54 | } AdrenalineStateHeader; // 0x100 55 | 56 | typedef struct { 57 | int num; 58 | vita2d_texture *tex; 59 | char title[128]; 60 | SceOff size; 61 | SceDateTime time; 62 | } AdrenalineStateEntry; 63 | 64 | extern int open_options; 65 | 66 | void makeSaveStatePath(char *path, int num); 67 | 68 | int initStates(); 69 | void finishStates(); 70 | void drawStates(); 71 | void ctrlStates(); 72 | 73 | #endif -------------------------------------------------------------------------------- /docs/src/02-Install.md: -------------------------------------------------------------------------------- 1 | # Installation & Updates 2 | --- 3 | 4 | ## Installation 5 | --- 6 | 7 | It is recommended to do this approach for a fresh installation. Otherwise, use the [Update](#update) section. 8 | 9 | 1. Remove the Adrenaline bubble and the `ux0:app/PSPEMUCFW/sce_module/adrenaline_kernel.skprx` path from the taiHEN config.txt and finally reboot your device. 10 | 2. Download [Adrenaline.vpk](https://github.com/isage/Adrenaline/releases) and install it using [VitaShell](https://github.com/RealYoti/VitaShell/releases). 11 | 3. Launch Adrenaline and press `X` to download the 6.61 firmware. After finishing, it will automatically terminate. 12 | 4. Relaunch Adrenaline; this time, it will go into PSPemu mode. Follow the instructions on the screen. 13 | 14 | > [!TIP] Getting rid of the double launch bug 15 | > Adrenaline needs to launch twice every time you reboot your device. This is done automatically but that increases the boot time for Adrenaline. 16 | > 17 | > To get rid of such a limitation, simply write this line to `*KERNEL` section of you `ur0:/tai/config.txt` file: 18 | > 19 | > ``` 20 | > *KERNEL 21 | > ux0:app/PSPEMUCFW/sce_module/adrenaline_kernel.skprx 22 | > ``` 23 | > 24 | > After that, Adrenaline will only need to be launched once, improving the time to boot the [vPSP](./XX-Glossary.md) environment. 25 | 26 | ## Update 27 | --- 28 | 29 | If you have already been using Adrenaline, you have three update options: Manual, Update PBP, and Network. 30 | 31 | ### Manual 32 | 33 | 1. Download [Adrenaline.vpk](https://github.com/isage/Adrenaline/releases) 34 | 2. Open the vpk file as a zip 35 | 3. Copy all files from `sce_module` directory to `ux0:app/PSPEMUCFW/sce_module` 36 | 37 | ### Update PBP 38 | 39 | 1. Download the updater [EBOOT.PBP](http://adrenaline.sarcasticat.com/EBOOT.PBP) 40 | 2. Put the file at `ux0:/pspemu/PSP/GAME/UPDATE/` directory (create it if needed) 41 | 3. Launch Adrenaline 42 | 4. Run the update application 43 | 44 | ### Network 45 | 46 | 1. Launch Adrenaline 47 | 2. On the XMB/VSH, go to **System Settings** > **System Update** 48 | 3. Press `X` to download the update with the console. 49 | 50 | > [!IMPORTANT] 51 | > If you have installed a version below v7.1.0, the network update won't work; you will have to update with one of the other two remaining methods. -------------------------------------------------------------------------------- /cef/systemctrl/malloc.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | #include "main.h" 22 | 23 | // SceUID heapid = -1; 24 | 25 | static void* malloc_impl(SceUID partition, SceSize size) { 26 | SceUID uid = sceKernelAllocPartitionMemory(partition, "", 1, size+sizeof(SceUID), NULL); 27 | int* ptr = sceKernelGetBlockHeadAddr(uid); 28 | if (ptr){ 29 | ptr[0] = uid; 30 | return &(ptr[1]); 31 | } 32 | return NULL; 33 | } 34 | 35 | void oe_free(void *ptr) { 36 | if (ptr != NULL) { 37 | SceUID uid = ((SceUID*)ptr)[-1]; 38 | sceKernelFreePartitionMemory(uid); 39 | } 40 | } 41 | 42 | void user_free(void* ptr) { 43 | oe_free(ptr); 44 | } 45 | 46 | void *oe_malloc(SceSize size) { 47 | return malloc_impl(PSP_MEMORY_PARTITION_KERNEL, size); 48 | } 49 | 50 | void* user_malloc(SceSize size) { 51 | return malloc_impl(PSP_MEMORY_PARTITION_USER, size); 52 | } 53 | 54 | void* user_memalign(SceSize align, SceSize size) { 55 | SceUID uid = sceKernelAllocPartitionMemory(PSP_MEMORY_PARTITION_USER, "", 1, size+sizeof(SceUID)+align, NULL); 56 | int* ptr = sceKernelGetBlockHeadAddr(uid); 57 | if (ptr){ 58 | ptr = (void*)(((u32)ptr & (~(align-1))) + 64); 59 | ptr[-1] = uid; 60 | return ptr; 61 | } 62 | return NULL; 63 | } 64 | 65 | int mallocinit() { 66 | int keyconfig = sceKernelApplicationType(); 67 | if ((keyconfig == SCE_APPTYPE_POPS) || (keyconfig == SCE_APPTYPE_GAME && sceKernelInitApitype() == SCE_APITYPE_UMD_EMU_MS1)) { 68 | return 0; 69 | } 70 | 71 | // heapid = sceKernelCreateHeap(PSP_MEMORY_PARTITION_KERNEL, 256 * 1024, 1, ""); 72 | 73 | // return (heapid < 0) ? heapid : 0; 74 | return 0; 75 | } -------------------------------------------------------------------------------- /cef/include/extratypes.h: -------------------------------------------------------------------------------- 1 | #ifndef _EPI_EXTRA_TYPES_H 2 | #define _EPI_EXTRA_TYPES_H 3 | 4 | #include 5 | 6 | typedef enum IsoDiscType { 7 | ISO_DISC_TYPE_GAME = 0x10, 8 | ISO_DISC_TYPE_VIDEO = 0x20, 9 | ISO_DISC_TYPE_AUDIO = 0x40, 10 | } IsoDiscType; 11 | 12 | typedef struct { 13 | u32 magic; 14 | u32 version; 15 | u32 param_offset; 16 | u32 icon0_offset; 17 | u32 icon1_offset; 18 | u32 pic0_offset; 19 | u32 pic1_offset; 20 | u32 snd0_offset; 21 | u32 elf_offset; 22 | u32 psar_offset; 23 | } PBPHeader; 24 | 25 | typedef struct __attribute__((packed)) { 26 | u32 signature; 27 | u32 version; 28 | u32 fields_table_offs; 29 | u32 values_table_offs; 30 | int nitems; 31 | } SFOHeader; 32 | 33 | typedef struct __attribute__((packed)) { 34 | u16 field_offs; 35 | u8 unk; 36 | u8 type; // 0x2 -> string, 0x4 -> number 37 | u32 unk2; 38 | u32 unk3; 39 | u16 val_offs; 40 | u16 unk4; 41 | } SFODir; 42 | 43 | typedef struct { 44 | u16 label_offset; 45 | u16 type; 46 | u32 size; 47 | u32 size_padded; 48 | u32 data_offset; 49 | } SFOtable; 50 | 51 | typedef struct { 52 | u32 signature; 53 | u32 version; 54 | u32 fields_table_offs; 55 | u32 values_table_offs; 56 | int nitems; 57 | SFOtable sfotable[]; 58 | } SFO; 59 | 60 | typedef struct BtcnfHeader { 61 | u32 signature; // 0 62 | u32 devkit; // 4 63 | u32 unknown[2]; // 8 64 | u32 modestart; // 0x10 65 | int nmodes; // 0x14 66 | u32 unknown2[2]; // 0x18 67 | u32 modulestart; // 0x20 68 | int nmodules; // 0x24 69 | u32 unknown3[2]; // 0x28 70 | u32 modnamestart; // 0x30 71 | u32 modnameend; // 0x34 72 | u32 unknown4[2]; // 0x38 73 | } __attribute__((packed)) BtcnfHeader; 74 | 75 | typedef struct ModeEntry { 76 | u16 maxsearch; 77 | u16 searchstart; // 78 | int mode1; 79 | int mode2; 80 | int reserved[5]; 81 | } __attribute__((packed)) ModeEntry; 82 | 83 | typedef struct ModuleEntry { 84 | u32 stroffset; // 0 85 | int reserved; // 4 86 | u16 flags; // 8 87 | u8 loadmode; // 10 88 | u8 signcheck; // 11 89 | int reserved2; // 12 90 | u8 hash[0x10]; // 16 91 | } __attribute__((packed)) ModuleEntry; // 32 92 | 93 | typedef struct { 94 | char *name; 95 | void *buffer; 96 | u32 size; 97 | } BootFile; 98 | 99 | 100 | #endif // _EPI_EXTRA_TYPES_H -------------------------------------------------------------------------------- /cef/binary/build_bin.mak: -------------------------------------------------------------------------------- 1 | # PSP Software Development Kit - http://www.pspdev.org 2 | # ----------------------------------------------------------------------- 3 | # Licensed under the BSD license, see LICENSE in PSPSDK root for details. 4 | # 5 | # build.mak - Base makefile for projects using PSPSDK. 6 | # 7 | # Copyright (c) 2005 Marcus R. Brown 8 | # Copyright (c) 2005 James Forshaw 9 | # Copyright (c) 2005 John Kelley 10 | # 11 | # $Id: build.mak 355 2005-06-27 07:38:48Z mrbrown $ 12 | 13 | # Note: The PSPSDK make variable must be defined before this file is included. 14 | ifeq ($(PSPSDK),) 15 | $(error $$(PSPSDK) is undefined. Use "PSPSDK := $$(shell psp-config --pspsdk-path)" in your Makefile) 16 | endif 17 | 18 | CC = psp-gcc 19 | CXX = psp-g++ 20 | AS = psp-gcc 21 | #LD = psp-gcc 22 | LD = psp-ld 23 | AR = psp-ar 24 | RANLIB = psp-ranlib 25 | STRIP = psp-strip 26 | 27 | # Add in PSPSDK includes and libraries. 28 | INCDIR := $(INCDIR) . $(PSPSDK)/include 29 | LIBDIR := $(LIBDIR) . $(PSPSDK)/lib 30 | 31 | CFLAGS := $(addprefix -I,$(INCDIR)) $(CFLAGS) 32 | CXXFLAGS := $(CFLAGS) $(CXXFLAGS) 33 | ASFLAGS := $(CFLAGS) $(ASFLAGS) 34 | 35 | LDFLAGS := $(addprefix -L,$(LIBDIR)) $(LDFLAGS) 36 | 37 | # Library selection. By default we link with PSPSDK's libc. Allow the 38 | # user to link with Newlib's libc if USE_NEWLIB_LIBC is set to 1. 39 | #PSPSDK_LIBC_LIB = -lpsplibc 40 | #ifeq ($(USE_NEWLIB_LIBC),1) 41 | #PSPSDK_LIBC_LIB = -lc -lpspglue 42 | #endif 43 | 44 | # Link with following default libraries. Other libraries should be specified in the $(LIBS) variable. 45 | # TODO: This library list needs to be generated at configure time. 46 | #PSPSDK_LIBS = -lpspdebug 47 | #LIBS := $(LIBS) $(PSPSDK_LIBS) $(PSPSDK_LIBC_LIB) -lpspkernel 48 | # 49 | ifneq ($(TARGET_LIB),) 50 | FINAL_TARGET = $(TARGET_LIB) 51 | else 52 | FINAL_TARGET = $(TARGET).bin 53 | endif 54 | 55 | all: $(EXTRA_TARGETS) $(FINAL_TARGET) 56 | 57 | $(TARGET).bin: $(TARGET).elf 58 | $(STRIP) -s -O binary $(TARGET).elf -o $(TARGET).bin 59 | -rm -f $(TARGET).elf 60 | 61 | $(TARGET).elf: $(OBJS) 62 | -rm -f $(TARGET).elf 63 | $(LINK.c) $^ $(LIBS) -o $(TARGET).elf 64 | 65 | $(TARGET_LIB): $(OBJS) 66 | $(AR) cru $@ $(OBJS) 67 | 68 | clean: $(EXTRA_CLEAN) 69 | -rm -f $(FINAL_TARGET) $(OBJS) 70 | -------------------------------------------------------------------------------- /cef/lib/build_bin.mak: -------------------------------------------------------------------------------- 1 | # PSP Software Development Kit - http://www.pspdev.org 2 | # ----------------------------------------------------------------------- 3 | # Licensed under the BSD license, see LICENSE in PSPSDK root for details. 4 | # 5 | # build.mak - Base makefile for projects using PSPSDK. 6 | # 7 | # Copyright (c) 2005 Marcus R. Brown 8 | # Copyright (c) 2005 James Forshaw 9 | # Copyright (c) 2005 John Kelley 10 | # 11 | # $Id: build.mak 355 2005-06-27 07:38:48Z mrbrown $ 12 | 13 | # Note: The PSPSDK make variable must be defined before this file is included. 14 | ifeq ($(PSPSDK),) 15 | $(error $$(PSPSDK) is undefined. Use "PSPSDK := $$(shell psp-config --pspsdk-path)" in your Makefile) 16 | endif 17 | 18 | CC = psp-gcc 19 | CXX = psp-g++ 20 | AS = psp-gcc 21 | #LD = psp-gcc 22 | LD = psp-ld 23 | AR = psp-ar 24 | RANLIB = psp-ranlib 25 | STRIP = psp-strip 26 | 27 | # Add in PSPSDK includes and libraries. 28 | INCDIR := $(INCDIR) . $(PSPSDK)/include 29 | LIBDIR := $(LIBDIR) . $(PSPSDK)/lib 30 | 31 | CFLAGS := $(addprefix -I,$(INCDIR)) $(CFLAGS) -D__KERNEL__ 32 | CXXFLAGS := $(CFLAGS) $(CXXFLAGS) 33 | ASFLAGS := $(CFLAGS) $(ASFLAGS) 34 | 35 | LDFLAGS := $(addprefix -L,$(LIBDIR)) $(LDFLAGS) 36 | 37 | # Library selection. By default we link with PSPSDK's libc. Allow the 38 | # user to link with Newlib's libc if USE_NEWLIB_LIBC is set to 1. 39 | #PSPSDK_LIBC_LIB = -lpsplibc 40 | #ifeq ($(USE_NEWLIB_LIBC),1) 41 | #PSPSDK_LIBC_LIB = -lc -lpspglue 42 | #endif 43 | 44 | # Link with following default libraries. Other libraries should be specified in the $(LIBS) variable. 45 | # TODO: This library list needs to be generated at configure time. 46 | #PSPSDK_LIBS = -lpspdebug 47 | #LIBS := $(LIBS) $(PSPSDK_LIBS) $(PSPSDK_LIBC_LIB) -lpspkernel 48 | # 49 | ifneq ($(TARGET_LIB),) 50 | FINAL_TARGET = $(TARGET_LIB) 51 | else 52 | FINAL_TARGET = $(TARGET).bin 53 | endif 54 | 55 | all: $(EXTRA_TARGETS) $(FINAL_TARGET) 56 | 57 | $(TARGET).bin: $(TARGET).elf 58 | $(STRIP) -s -O binary $(TARGET).elf -o $(TARGET).bin 59 | -rm -f $(TARGET).elf 60 | 61 | $(TARGET).elf: $(OBJS) 62 | -rm -f $(TARGET).elf 63 | $(LINK.c) $^ $(LIBS) -o $(TARGET).elf 64 | 65 | $(TARGET_LIB): $(OBJS) 66 | $(AR) cru $@ $(OBJS) 67 | 68 | clean: $(EXTRA_CLEAN) 69 | -rm -f $(FINAL_TARGET) $(OBJS) 70 | -------------------------------------------------------------------------------- /cef/include/isoctrl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Unified UMDemu ISO driver API 3 | Copyright (C) 2016-2018, TheFloW 4 | Copyright (C) 2024-2025, isage 5 | Copyright (C) 2025, GrayJack 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | /** 22 | * Header for the unified API of the UMDemu ISO drivers: Inferno, March33 and Galaxy (NP9660). 23 | * 24 | * To use the functions, it is required to link to one of the driver stubs. 25 | * - `libpspisoctrl_driver`: unified for all UMDemu ISO drivers of Adrenaline 26 | * - `libpspinferno_driver` 27 | * - `libpspmarch33_driver` 28 | * - `libpspgalaxy_driver` 29 | */ 30 | 31 | #ifndef ISO_CTRL_H 32 | #define ISO_CTRL_H 33 | 34 | #include 35 | 36 | #ifdef __KERNEL__ 37 | 38 | /** 39 | * Issue a direct ISO/CSO read request to the UMDemu ISO driver. 40 | * 41 | * @param offset The offset/sector within the Virtual UMD to start reading from. Absolute Offset. 42 | * @param buf The buffer to write data to. 43 | * @param size The amount of bytes to read. 44 | * 45 | * @return The amount of bytes read, `< 0` on error. 46 | */ 47 | int isoReadUmdFile(u32 offset, void *buf, u32 size); 48 | 49 | /** 50 | * Sets UMD speed simulation. 51 | * 52 | * @param seek The seek delay factor. `0` to disable, `> 0` to enable, the higher the value the slower the seek time. 53 | * @param speed The read speed delay factor. `0` to disable, `> 0` to enable, the higher the value the slower the read time. 54 | * 55 | */ 56 | void isoSetUmdDelay(int seek, int speed); 57 | 58 | /** 59 | * Gets the Title ID of the ISO/CSO file of the UMDemu ISO driver. 60 | * 61 | * @param title_id The string buffer to write the data into 62 | * 63 | * @return `0` if getting the Title ID fails, `1` if succeeded. 64 | */ 65 | int isoGetTitleId(char title_id[10]); 66 | 67 | #endif // __KERNEL__ 68 | 69 | #endif // ISO_CTRL_H -------------------------------------------------------------------------------- /cef/payloadex/libc.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | #include 22 | 23 | unsigned int _strlen(const char *s) { 24 | int len = 0; 25 | while (*s) { 26 | s++; 27 | len++; 28 | } 29 | 30 | return len; 31 | } 32 | 33 | int _strcmp(const char *s1, const char *s2) { 34 | int val = 0; 35 | const u8 *u1, *u2; 36 | 37 | u1 = (u8 *)s1; 38 | u2 = (u8 *)s2; 39 | 40 | while (1) { 41 | if (*u1 != *u2) { 42 | val = (int) *u1 - (int) *u2; 43 | break; 44 | } 45 | 46 | if ((*u1 == 0) && (*u2 == 0)) { 47 | break; 48 | } 49 | 50 | u1++; 51 | u2++; 52 | } 53 | 54 | return val; 55 | } 56 | 57 | void *_memcpy(void *dst, const void *src, int len) { 58 | void *pRet = dst; 59 | const char *usrc = (const char *)src; 60 | char *udst = (char *)dst; 61 | 62 | while (len > 0) { 63 | *udst++ = *usrc++; 64 | len--; 65 | } 66 | 67 | return pRet; 68 | } 69 | 70 | void *_memset(void *b, int c, size_t len) { 71 | void *pRet = b; 72 | u8 *ub = (u8 *)b; 73 | 74 | while (len > 0) { 75 | *ub++ = (u8)c; 76 | len--; 77 | } 78 | 79 | return pRet; 80 | } 81 | 82 | void *_memmove(void *dst, const void *src, size_t len) { 83 | void *pRet = dst; 84 | char *udst; 85 | const char *usrc; 86 | 87 | if (dst < src) { 88 | // Copy forwards 89 | udst = (char *)dst; 90 | usrc = (const char *)src; 91 | while (len > 0) { 92 | *udst++ = *usrc++; 93 | len--; 94 | } 95 | } else { 96 | // Copy backwards 97 | udst = ((char *)dst) + len; 98 | usrc = ((const char *)src) + len; 99 | while (len > 0) { 100 | *--udst = *--usrc; 101 | len--; 102 | } 103 | } 104 | 105 | return pRet; 106 | } -------------------------------------------------------------------------------- /cef/rebootex/libc.c: -------------------------------------------------------------------------------- 1 | /* 2 | Adrenaline 3 | Copyright (C) 2016-2018, TheFloW 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | #include 22 | 23 | unsigned int _strlen(const char *s) { 24 | int len = 0; 25 | while (*s) { 26 | s++; 27 | len++; 28 | } 29 | 30 | return len; 31 | } 32 | 33 | int _strcmp(const char *s1, const char *s2) { 34 | int val = 0; 35 | const u8 *u1, *u2; 36 | 37 | u1 = (u8 *)s1; 38 | u2 = (u8 *)s2; 39 | 40 | while (1) { 41 | if (*u1 != *u2) { 42 | val = (int) *u1 - (int) *u2; 43 | break; 44 | } 45 | 46 | if ((*u1 == 0) && (*u2 == 0)) { 47 | break; 48 | } 49 | 50 | u1++; 51 | u2++; 52 | } 53 | 54 | return val; 55 | } 56 | 57 | void *_memcpy(void *dst, const void *src, int len) { 58 | void *pRet = dst; 59 | const char *usrc = (const char *)src; 60 | char *udst = (char *)dst; 61 | 62 | while (len > 0) { 63 | *udst++ = *usrc++; 64 | len--; 65 | } 66 | 67 | return pRet; 68 | } 69 | 70 | void *_memset(void *b, int c, size_t len) { 71 | void *pRet = b; 72 | u8 *ub = (u8 *)b; 73 | 74 | while (len > 0) { 75 | *ub++ = (u8)c; 76 | len--; 77 | } 78 | 79 | return pRet; 80 | } 81 | 82 | void *_memmove(void *dst, const void *src, size_t len) { 83 | void *pRet = dst; 84 | char *udst; 85 | const char *usrc; 86 | 87 | if (dst < src) { 88 | // Copy forwards 89 | udst = (char *)dst; 90 | usrc = (const char *)src; 91 | while (len > 0) { 92 | *udst++ = *usrc++; 93 | len--; 94 | } 95 | } else { 96 | // Copy backwards 97 | udst = ((char *)dst) + len; 98 | usrc = ((const char *)src) + len; 99 | while (len > 0) { 100 | *--udst = *--usrc; 101 | len--; 102 | } 103 | } 104 | 105 | return pRet; 106 | } -------------------------------------------------------------------------------- /cef/kermit_idstorage/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #define _ADRENALINE_LOG_IMPL_ 5 | #include 6 | 7 | PSP_MODULE_INFO("sceIdStorage_Service", 0x1007, 1, 4); 8 | 9 | int sceIdStorageCreateLeaf(void) { 10 | return 0; 11 | } 12 | 13 | int sceIdStorageWriteLeaf(void) { 14 | return 0; 15 | } 16 | 17 | int sceIdStorageDeleteLeaf(void) { 18 | return 0; 19 | } 20 | 21 | int sceIdStorageEnd(void) { 22 | return 0; 23 | } 24 | 25 | int sceIdStorageIsReadOnly(void) { 26 | return 1; 27 | } 28 | 29 | int sceIdStorageEnumId(void) { 30 | return 0; 31 | } 32 | 33 | int sceIdStorageGetFreeLeaves(void) { 34 | return 0; 35 | } 36 | 37 | int sceIdStorageFlush(void) { 38 | return 0; 39 | } 40 | 41 | int sceIdStorageUpdate(void) { 42 | return 0; 43 | } 44 | 45 | int sceIdStorageFormat(void) { 46 | return 0; 47 | } 48 | 49 | int sceIdStorageCreateAtomicLeaves(void) { 50 | return 0; 51 | } 52 | 53 | int sceIdStorageInit(void) { 54 | return 0; 55 | } 56 | 57 | int sceIdStorageIsDirty(void) { 58 | return 0; 59 | } 60 | 61 | int sceIdStorageGetLeafSize(void) { 62 | return 0x200; 63 | } 64 | 65 | int sceIdStorageUnformat(void) { 66 | return 0; 67 | } 68 | 69 | int sceIdStorageIsFormatted(void) { 70 | return 1; 71 | } 72 | 73 | int sceKermitPeripheral_driver_C6F8B4E1(short key,int offset,void *buf,int len); 74 | int sceWlanDevGetMacAddr(void* buf); 75 | 76 | int sceIdStorageLookup(short key,int offset,void *buf,int len) { 77 | logmsg("sceIdStorageLookup(0x%04X, %d, buf, %d)\n", key, offset, len); 78 | 79 | // Vita side doesn't handle keys < 0x100 and > 0x13F 80 | if (key == 0x44) { 81 | if (offset == 0) { 82 | sceWlanDevGetMacAddr(buf); 83 | return 0; 84 | } 85 | } 86 | else if (key == 0x51) { 87 | if (offset == 0) { 88 | strcpy(buf,"6.61"); 89 | return 0; 90 | } 91 | } 92 | else if ((key == 0x100) && (offset == 0)) { 93 | buf = (void *)((int)buf + 0x38); 94 | offset = 0x38; 95 | len = 0xb8; 96 | } 97 | 98 | return sceKermitPeripheral_driver_C6F8B4E1(key,offset,buf,len); 99 | } 100 | 101 | int sceIdStorageReadLeaf(short key,void *buf) { 102 | return sceIdStorageLookup(key,0,buf,0x200); 103 | } 104 | 105 | int module_start(void) { 106 | logInit("ms0:/log_idstorage.txt"); 107 | logmsg("Kermit ID Storage started...\n"); 108 | return 0; 109 | } 110 | 111 | int module_reboot_before(void) { 112 | return 0; 113 | } 114 | -------------------------------------------------------------------------------- /cef/inferno/isoread.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of PRO CFW. 3 | 4 | * PRO CFW is free software: you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation, either version 3 of the License, or 7 | * (at your option) any later version. 8 | 9 | * PRO CFW is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with PRO CFW. If not, see 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | #include 27 | #include 28 | // #include 29 | #include 30 | 31 | 32 | #include "inferno.h" 33 | #include "../bits/iso_common.h" 34 | 35 | u8 umd_seek = 0; 36 | u8 umd_speed = 0; 37 | u32 cur_offset = 0; 38 | u32 last_read_offset = 0; 39 | 40 | int (*iso_reader)(IoReadArg *args) = &iso_read; 41 | int isoReadUmdFile(u32 offset, void *ptr, u32 data_len) { 42 | int ret = sceKernelWaitSema(g_umd9660_sema_id, 1, 0); 43 | 44 | if (ret < 0) { 45 | return -1; 46 | } 47 | 48 | g_read_arg.offset = offset; 49 | g_read_arg.address = ptr; 50 | g_read_arg.size = data_len; 51 | 52 | int retv = sceKernelExtendKernelStack(0x2000, (void*)iso_reader, &g_read_arg); 53 | 54 | ret = sceKernelSignalSema(g_umd9660_sema_id, 1); 55 | 56 | if (ret < 0) { 57 | return -1; 58 | } 59 | 60 | if (umd_seek){ 61 | // simulate seek time 62 | u32 diff = 0; 63 | last_read_offset = offset+data_len; 64 | if (cur_offset > last_read_offset) { 65 | diff = cur_offset-last_read_offset; 66 | } else { 67 | diff = last_read_offset-cur_offset; 68 | } 69 | cur_offset = last_read_offset; 70 | u32 seek_time = (diff*umd_seek)/1024; 71 | sceKernelDelayThread(seek_time); 72 | } 73 | if (umd_speed){ 74 | // simulate read time 75 | sceKernelDelayThread(data_len*umd_speed); 76 | } 77 | 78 | return retv; 79 | } 80 | 81 | void infernoSetUmdDelay(int seek, int speed) { 82 | umd_seek = seek; 83 | umd_speed = speed; 84 | } --------------------------------------------------------------------------------