vgmoose / wiiu-space

[Wii U] Homebrew space shooter written with libwiiu
MIT License
26 stars 5 forks source link

Persist level progress #2

Open eastcoastcoder opened 8 years ago

eastcoastcoder commented 8 years ago

Since the level passwords are randomly generated into an array, could this array be saved to a file and obfuscated if necessary? That way you can use level passwords across reboots of the game. Of course this may not work for 5.5.0 users who have to do the browser loading method and don't have permanent storage. I just hit level 16 by the way.

vgmoose commented 8 years ago

It's worth noting that the current random generation method first seeds the RNG with a constant 27, so passwords that are generated should be the same across all runs and installs.

So, as of right now, it's possible to figure out all 100 passwords by compiling a program that just calls prand with this same seed a hundred times.

This all being said, the only reason there's a password entry system is cause I'm on 5.5 and don't have SD card access :smile: With permanent storage access, I'd much prefer a level-select sort of interface with save data instead of password entry. So I'll keep this issue open with respect to that.

CreeperMario commented 8 years ago

Yeah, we can't really store anything on physical storage directly from the Wii U without a kernel or IOSU exploit. Even still, with a kernel exploit, the program would have to be launched from within Smash Bros. or Mii Maker, as those have SD Card access. (think of how Loadiine works)

However, we could still have data storage from homebrew software on the Wii U, by using GET/PUT requests in conjunction with a special web server. But even still, that's definitely harder than just waiting for an exploit.

CreeperMario commented 8 years ago

Looking back at libwiiu's commit history, it looks like @Marionumber1 was able to successfully open and read the contents of /vol/save/common which I assume is the save data directory? But looking further back, attempting to write to this directory crashes the system. Could this be a possible path to take when we get access to a kernel exploit?

CreeperMario commented 8 years ago

This is probably off-topic, but I've done some "research" and, using this algorithm of generating passwords, I was able to generate 36,710 different codes before it started repeating values. So why stop at 100?

Also, try using password 41666. Trolololololol.

vgmoose commented 8 years ago

That's interesting, I'm surprised to see it got so far. Personally I can barely get past level 15 so I'm thinking 36000+ levels may be overkill :stuck_out_tongue_closed_eyes:

I do truly love the idea of a ridiculous number of levels, though. It would make more sense if the gameplay in Space Game were more dynamic (like sidescrolling, smaller enemies, health, enemies that shoot back).

CreeperMario commented 8 years ago

@ethanx94 if you're still here, just a heads up that we now have a WUT branch that builds the program into an RPX file, which can be run within Loadiine GX2, Decaf, Cemu (if Cemu supported OSScreen graphics) and, when an IOSU exploit launches, we can install Space Game straight to the Wii U Menu.

Another plus with the RPX build is that we can store save data in /vol/save, which in the case of installing to the Wii U Menu, will have save data show up in Data Management. This will prove useful when we can be bothered getting around to reworking Space Game to do this. 😜