Hacking SoftChip Backup Loader

  • Thread starter Thread starter requiem4d
  • Start date Start date
  • Views Views 450,432
  • Replies Replies 1,540

requiem4d

Well-Known Member
Member
Joined
Oct 25, 2008
Messages
181
Reaction score
0
Trophies
1
XP
64
Country
United States
As some of you know, I have been writing the SoftChip backup loader for the past few days. With today being Election Day here in the states, I set today as the target release date for the first alpha. Unfortunately, I was unable to meet my goals with the time restraints I have had. However, I do intend to keep my promise to the community, and am releasing the sources today.

This software is not affiliated with GBAtemp or any of its members or staff, myself excluded, and I request that while you may discuss anything related to the software here, if you have an issue that you need resolved, please do it at the google code site.

So.... Here it is. Please don't run it unless you know what you're doing. I'm not responsible for anything anybody uses it for. I share no responsibility if it bricks your wii, ruins your tv, kills your controllers, burns your house down, and/or shoots your dog.

I would also like to request that this doesn't become known as "Requiem's loader". Its official name is SoftChip, and it belongs to the community.

Official Website: http://www.softchip-mod.com/
Google Code Site: http://code.google.com/p/wii-softchip/

For those of you who wish to contribute, the official IRC channel is #SoftChip on Freenode.

Thanks to everyone for your patience and support.

Edit: 2008-11-05

The loader is working as of svn r7. Test away. Please fill out any issue reports that you're having on the Google Code site.

Edit: 2008-11-08

There is no official compiled .dol. This is pre-alpha software, and is intended primarily for developers until it hits alpha.

Edit: 2008-11-13

Added link to official website.
 
QUOTE said:
So.... Here it is. Please don't run it unless you know what you're doing. I'm not responsible for anything anybody uses it for. I share no responsibility if it bricks your wii, ruins your tv, kills your controllers, burns your house down, and/or shoots your dog.
lol, hope all goes well
 
I am not a coder myself, but all I have to say is do not give up hope like so many coders I have seen come and go. if you look at the psp homebrew scene you'll know what I'm talking about.

Toukon!!!!
 
Good work so far. --- Pointers can be a pain in the ass...

Anyway, glanced over the code... I was expecting something quite a bit more confusing. I'll try and take a look at it once I get another break from classes. Doubt I'll make any discoveries, but it's definitely interesting to see the inner workings.
 
The goal was to make this code as easy to understand as possible. If nobody can read it, nobody can write it. Thanks.
 
QUOTE said:
The goal was to make this code as easy to understand as possible. If nobody can read it, nobody can write it. Thank
Makes sense
smile.gif
 
Annoying noob question:
Why do you use int and long instead of u32,u8,s32 etc.? All i know is, that the size of int and long vary from system to system, and i don't know the size of a long inside the wii. I think u32,u8,s32 etc. are unmissinterpretable.
 
The wii's sizes are the same from wii to wii. As it stands, this won't run on anything else. This was a "readability" concern for new coders not necessarily familiar with the libraries.
 
I know this is a alpha, not working release, but I got errors when I tried to compile it.
Code:
andy@compy386:~/.devkitPro/haxx/wii-softchip-read-only/softchip$ make
main.cpp
SoftChip.cpp
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp: In member function 'void SoftChip::Load()':
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:213: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:213: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:221: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:221: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:235: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:235: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'dword'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:256: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:256: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:265: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:265: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:272: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:272: warning: format '%x' expects type 'unsigned int', but argument 2 has type 'signed_blob*'
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp: At global scope:
/home/andy/.devkitPro/haxx/wii-softchip-read-only/softchip/source/SoftChip/SoftChip.cpp:45: warning: 'void Report(const char*, ...)' defined but not used
DIP.cpp
cIOS.cpp
linking ... SoftChip.elf
output ... SoftChip.dol

Probably just GCC, I get that all the time. And the application still builds. But I dunno.
 
Those printfs are there just so that I know what address everything is located. Safe to ignore, unless someone feels like casting all of them.

I intend to cast them all to unsigned ints, but those warnings are low priority.

Edit:

Disregard that. I went ahead and fixed the warnings, and corrected a stupid typo in my email address.
 
Great work! A couple of questions:

1. It works with cIOS 249 by default. Should I use wanikoko's, or wiigator's (v0.1 or v0.3?) I heard that they are the same, but I'm not sure.
2. Is it supposed to work with both 1:1 backups and decrypted backups, or just the 1:1 backups?
3. I don't require you to provide any guarantee, but I'm going to assume you had run your loader on your wii and it didn't break your wii. If you committed a change into the repository but didn't test it, please include a WARNING file at the top level of the repository.
4. I glanced over the source code, but don't have time to read it carefully yet. It's quite a surprise to me that apploader.bin is returning null, because you can basically rewrite wiigator's C code in C++. What's your guess?
 
I'll take a look at the source when I get a chance. It intrigues me... however I doubt I'll be able to do anything with it. I've never played with Wii programs yet.
 
VERY easy to read. I barely understand C++ coding, and I know it's only in a comment, but I think there may be a small typo.

DIP.cpp
Line 209 * Wait_CoverCose: Waits for the drive to announce cover is closed

Whereas on Line 216 it's referenced as
int DIP::Wait_CoverClose()


Again, I'm 99% sure that the typo is just in a comment, and does not effect the actual code.
 
Seraph863 said:
VERY easy to read. I barely understand C++ coding, and I know it's only in a comment, but I think there may be a small typo.

DIP.cpp
Line 209 * Wait_CoverCose: Waits for the drive to announce cover is closed

Whereas on Line 216 it's referenced as
int DIP::Wait_CoverClose()


Again, I'm 99% sure that the typo is just in a comment, and does not effect the actual code.
/* In C, this is a comment. */
// In C, this is also a comment

It does not affect anything. Just a mistyped comment. Not something like in Office Space where he misplaces the decimal in the virus.

EDIT: And also, you might not get too much coding help at GBATemp. I'm sure we're only rated a notch above MaxConsole.
Try Wiibrew Forums and if they won't help (they probably won't) try TehSkeen.
 
Tehskeen probably won't help much, either. They strongly oppose a backup loader strictly due to the piracy issue. That's why Waninkoko's loader was leaked here, and not there, and that's why WiiGator is here, not there.

Thanks for confirming the typo was in the comment. I wasn't 100% positive about it.
 
i know this may not help..but what do you mean by softchip? will we have to do something to our wii?
 
No... Soft mod. Just like Waninkoko's or WiiGator's. It's Software.

The proper name for this loader is called SoftChip. That's all.
 

Site & Scene News

Popular threads in this forum