Homebrew postLoader4

  • Thread starter Thread starter stfour
  • Start date Start date
  • Views Views 563,482
  • Replies Replies 4,203
  • Likes Likes 16
I'll be releasing an update for postLoader probably this weekend. The newest versions of Nintendont don't autoboot in postLoader anymore, and I intend to rectify that. Also, it seems to finally support larger emulated memory cards, so perhaps I'll let Nintendont use Devolution's method of having memory cards 0-7 (8 total) be around, so you can have up to 128MBytes of saves for every game (16MByte memory cards * 8 in total, should that many be created).

There's one downside: Newer versions of postLoader will only autoboot Nintendont 1.135 and up in the future, but the newest versions of Nintendont seem to be relatively stable anyway, so I don't feel that that's asking too much. This means you can still load older versions of it (1.134 and below) through the GC game interface, but the game you picked won't autoboot anymore.

Edit: On second thought, I'll try to make it compatible with both config versions, but it'll probably have to be a user toggle, since there's no reliable way to know what version of Nintendont that you're giving to postLoader.
 
postLoader 4.7.94

  • Nintendont: Fix auto video mode (it was broken, forcing NTSC all the time).
  • UI: Fix the "restart postLoader" option for USB. It wasn't even attempting to restart the application.
  • UI: Add a menu option to reboot the Wii to Priiloader, bypassing its autoboot.
  • UI: Let the GC analog triggers change pages when partially held down, instead of only working when entirely pressed.
  • UI: Hide the default video mode menu option for Nintendont, it didn't work anyway.
  • UI: Hide the manual MIOS install option when under Nintendont and Devolution, they don't use MIOS at all.
  • UI: Added AHBPROT info to the about screen (the + next to IOS is nice, but it's not immediately obvious what it means).
  • UI: Added Xerpi (libsicksaxis), Crediar, and Nintendont Team to credits.
  • UI: Fix a few more English typos.
Download
Source
daxtsu, out of curiosity how did add libsicksaxis and is it using the controller.ini file?
keep'em coming dax :)
 
AbdallahTerro: I compiled it into a library with the makefile and then put it in my libogc's lib folder (didn't make much sense to put it in $(PORTLIBS) when it's not a port).
 
AbdallahTerro: I compiled it into a library with the makefile and then put it in my libogc's lib folder (didn't make much sense to put it in $(PORTLIBS) when it's not a port).
That's why I've done too, "make" then sicksaxis.h and libsicksaxis.a are copied to my libogc folder,
so what do I need to add to wiiflow to make it use this library?
 
You need to add it to Wiiflow's makefile, with a line like this:

Code:
LIBS += -lsicksaxis

Then use code similar to the sample that comes with libsicksaxis. I personally preferred having function calls closer to libogc, so I ended up writing a wrapper around libsicksaxis to have similarly named calls (it also saved me from having to add much to postLoader in the first place. I pretty much just call my own DS3_Init, DS3_ScanPads, and DS3_ButtonsDown.
 
  • Like
Reactions: AbdallahTerro
https://github.com/thedax/postloader/commit/2f80dde81927b119ad1658c11d3ee708bfec6d9f

The wrapper only supports one controller (primary audience is Nintendont/Devolution users), but it seems to do everything I need it to in postLoader.
so I've added the sicksaxis-wrapper.c content to wiiflow's menu_input.cpp
and included both libsicksaxis and wrapper .h
and it compiled with this warning:
menu_input.cpp
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk0' [-Wmissing-field-initializers]
static DS3 first = { { 0 } };
^
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::buttons' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk1' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::left_analog' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::right_analog' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk2' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::dpad_sens' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::shoulder_sens' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::button_sens' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk3' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk4' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::status' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::power_rating' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::comm_status' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk5' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk6' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::unk7' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'SS_GAMEPAD::motion' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::attributes' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::device_id' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::fd' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::connected' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::enabled' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::reading' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::read_callback' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::removal_callback' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::read_usrdata' [-Wmissing-field-initializers]
d:/Downloads/open-wiiflow-mod-read-only/source/menu/menu_input.cpp:12:28: warning: missing initializer for member 'ss_device::removal_usrdata' [-Wmissing-field-initializers]
I think I'm getting closer to get it working
what shall I do next?

P.S: I did get a dol but obviously it didn't sync

Edit: what's "DS3"
 
DualShock 3, one of the names of the PS3 controller. I've never seen those warnings before, so I wouldn't know what to do about them. I pretty much just compiled it as-is from the Github repo: https://github.com/xerpi/libsicksaxis/archive/master.zip and then built my wrapper around it. If you're having this much trouble, I'd try to write a small homebrew with just libsicksaxis and my wrapper, if you're using it. Also, libsicksaxis only works over USB (i.e., it only works when a PS3 controller is connected via cable), so it's not a surprise that you couldn't sync it.
 
Just a little progress update: I got Nintendont working with argsboot, so postLoader won't mess around with your nincfg.bin anymore in future versions (unless you're using a legacy version of Nintendont, which will be a toggle-able option once I decide how to make the menu for it and a few other things). Next is to add and test the Devolution-like memory card idea I mentioned in a previous post.

Are there any objections to me simply forcing 16MByte memory card sizes (so it would work like Devolution does), if you (the users) enable the new memory card size option that Nintendont added a few versions ago? It'd be much easier to code (I think I can just reuse most of the stuff Devolution uses for it).
 
No, I didn't use anything from libsicksaxis' sample in postLoader. I only used my wrapper. Nobody said you had to use my wrapper to use libsicksaxis, though.
 
No, I didn't use anything from libsicksaxis' sample in postLoader. I only used my wrapper. Nobody said you had to use my wrapper to use libsicksaxis, though.
let me explain my plan again:
1. I tested PL4.7.94 and really liked the idea that i can now use my PS3-DualShock3 controller just like a GC controller to select stuff and change settings
2. So I want to make it work similarly in wiiflow (i.e. having it sync when WF starts upon pressing the "PS" button)
3. DS3 is always connected via USB since I use it for Nintendont
4. I compiled libsicksaxis and installed it via "make install"
5. I added -lsicksaxis to wiiflow.main makefile Libs
6. I included sicksaxis.hin menu.cpp and menu-input.cpp everything compiled fine with no errors but the dol didn't work
7. I compiled it again using your wrapper files and got the weird "DS3" warning and the dol didn't work too

from what you said earlier I understood that I only need to install and include the sicksaxis library in the makefile for it to work.
What am I missing?
Sorry for being a PITA :)
 
Just a little progress update: I got Nintendont working with argsboot, so postLoader won't mess around with your nincfg.bin anymore in future versions (unless you're using a legacy version of Nintendont, which will be a toggle-able option once I decide how to make the menu for it and a few other things). Next is to add and test the Devolution-like memory card idea I mentioned in a previous post.

Are there any objections to me simply forcing 16MByte memory card sizes (so it would work like Devolution does), if you (the users) enable the new memory card size option that Nintendont added a few versions ago? It'd be much easier to code (I think I can just reuse most of the stuff Devolution uses for it).
It would only be for the few games that need it to run and for people that want to use multiple memory cards for save files so I can't imagine people arguing over 16MBytes. I'm sure there will be those few that complain about space but the majority of users should be totally fine and it's less work for u so sounds great. the improvements coming in postLoader 4 are excellent thank you.
 

Site & Scene News

Popular threads in this forum