diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-09-16 16:11:15 -0400 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-09-16 16:11:15 -0400 |
commit | 4fe95cc1e7412e309d026e53cd44239bd3ef031d (patch) | |
tree | c1b711ed5a81976d9054da6205f5f9b2c3133248 /README.md | |
parent | e2a76d1f0fd978f285edf1dbc0f6e87cf89c63ce (diff) | |
download | gen3uploader-4fe95cc1e7412e309d026e53cd44239bd3ef031d.tar.gz gen3uploader-4fe95cc1e7412e309d026e53cd44239bd3ef031d.tar.bz2 gen3uploader-4fe95cc1e7412e309d026e53cd44239bd3ef031d.zip |
Wii can now send a POST request to a website
The extractor now uses libfat to read a config file off the root of the SD card, a model for which is included in the repository. The extractor is capable of negotiating an HTTPS connection, but it requires a download of the target site's root CA certificate to be on the SD card and pointed at by the config file. TLS/SSL functionality is provided by wolfSSL. I had to make a couple of minor changes to wolfSSL for it to work properly, and those changes are located in the devkitpro branch of my fork, hatkirby/wolfssl. The Wii program now arranges some of the information that the GBA sends it into a JSON object, which is then sent off (along with some authentication information from the config file) to the endpoint defined in the config file. The code used to maintain the network connection is from the WiiTweet project, which was licensed under the GPL. Some of the code used to send the HTTP request also comes from said project.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/README.md b/README.md index 2edfe2a..e263297 100644 --- a/README.md +++ b/README.md | |||
@@ -7,7 +7,22 @@ The multiboot image that the Wii sends to the GBA is executed in the context of | |||
7 | 7 | ||
8 | One of the main reasons that I chose to use this method to extract save data from my GBA games is that I'm very concerned about the "legitimacy" of my Pokémon experience. I don't want to be able to do anything with my saves that could be considered cheating. Thus, the multiboot image only sends to the Wii information that is publicly visible using the game's interface. For instance, the Wii never receives a Pokémon's IVs, EVs, or full personality value. The GBA multiboot image derives all the necessary information (stats, Nature, gender, shininess, Unown letter, etc) from those values, and then sends that over the connection. In this way, this private information never leaves the context of the GBA's code. | 8 | One of the main reasons that I chose to use this method to extract save data from my GBA games is that I'm very concerned about the "legitimacy" of my Pokémon experience. I don't want to be able to do anything with my saves that could be considered cheating. Thus, the multiboot image only sends to the Wii information that is publicly visible using the game's interface. For instance, the Wii never receives a Pokémon's IVs, EVs, or full personality value. The GBA multiboot image derives all the necessary information (stats, Nature, gender, shininess, Unown letter, etc) from those values, and then sends that over the connection. In this way, this private information never leaves the context of the GBA's code. |
9 | 9 | ||
10 | This project is still in active development, and currently only displays debug information on the Wii's screen. No data is sent to a website yet. | 10 | This project is still in active development, and is not yet ready to be used. |
11 | |||
12 | # Compiling | ||
13 | `gen3uploader` depends on wolfSSL in order to negotiate HTTPS connections. The main branch has a couple of minor problems that prevent it from working with this project right out of the box, so for now you should use the [devkitpro branch in hatkirby/wolfssl](/hatkirby/wolfssl/tree/devkitpro). | ||
14 | |||
15 | In order to compile wolfSSL, first ensure your $DEVKITPPC environment variable is set. Then, assuming that $GEN3UPLOADER points to your `gen3uploader` repository, you can run the following commands: | ||
16 | |||
17 | ```bash | ||
18 | ./autogen.sh | ||
19 | ./configure --disable-shared CC=$DEVKITPPC/bin/powerpc-eabi-gcc --host=ppc --enable-singlethreaded RANLIB=$DEVKITPPC/bin/powerpc-eabi-gcc-ranlib CFLAGS="-DDEVKITPRO -DNO_WRITEV" --disable-examples --disable-crypttests | ||
20 | make | ||
21 | cp src/.libs/libwolfssl.a $GEN3UPLOADER/vendor/lib/ | ||
22 | cp -r wolfssl $GEN3UPLOADER/vendor/include/ | ||
23 | ``` | ||
24 | |||
25 | From there, you should be able to run the `build.sh` script in the `gen3uploader` project to compile everything. | ||
11 | 26 | ||
12 | # Usage | 27 | # Usage |
13 | Have a GC Controller in Port 1 and a GBA with Gen3 game in Port 2. Run the Wii program, and follow the instructions. The connection is not very stable, and it can take several tries for the program to run successfully. | 28 | Have a GC Controller in Port 1 and a GBA with Gen3 game in Port 2. Run the Wii program, and follow the instructions. The connection is not very stable, and it can take several tries for the program to run successfully. |