Commit Graph

169 Commits

Author SHA1 Message Date
Maschell
46358ce67a Added SD/USB support for plugins!
Now the plugins inherit the SD/USB access from the loader.
Check
(args != NULL && (args->device_mounted & WUPS_SD_MOUNTED) > 0)
in your INITIALZE method if you have SD access, and
(args != NULL && (args->device_mounted & WUPS_USB_MOUNTED) > 0)
for usb access.
You can simply use open, read etc. then with "sd:/" and "usb:".
No (un)mounting required.
NTFS support is NOT implemented yet.

So:
HID to VPAD plugin can now read configurations
SDCafiine now has support for libfat (other games than SSBU + FAT32 USB)
2018-02-14 22:52:16 +01:00
Maschell
f8e8f7f52e [Travis] Added Makefile to the plugins folder to build all with one command. 2018-02-14 22:36:28 +01:00
Maschell
b350d7e478 [Travis] Fixed the travis script. Added devkitARM 2018-02-14 19:52:14 +01:00
Maschell
b8d2c51f76 [Plugins] Don't mount the SDCard withing the SDCafiine plugin.
This breaks the SDCafiine, but will be hopefully fixed later!
2018-02-14 19:47:52 +01:00
Maschell
dc8a9a81fc [Loader] Added mocha and device mounting.
- Now patching two more function which could be used as hooks (PPCExit and ProcUIProcessMessages)
2018-02-14 19:46:14 +01:00
Maschell
894a60c2bf [Loader] Moved method elfLink from ModuleData to ElfTools, other minor stuff 2018-02-14 18:18:42 +01:00
Maschell
389e3ba5f1 [Loader] Added some more comments and TODOs 2018-02-13 22:36:05 +01:00
Maschell
b7f9e68c90 [Loader] Updated logging message 2018-02-13 22:28:08 +01:00
Maschell
a31d6e8db5 [Loader] Huge refactoring. Getting rid of the global lists in C. Using std::vector now and classes. 2018-02-13 22:20:38 +01:00
Maschell
78a160a74c [Plugins] Added readmes to the plugins, renamed SwapDRC to SwipSwapMe 2018-02-13 08:22:05 +01:00
Maschell
96224310b0 [Plugin] Added HID to VPAD support
- Missing support for configuration files
- Missing controller mapper (all controller map to the gamepad by default)

BUT:
- Network controller support!
- Support for pads with built in support (Switch Pro Controller via USB, GC Adapter, XInput via network client etc.)

- Updated travis script
2018-02-12 20:53:37 +01:00
Maschell
7aec6a2bfd [General] Updated the wups_loader_entry_t struct
Removed the union
2018-02-12 20:51:24 +01:00
Maschell
48e5ea7e4c [Plugins] Updated the SDCafiine plugin
- Now using the FSWrapper lib
- Added the modpack selector
- Still only support for games with nativ SD Access
2018-02-12 20:50:27 +01:00
Maschell
b9af38c7ff [General] Removed the DISCARD section in the .ld file. This fixes C++ support.. 2018-02-12 20:40:54 +01:00
Maschell
8c0a3c965b [Plugin] Added a port of SwapDRC (SwipSwapMe) 2018-02-11 19:49:42 +01:00
Maschell
38e045e41d [Loader] Fixed returning to the HBL if multiple plugin override the same function
- They need to be restored in the reversed order!
- Disabled verbose function patching logging.
2018-02-11 18:52:11 +01:00
Maschell
34e5773714 [Loader] Load the SDCafiine plugin 2018-02-11 18:43:32 +01:00
Maschell
af3e5086f5 [Plugins] Fixed the SDCafiine plugin 2018-02-11 18:43:12 +01:00
Maschell
ac912010f2 [Plugins] Started on creating a SDCafiine plugin. Still WIP.
- Stiil need to add iosuhax support (probably thrpugh iosuhax n the loader)
- modpack chooser needs complety rewritten in C =(

So currently this is only compatible with games with nativ sd access.
Probably unstable!
2018-02-11 18:33:07 +01:00
Maschell
2cbc49b030 [Loader] only procced when the loading was successful 2018-02-11 18:18:10 +01:00
Maschell
d12bb68c16 [Plugins] Remove the fPIC flag, is not needed. 2018-02-11 18:16:32 +01:00
Maschell
3cc18c2557 [Plugins] Updated the Makefile
- Added some comments
- Linking without --relocatable to check if all symbols can be found
- cleanup
2018-02-11 14:45:20 +01:00
Maschell
2d685cf41f [General] Fixed the travis script 2018-02-11 03:40:29 +01:00
Maschell
d181e445c7 [Plugins] Updated the Makefile. C++ and stdlib should work now.
- Using a different base for the makefile, which provides some more function
- Linking with stdlib should work now
- C++ _should_ work. not really tested yet.

[Example Plugin] Updated example plugin to log all FSOpen actions.
2018-02-11 03:26:54 +01:00
Maschell
db29f7a302 [Loader] Only load plugin if no more relocations are needed. 2018-02-11 03:24:32 +01:00
Maschell
c53b6a3d8e [Loader] unmount sdcard after loading the plugins 2018-02-10 17:10:20 +01:00
Maschell
53bbfa3bd4 [Travis] Added padcon to nightly release 2018-02-10 17:08:18 +01:00
Maschell
e58dc7a506 [Plugins] Added a simple padcon plugin! 2018-02-10 17:06:42 +01:00
Maschell
9ebad4be5d [example_plugin] Changed to example_plugin to hook into FS_INIT
- Using the init hook
2018-02-10 17:05:32 +01:00
Maschell
ec217c6aef [Loader] Added support for the init hook.
- The loader now returns to the system menu and restores all patches when entering mii maker.
2018-02-10 17:05:11 +01:00
Maschell
81b5bed341 [WUPS] Added Macro for the Initialization hook 2018-02-10 17:00:17 +01:00
Maschell
17e34ad60b [Loader] First successfull, complete replacement!
- Copied the function patcher from the function_patcher example and modified to work with this porject
- Minor formatting
- Added global struct with stores the replacement functions
- Extended the useable space for plugins
2018-02-10 14:58:58 +01:00
Maschell
b6119fde91 [Example Plugin] Updated the example plugin to override the OSFatal function.
The new OSFatal function logs the old message, and the calls the "real" OSFatal with a new String.
[General] - Added the .sdata section to the wups.ld
- Added all library_types to the enum
- Updated the wups_loader_entry_t struct to store the needed data
- Simplified the WUPS_MUST_REPLACE macro
- Removed unneeded stuff
2018-02-10 14:56:07 +01:00
Maschell
10c5eccd93 [Example Plugin] Updated the example plugin
- It's now linking with libc/libutils/libdynamiclibs
- moved the main.c into the a "src" folder

[Loader]- Added DCFlushRange and DCInvalidateRange
- Improved logging.

Finally we can load the plugin from the sdcard and call it's function!
2018-02-09 21:31:05 +01:00
Maschell
4ce98a64f1 [General] Added file to .gitignore 2018-02-09 21:28:57 +01:00
Maschell
4cdcbe2d20 [Loader] Added missing relocation type 2018-02-09 21:28:39 +01:00
Maschell
46456df8fc [Loader] Updated the loader to call functions
Progress?
2018-02-04 22:25:15 +01:00
Maschell
83a9aa7b7b [WUPS] Make the include c++ compatible 2018-02-04 22:18:43 +01:00
Maschell
88f323de17 [example_plugin] not using the "real" function in example 2018-02-04 22:18:09 +01:00
Maschell
437cbf9a66 [General] Fixed ld file 2018-02-04 21:55:08 +01:00
Maschell
ef9579c6ba [Loader] Added code to parse the wups.load section
And copy the functions into the target space. Relocation is next!
2018-02-04 18:05:04 +01:00
Maschell
e901ad77cf [Example Plugin] Added second function 2018-02-04 18:03:58 +01:00
Maschell
72fb6ee5ea [WUPS] Fixed the module compiling 2018-02-04 16:44:37 +01:00
Maschell
5ed70a368e [Loader] Code formatting 2018-02-04 16:42:59 +01:00
Maschell
76271cee58 [Loader] Started to work on the module parsing
Based on the original brainslug code with some changes.
Currently it's possible to parse the meta data.
2018-02-04 16:41:00 +01:00
Maschell
b0f7567243 [Loader] removed unused makefile 2018-02-04 16:39:11 +01:00
Maschell
0a31469246 [WUPS] rename the structs to be comaptible to C++ 2018-02-04 16:37:47 +01:00
Maschell
4c2489c1ff [Loader] Add the wups includes to the loader makefile 2018-02-04 16:35:13 +01:00
Maschell
d5800f49a2 [Loader ]Added missing define to libelf 2018-02-04 16:34:39 +01:00
Maschell
13cc202a2e [General] Moved the plugins into sd:/wiiu/plugins 2018-02-04 11:29:53 +01:00