Hacking U-Paint v2.0 Homebrew Release

brienj

Trying to avoid getting cancer
OP
Member
Joined
Jan 3, 2016
Messages
1,232
Trophies
0
Website
twitter.com
XP
2,142
Country
United States
This program is obsolete, get the new version that works in the Homebrew Launcher - https://gbatemp.net/threads/u-paint-v2-0-for-homebrew-launcher.427404/

Program has been updated to v2.0 (could a mod please change title), and includes source code and bin files compiled for every version supported by libwiiu, as well as a 5.5.x version .mp4 file.

And an updated Readme -

U-Paint v2.0 for 5.5.x firmware + source code by brienj

First of all I want to give credit to vgmoose for the random number generator I use to draw circles on the startup screen, as well as moving all of the coreinit.rpl function pointers into a struct and passing it to my custom drawing library.

For the source code to his Wii U Space game, go to http://github.com/vgmoose/space

Second of all, I want to thank my kids for putting up with me constantly taking the program away to load a new version for them to play with, and for testing it.

I use a custom drawing library and a "custom" vpad library, which contains more of the "unknown" values in the VPADData struct.

Setup:
Access the .bin 5.5.x bin file on your server using Yellow's exploit in the Wii U browser, or download the .mp4 from your server in your Wii U browser.

Instructions:
Touchpad - Use the stylus or your finger in the top-left area to draw on the DRC screen and TV, select colors in the right-hand area
L-Stick: Move view when zoomed in
R-Stick: Up = Zoom In, Down = Zoom Out
A Button: Square Brush
B Button: Round Brush
X Button: Fill On
Y Button: Fill Off
Minus Button: Decrease Brush Size
Plus Button: Increase Brush Size
LB: Show/Hide Menu
RB: Erase what is on the DRC screen (actually paints it with the background color which is the last color)
D-Pad: Change either R, G, or B (the one with radio button selected) value up/down on the color picker screen
Home Button: Exit

The current zoom level, brush size, and brush type are shown in the lower-right area of the DRC screen. To the left of that, it show your active color. Touching this box opens up the color picker menu. The color picker is like the one in Photoshop. It defaults to the slider controlling the red value. You can also either select green or blue with the radio buttons next to them on the right hand side of the menu. Touching the right side box will set the color change, or touching the red x in the top-right corner will close the menu. You can change the active color by choosing any of the 10 colors on the right hand side of the main menu. The last color is the background color which is used when you clear the screen.

Remember that everything you see on the DRC screen is a representation of the actual FULL picture which is on the TV. When you are zoomed out to level 0 on the DRC, you are seeing the full picture that is on the TV, but reduced by 2/3 size, since the DRC is 854 x 480 and the TV is 1280 x 720. When you are zoomed in to zoom level 1, the pixels are identical. You can zoom in to level 4.

Planned to be added:
Saving and loading pictures
??? - Design a brush
??? - Show window placement on TV (haven't got it quite working right yet)
??? - Undo function, would probably require an elf version
??? - Elf version
??? - GX2 graphics with Alpha support

If you have any suggestions, let me know.

Updated: Added v2.0 and new Readme

This program is obsolete, get the new version that works in the Homebrew Launcher - https://gbatemp.net/threads/u-paint-v2-0-for-homebrew-launcher.427404/
 
Last edited by brienj,
D

Deleted User

Guest
I really want to clean it up and add in comments, but if you have any coding questions, feel free to ask and I can post snippets of code for now.
Thanks! :) One question is how did you manage to display text onto the gamepad only? I've been wondering how to do that for a while now. ;)
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,649
Country
France
Nice idea :)

And added it to wiki homebrew list.
Still no individual homebrew page created, it will come another time or when someone has time to create them.

added to wiiubru,com nice work .
it not the same one, as this one is released as .mp4 and 550.bin only, but the "draw" for 5.3.2 freezes at payload launch :P
edit: well, all homebrew are freezing today...
could be an issue with my console, I'll clear the browser data.
 

pwsincd

Garage Flower
Developer
Joined
Dec 4, 2011
Messages
3,686
Trophies
2
Location
Manchester UK
XP
4,462
Nice idea :)

And added it to wiki homebrew list.
Still no individual homebrew page created, it will come another time or when someone has time to create them.


it not the same one, as this one is released as .mp4 and 550.bin only, but the "draw" for 5.3.2 freezes at payload launch :P
edit: well, all homebrew are freezing today...
could be an issue with my console, I'll clear the browser data.
no i added this to 5.5 sections only ..
 

brienj

Trying to avoid getting cancer
OP
Member
Joined
Jan 3, 2016
Messages
1,232
Trophies
0
Website
twitter.com
XP
2,142
Country
United States
Thanks! :) One question is how did you manage to display text onto the gamepad only? I've been wondering how to do that for a while now. ;)
There are several ways you could do it, in my program I am using a custom draw library and use two different functions to accomplish it like this.
Code:
void drawString(struct Services *services, int x, int y, char * string)
{
        services->OSScreenPutFontEx(1, x, y, string);
}

void drawStringTV(struct Services *services, int x, int y, char * string)
{
        services->OSScreenPutFontEx(0, x, y, string);
}

You could also add a parameter called "screen" and then pass which screen you wanted, like this.
Code:
void drawString(struct Services *services, int x, int y, char * string, int screen)
{
        services->OSScreenPutFontEx(screen, x, y, string);
}

In the function OSScreenPutFontEx, the first parameter is the screen number. 0 is the TV, 1 is the controller screen.

Nice idea :)

And added it to wiki homebrew list.
Still no individual homebrew page created, it will come another time or when someone has time to create them.


it not the same one, as this one is released as .mp4 and 550.bin only, but the "draw" for 5.3.2 freezes at payload launch :P
edit: well, all homebrew are freezing today...
could be an issue with my console, I'll clear the browser data.
no i added this to 5.5 sections only ..
I released a 5.3.2 version now. :D

Thank you, well done. My daughter loved it.
Yeah, my kids get a kick out of it, especially my 6 year old son. They are actually the reason I thought of making this, because I was trying to think of something that they would really love.

hi, can someone do a screen ? ? please .
I will be getting some later today.

I got a suggestion, it's possible to make any Draw Something game ? It won't be much more work. I can do any french translation ;)
Excellent idea.
 
D

Deleted User

Guest
There are several ways you could do it, in my program I am using a custom draw library and use two different functions to accomplish it like this.
void drawString(struct Services *services, int x, int y, char * string)
{
services->OSScreenPutFontEx(1, x, y, string);
}

void drawStringTV(struct Services *services, int x, int y, char * string)
{
services->OSScreenPutFontEx(0, x, y, string);
}
You could also add a parameter called "screen" and then pass which screen you wanted, like this.
void drawString(struct Services *services, int x, int y, char * string, int screen)
{
services->OSScreenPutFontEx(screen, x, y, string);
}
In the function OSScreenPutFontEx, the first parameter is the screen number. 0 is the TV, 1 is the controller screen.
Awesome, thanks for that bit of info! :) It's reminded me to take a look at the Wii U SDK documentation a bit more. :D
 

oumoumad

Well-Known Member
Member
Joined
Apr 20, 2015
Messages
798
Trophies
0
Age
31
XP
890
Country
France
It's probably worth mentioning this works up to 5.5.1 in the thread title ^^, many users think they can only get interesting stuff with kernel/IOSU access and not just userspace.
Again really appreciated work, take your time cleaning ur code, it'll definitely be useful for many of us.
 

brienj

Trying to avoid getting cancer
OP
Member
Joined
Jan 3, 2016
Messages
1,232
Trophies
0
Website
twitter.com
XP
2,142
Country
United States
It's probably worth mentioning this works up to 5.5.1 in the thread title ^^, many users think they can only get interesting stuff with kernel/IOSU access and not just userspace.
Again really appreciated work, take your time cleaning ur code, it'll definitely be useful for many of us.
That's why I put 5.5.x ;)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • BakerMan @ BakerMan:
    fuck ubisoft, and fuck activision
    +1
  • realtimesave @ realtimesave:
    Nintendo needs to release a new console, switch is getting such shitty little games lately lol it's pathetic
  • Purple_Heart @ Purple_Heart:
    Lmao a new flashcart... The Unlock Switch... I knew it's not fake xD
    +1
  • NinStar @ NinStar:
    A new consoles won't solve that problem
  • NinStar @ NinStar:
    It will actually make it worse
  • The Real Jdbye @ The Real Jdbye:
    well actually
    a new console won't do anything right now, because the games are still in development, that's why there are few games being released
  • The Real Jdbye @ The Real Jdbye:
    it won't make the games finish any faster
  • Veho @ Veho:
    2/3rds of launch titles for the Switch 2 will just be lazy ports of Switch games anyway.
  • The Real Jdbye @ The Real Jdbye:
    probably
  • The Real Jdbye @ The Real Jdbye:
    maybe mario kart 9 will be a launch title
  • The Real Jdbye @ The Real Jdbye:
    i really want a new mario kart
  • Veho @ Veho:
    What, you mean the endless stream of DLCs doesn't count?
  • Veho @ Veho:
    Why develop a new game when you can just sell season passes forever?
  • Veho @ Veho:
    I'm still on MKDS so I'm not bothered :tpi:
  • The Real Jdbye @ The Real Jdbye:
    i like the dlc tbh, i'd like a new game more
  • ZeroT21 @ ZeroT21:
    but the current version is still selling fine at full price
  • SylverReZ @ SylverReZ:
    Hello
  • ZeroT21 @ ZeroT21:
    sup
    +1
  • SylverReZ @ SylverReZ:
    @realtimesave, You seen the Unlock Switch flashcart yet?
  • K3Nv2 @ K3Nv2:
    I'll see the 19.0 update that blocks use ability to it
    +1
  • K3Nv2 @ K3Nv2:
    Lol newegg+
    Screenshot-20240423-053504-Gmail.jpg
  • S @ salazarcosplay:
    does update 19 really block it
  • SylverReZ @ SylverReZ:
    Update 19 never came out yet. Just the 18.1.
    SylverReZ @ SylverReZ: Update 19 never came out yet. Just the 18.1.