Homebrew Official Retroarch WiiU (wip.)

ploggy

WAKA! WAKA!
Member
Joined
Aug 29, 2007
Messages
4,818
Trophies
2
XP
7,847
Country
United Kingdom
From the quick test i had done with your implementation

int x = input_state_cb(0, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_X);
int y = input_state_cb(0, RETRO_DEVICE_POINTER, 0, RETRO_DEVICE_ID_POINTER_Y);

it report coordinate for x form [0,854] y from [0,480] .
it working fine and report correct physical size.

so to get virtual screen coordinate i use:

int px=(int)((float)retro.width/854.0*(float)p_x);
int py=(int)((float)retro.height/480.0*(float)p_y);

I quickly implement this in vice to see if i can move mouse with touch in virtua lkeyboard or in vice gui
it works fine the mouse respond to finger move.
the only problem i had is to query RETRO_DEVICE_ID_POINTER_PRESSED
mouse_l=input_state_cb(0, RETRO_DEVICE_POINTER, 0,RETRO_DEVICE_ID_POINTER_PRESSED);
it seem to never be true .


This is amazing, you wont believe how long I've wanted to see this in WiiU Retroarch :D
Can this also be implemented into the other Computer Cores? now that it works for your Vice Core?
Thank You - Thank You - Thank You :P
 
Last edited by ploggy,

rioray

Well-Known Member
Member
Joined
Jul 24, 2017
Messages
152
Trophies
0
Age
43
XP
402
Country
France
for now i can just retrieve X and Y pos , but it can be a useful feature to implement when i can get something from
input_state_cb(0, RETRO_DEVICE_POINTER, 0,RETRO_DEVICE_ID_POINTER_PRESSED); (for now it only return 0)

in my pseudo code I'm supposed to catch the press event , then get time for the first time hold.
and later if time hold > a certain value ,handle the press event.

timehold=GetTicks()-starthold;
if(timehold>press_time)handle_press();

@QuarkTheAwesome is this part supposed to work ?
as it always return 0 for me , does i miss something ?

case RETRO_DEVICE_ID_POINTER_PRESSED:
return wiiu->joypad->get_buttons(0) & VPAD_BUTTON_TOUCH;

also don't understand this part

/* Emulating a button for touch; lets people assign it to menu

for that traditional RetroArch Wii U feel */

is there something special to do in the menu ?
 
  • Like
Reactions: cucholix and ploggy

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,788
Trophies
1
Age
44
XP
6,519
Country
Germany
Ok it was the wrong dash, i have to change them all manually, sucks but well it works.

Is there overlay support (e.g gameboy border around the screen) for the wii u version? If i select overlays it crashes.
Holy shit man, why manually? Every text editor (even Notepad) has a replace feature. Replace \ with / and you're done in less than a second.

Overlays are not working yet as far as I know.

for now i can just retrieve X and Y pos , but it can be a useful feature to implement when i can get something from
input_state_cb(0, RETRO_DEVICE_POINTER, 0,RETRO_DEVICE_ID_POINTER_PRESSED); (for now it only return 0)

in my pseudo code I'm supposed to catch the press event , then get time for the first time hold.
and later if time hold > a certain value ,handle the press event.

timehold=GetTicks()-starthold;
if(timehold>press_time)handle_press();

@QuarkTheAwesome is this part supposed to work ?
as it always return 0 for me , does i miss something ?

case RETRO_DEVICE_ID_POINTER_PRESSED:
return wiiu->joypad->get_buttons(0) & VPAD_BUTTON_TOUCH;

also don't understand this part

/* Emulating a button for touch; lets people assign it to menu

for that traditional RetroArch Wii U feel */

is there something special to do in the menu ?

First of all: It's freakin' fantastic that you're messing around with it. Would be a big feature for the Wii U.
That being said I think you should use L2 and R2 as left and right mouse buttons (are there even any games for any old systems making use of a right mouse button beside Win 3.1 in DosBox?) or something like that.
I mean the Gamepad won't be a Controller and a mouse at the same time for a game, right? So I'd change Input 1 from "RetroPad" to "WiiUMouse" (or whatever) for the specific games (or cores) which are needing it.
Or the Gamepad actually is both at the same time, a mouse with it's touch screen +L2/R2 and a controller (with d-pad and all the other buttons).
But whatever, you need to decide whether a certain period of button pressing time counts as a click or a hold click. Ideally the mouse button counts as "released" when the Gamepad button L2 has been released by the player.

As another solution: Wouldn't it be possible to emulate a mouse cursor with the left analog stick? It spawns in the top right corner when you load a content, can be moved with analog stick and pressed with L2/R2.

Which ever mouse implementation is done, I'd appreciate it!
 

rioray

Well-Known Member
Member
Joined
Jul 24, 2017
Messages
152
Trophies
0
Age
43
XP
402
Country
France
As another solution: Wouldn't it be possible to emulate a mouse cursor with the left analog stick? It spawns in the top right corner when you load a content, can be moved with analog stick and pressed with L2/R2.

Yes but to clarify for now I'm only talking about use QuarkTheAwesome pointer implementation at core level not at RA gui level.


most of computer emulator that support mouse have already an mouse emulation via analog stick (puae/hatari...) and most other already support it for gui/vkeyboard (vice/caprice...)


taking vice pointer implementation , we can already emulate mouse button with a joypad button , but i want to use

input_state_cb(0, RETRO_DEVICE_POINTER, 0,RETRO_DEVICE_ID_POINTER_PRESSED); provide by the libretro API to handle the left button .
but this not seem to work properly or i missing something in the process , now I'm waiting from Quark some clarification on the subject to go ahead.
 
  • Like
Reactions: lordelan and ploggy
Joined
Apr 19, 2015
Messages
1,023
Trophies
1
Location
Stuck in the PowerPC
Website
heyquark.com
XP
3,909
Country
Australia
for now i can just retrieve X and Y pos , but it can be a useful feature to implement when i can get something from
input_state_cb(0, RETRO_DEVICE_POINTER, 0,RETRO_DEVICE_ID_POINTER_PRESSED); (for now it only return 0)

in my pseudo code I'm supposed to catch the press event , then get time for the first time hold.
and later if time hold > a certain value ,handle the press event.

timehold=GetTicks()-starthold;
if(timehold>press_time)handle_press();

@QuarkTheAwesome is this part supposed to work ?
as it always return 0 for me , does i miss something ?

case RETRO_DEVICE_ID_POINTER_PRESSED:
return wiiu->joypad->get_buttons(0) & VPAD_BUTTON_TOUCH;

also don't understand this part

/* Emulating a button for touch; lets people assign it to menu

for that traditional RetroArch Wii U feel */

is there something special to do in the menu ?

That's a weird one; I guess I must have implemented the touch wrong. The comment about emulating a button is just mentioning that people could assign touching to open the menu, since that's how older versions of RetroArch did things. In any case; it looks like my code isn't working right. I'd appreciate your test core so that I can debug and fix this properly.
 

Davor

Well-Known Member
Newcomer
Joined
Oct 1, 2015
Messages
79
Trophies
0
Age
42
XP
654
Country
Hello!

How do you guys test changes regarding core swap enhancements if Retroarch can't start from HBL (black screen issue) and Retroarch channel has old Retroarch.rpx embedded?

Best regards,
Davor
 

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,274
Country
Chile
Hello!

How do you guys test changes regarding core swap enhancements if Retroarch can't start from HBL (black screen issue) and Retroarch channel has old Retroarch.rpx embedded?

Best regards,
Davor
Retroarch channel just boot the core indicated in the config file, it never actually load itself. In that sense it more like a forwarder than a channel.
 
Last edited by cucholix,

rioray

Well-Known Member
Member
Joined
Jul 24, 2017
Messages
152
Trophies
0
Age
43
XP
402
Country
France
That's a weird one; I guess I must have implemented the touch wrong. The comment about emulating a button is just mentioning that people could assign touching to open the menu, since that's how older versions of RetroArch did things. In any case; it looks like my code isn't working right. I'd appreciate your test core so that I can debug and fix this properly.

thanks for you implementation,

I just create a minimal core to test pointer ( came from libretro-sample )
it just show up a mouse pointer (movable with touch) and display screen coord and press state at the left top.
rpx+ source include , so you can test it on pc too (mouse also respond to pointer api)
https://filebin.ca/3d5Hj999H4EU/testptr.zip
https://filebin.ca/3d5Hj999H4EU/testptr.zip

on pc when you press left mouse button RETRO_DEVICE_ID_POINTER_PRESSED return 1 .
never on the wii U , like if pad_state[0] get reset before it get query .
https://github.com/libretro/RetroAr...ee5#diff-8166ba8ca9aade84efacbd80ca26b0a7R230

also from https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h#L148

pointer coord is [-0x7fff, 0x7fff] on wii U it seem clamp to physical DRC device size [0,854]&[0,480].
so we need to handle 2 different code (one for wii U another for the rest of platform).
is it something that can be change to conform the API ?
 

Davor

Well-Known Member
Newcomer
Joined
Oct 1, 2015
Messages
79
Trophies
0
Age
42
XP
654
Country
Retroarch channel just boot the core indicated in the config file, it never actually load itself. In that sense it more like a forwarder than a channel.

Hello!

Thank you for the information. But how do you make it start, let's say, latest nightly .rpx (retroarch.rpx, not cores .rpx)? Where do you put it, since I don't have wiiu/apps/retroarch folder at all. If I understand this correctly, swapping cores and errors that come out of it are issue of main retroarch.rpx and not separate cores. And I have no idea how to start main retroarch.rpx with those issues fixed, since I'm using Retroarch channel.

Best regards,
Davor
 

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,274
Country
Chile
Hello!

Thank you for the information. But how do you make it start, let's say, latest nightly .rpx (retroarch.rpx, not cores .rpx)? Where do you put it, since I don't have wiiu/apps/retroarch folder at all. If I understand this correctly, swapping cores and errors that come out of it are issue of main retroarch.rpx and not separate cores. And I have no idea how to start main retroarch.rpx with those issues fixed, since I'm using Retroarch channel.

Best regards,
Davor
If you use the channel then you dont need retroarch.rpx
 

Davor

Well-Known Member
Newcomer
Joined
Oct 1, 2015
Messages
79
Trophies
0
Age
42
XP
654
Country
If you use the channel then you dont need retroarch.rpx

Hello!

My English is not so good, so I'm having trouble to express myself properly. If channel does not use retroarch.rpx, and there isn't a way to run retroarch.rpx from HBL, how do you test those new error fixes in retroarch.rpx (regarding errors appearing after core swaps)? I know I can install new cores version, but aren't those fixes regarding core swaps in retroarch.rpx, and not in cores .rpx?

Best regards,
Davor
 
Last edited by Davor,
Joined
Apr 19, 2015
Messages
1,023
Trophies
1
Location
Stuck in the PowerPC
Website
heyquark.com
XP
3,909
Country
Australia
thanks for you implementation,

I just create a minimal core to test pointer ( came from libretro-sample )
it just show up a mouse pointer (movable with touch) and display screen coord and press state at the left top.
rpx+ source include , so you can test it on pc too (mouse also respond to pointer api)
https://filebin.ca/3d5Hj999H4EU/testptr.zip

on pc when you press left mouse button RETRO_DEVICE_ID_POINTER_PRESSED return 1 .
never on the wii U , like if pad_state[0] get reset before it get query .
https://github.com/libretro/RetroAr...ee5#diff-8166ba8ca9aade84efacbd80ca26b0a7R230

also from https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h#L148

pointer coord is [-0x7fff, 0x7fff] on wii U it seem clamp to physical DRC device size [0,854]&[0,480].
so we need to handle 2 different code (one for wii U another for the rest of platform).
is it something that can be change to conform the API ?
The scaling shouldn't be a problem - didn't see that spec when writing it; that's the only reason I didn't follow it. The only part of that which looks a little tricky is that (-7fff, -7fff) is the corner of the game screen, not the actual video output. If there's an easy way to get the translation info out of the video driver it shouldn't be too hard, though.
 

fst312

Well-Known Member
Member
Joined
Nov 4, 2008
Messages
1,176
Trophies
1
Age
35
Location
New York
XP
2,982
Country
United States
I'm curious, on a earlier post I seen searching here, I read someone downloaded bios and I think put them in the retroarch folder. I'm wondering if adding bios really makes a difference because I already have bios in my neogeo folder and wondering if I should also place them in my retroarch folder. The earlier post I read I think was around page 80, so there maybe a chance later updates changed compatibility, games like metal slug 5 should work but for me it doesn't but I'm sure it would if i get the mame rom it might work. I did that in order to play marvel vs capcom, since the capcom rom wasn't working for me. I'm wondering if putting a bios folder would make a difference for neogeo roms in the retroarch folder. Also just wondering do the roms work based on rom size because marvel vs capcom 2 doesn't work and I was wondering if that has to do with it being around 80mb. I just started using the retroarch channel,if that info is needed for this post. When I get a chance I'll try loading marvel vs capcom 2 again, to see if it gets past the black screen, just in case I didn't give the rom enough time to load. Sorry for the long post.
 

bixxewoscht

Well-Known Member
Member
Joined
Apr 23, 2017
Messages
115
Trophies
0
XP
615
Country
Gambia, The
Is there any way to set dynamic backgrounds to tabs other than the different consoles? So that you have custom backgrounds also for the settings and favourites tab. Or can you have a custom background image for these tabs and on top of that dynamic ones for the consoles? Because when i want to set a background image it doesn't see my .png files.
 

ploggy

WAKA! WAKA!
Member
Joined
Aug 29, 2007
Messages
4,818
Trophies
2
XP
7,847
Country
United Kingdom
The only
I'm curious, on a earlier post I seen searching here, I read someone downloaded bios and I think put them in the retroarch folder. I'm wondering if adding bios really makes a difference because I already have bios in my neogeo folder and wondering if I should also place them in my retroarch folder. The earlier post I read I think was around page 80, so there maybe a chance later updates changed compatibility, games like metal slug 5 should work but for me it doesn't but I'm sure it would if i get the mame rom it might work. I did that in order to play marvel vs capcom, since the capcom rom wasn't working for me. I'm wondering if putting a bios folder would make a difference for neogeo roms in the retroarch folder. Also just wondering do the roms work based on rom size because marvel vs capcom 2 doesn't work and I was wondering if that has to do with it being around 80mb. I just started using the retroarch channel,if that info is needed for this post. When I get a chance I'll try loading marvel vs capcom 2 again, to see if it gets past the black screen, just in case I didn't give the rom enough time to load. Sorry for the long post.
The only Bios you need for Arcade games is the Neo Geo bios and that is only for Neo Geo games..

The reason some of your games dont work is probably because your using roms from a different set. You need to have the correct rom set.

Also the Marvel vs Capcom 2 game isnt compatible with WiiU Retroarch. ;)
 
  • Like
Reactions: fst312

fst312

Well-Known Member
Member
Joined
Nov 4, 2008
Messages
1,176
Trophies
1
Age
35
Location
New York
XP
2,982
Country
United States
The only

The only Bios you need for Arcade games is the Neo Geo bios and that is only for Neo Geo games..

The reason some of your games dont work is probably because your using roms from a different set. You need to have the correct rom set.

Also the Marvel vs Capcom 2 game isnt compatible with WiiU Retroarch. ;)
Thank you for the reply, hopefully in a future update marvel vs capcom 2 will work. Anyway for CPS1 I did notice fb alpha loads most games I selected. Just one thing that I don't get, on homebrew launcher I have 3 capcom systems but their elf files not rpx, is there a way to make those listed as core files. This is basically the last thing I can ask, if possible to answer since I really have no knowledge how this stuff works. Just asking about the capcom systems just because I have those on my 3ds and its retroarch.
 

ploggy

WAKA! WAKA!
Member
Joined
Aug 29, 2007
Messages
4,818
Trophies
2
XP
7,847
Country
United Kingdom
Thank you for the reply, hopefully in a future update marvel vs capcom 2 will work. Anyway for CPS1 I did notice fb alpha loads most games I selected. Just one thing that I don't get, on homebrew launcher I have 3 capcom systems but their elf files not rpx, is there a way to make those listed as core files. This is basically the last thing I can ask, if possible to answer since I really have no knowledge how this stuff works. Just asking about the capcom systems just because I have those on my 3ds and its retroarch.
Download the latest build from here and extract it to your sd card :) https://buildbot.libretro.com/nightly/nintendo/wiiu/
 

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,788
Trophies
1
Age
44
XP
6,519
Country
Germany
Someone here noted that GB games can be played with Super Gameboy borders and/or (?) GBC color palettes in mGBA.
I think it was @ShadowOne333 but I can't find the post.
How does this work? Did you try it on the Wii U already with success?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Or Genesis.