Official Retroarch WiiU (wip.)

Discussion in 'Wii U - Homebrew' started by aliaspider, Nov 6, 2016.

  1. QuarkTheAwesome

    QuarkTheAwesome Working for Hugs

    Member
    11
    Apr 19, 2015
    Australia
    Stuck in the PowerPC
    Doesn't look like an easy one - likely some bad pointer math, or they're relying on some mprotect-ish function that's not really a thing on WiiU. dynarecs have gotta have at least a little bit of WiiU-specific code to make 'em work, be it through the usual OSCodegen methods or something a lil' more kernel-ly - you've gotta take the generated code and mark it as executable before you can run it.

    Taking a guess based on the stuff on git w/o looking at a binary, my money's on this pointer being uninitialized, which isn't great because we try and jump to it here. Should've been initialized here, can't trace it much further than that
    wonder if it'd run under Decaf?
     
  2. Radius4

    Radius4 GBAtemp Fan

    Member
    6
    Sep 10, 2015
    Ecuador
    jmarsh (the dev behind the dynarec) said:

     
  3. CORE

    CORE 3:16

    Member
    5
    Jul 15, 2018
    United Kingdom
    Wii U sounds so damn complicated is it due to Anti Piracy Measures or just by Design?
     
  4. the_randomizer

    the_randomizer The Temp's official fox whisperer

    Member
    23
    GBAtemp Patron
    the_randomizer is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    Apr 29, 2011
    United States
    Dr. Wahwee's castle
    Well if this is is for just DosBOX, PSX and N64 dynarec sounds near impossible :unsure: No wonder they abandoned it.
     
  5. Extrems

    Extrems GBAtemp Regular

    Member
    5
    Jan 17, 2013
    Canada
    Quebec, Canada
    CORE likes this.
  6. QuarkTheAwesome

    QuarkTheAwesome Working for Hugs

    Member
    11
    Apr 19, 2015
    Australia
    Stuck in the PowerPC
    of course saw that pointer starting with 0x1777 and went "uhh" but no, that it a totally valid MEM2 address

    OSCodegen is a little more complex than the standard mprotect, there's a dedicated memory area and (as jmarsh suggested) it can either be r-x or rw-, not rwx. Here's some docs - they're not in wut yet, otherwise I'd link there, I'll get that fixed when I can. I assume the JITed code doesn't try and overwrite itself or anything so the rx/rw thing should be fine. a more interesting issue could be getting the code into that dedicated memory area (see OSGetCodegenVirtAddrRange), which afaict would be disabled under Mii Maker anyway. so I guess you're looking at the retroarch forwarder or the HBL channel to make this work.
     
  7. Radius4

    Radius4 GBAtemp Fan

    Member
    6
    Sep 10, 2015
    Ecuador
    Not sure what you mean with MiiMaker, I have always used HBL or the forwarder.
    This is all beyond my area of expertise...

    Still, reading the docs

    — Posts automatically merged - Please don't double post! —

    So I figure

    Code:
    void OSGetCodegenVirtAddrRange(uint32_t *outaddr, uint32_t *outsize)
    
    Will give me an address space and it's size.
    But what about this note?

    Particularly the webkit part, we don't use webkit, so does that mean it won't work?
     
  8. QuarkTheAwesome

    QuarkTheAwesome Working for Hugs

    Member
    11
    Apr 19, 2015
    Australia
    Stuck in the PowerPC
    re: webkit, it's all good - the only reason that's there is because the most common use of the codegen stuff is webkit, but other apps like the DS VCs also use it without issue. The problem for us would be that it needs to be specifically allowed in cos.xml; and I'm not sure if the current HBL channel or RA forwarder have that (though we can add it).
    I mention MiiMaker since certain methods of loading HBL (Haxchi/CBHC, browserhax) will inject it into Mii Maker instead of its own title, which would mean codegen is always disabled for people using those methods. CFW work could potentially be done to re-enable it, though...
     
  9. Billy Acuña

    Billy Acuña GBAtemp Addict

    Member
    11
    Oct 10, 2015
    Mexico
    DOSBox dynarec on WiiU?
    Nice @Radius4 ! Hope this can help us to understand better how dynarec works on WiiU for futher cores :)
    Also OpenGL on WiiU is mandatory for mupen-next.
     
    CORE likes this.
  10. Radius4

    Radius4 GBAtemp Fan

    Member
    6
    Sep 10, 2015
    Ecuador
    well the dynarec is there but I have no idea how to fix it :D
    There dynarec is generic PPC so it should work on mac and/or linux.

    Some work required to fix it up on WiiU
     
    oji, CORE, Billy Acuña and 1 other person like this.
  11. Classicgamer

    Classicgamer GBAtemp Advanced Fan

    Member
    4
    Aug 20, 2012
    United States
    i'm having a heck of a time getting shaders to work. searching around lead me to hunterk blog post for shaders yet i they don't show up in the list? i just want some scanlines haha
     
  12. FanNintendo

    FanNintendo GBAtemp Fan

    Member
    4
    Apr 16, 2018
    United States
    only few of IGS, Poly Mastergames or Caves works on Wii U and on Switch does run perfect with IGS, Poly Mastergames and Caves.
     
  13. depaul

    depaul GBAtemp Advanced Fan

    Member
    5
    May 21, 2014
    France
    It isn't extremely difficult, it's just there are only very few people working on Wii U... That's why we rarely see some advancement.

    For example : Picodrive hasn't been ported yet (32X games) because no one tried to work on it yet...

    Well thanks devs for all your hardwork.
     
    Last edited by depaul, May 1, 2019
  14. Maxbeta

    Maxbeta GBAtemp Regular

    Member
    4
    Jul 20, 2014
    United States
    Thank you. Which games work on WiiU? How to get them to work and what core is most suitable? Mame or FBA cores?
     
  15. FanNintendo

    FanNintendo GBAtemp Fan

    Member
    4
    Apr 16, 2018
    United States
    U can have retroarch scan the files and after that it will pop in every catalogies u can try it out sometime it will not be 1 file sometime it has to duplicate it like digdug.rom and digdug1.rom u will run digdug1.rom if digdug dont run.
     
  16. Slaminger

    Slaminger Member

    Newcomer
    1
    Apr 2, 2019
    Canada
    vancouver/winnipeg
    I'm still lurking too. I do happen to know a couple of retro arch devs, they just don't do wii u stuff .
     
  17. Ewpb

    Ewpb Member

    Newcomer
    3
    Jun 19, 2013
    How do I turn the shaders off? The Caligari one looks brilliant on the TV screen but a mess on the Game Pad.

    Bit I can't find away to disable it .:rofl2:
     
  18. Maxbeta

    Maxbeta GBAtemp Regular

    Member
    4
    Jul 20, 2014
    United States
    I haven’t found a shader or filter that looks great on both places at once so its something they would have to add somewhere down the road. What I usually do is save a Gamepad setting and a default setting for when playing on the big screen.
     
    Ewpb likes this.
  19. depaul

    depaul GBAtemp Advanced Fan

    Member
    5
    May 21, 2014
    France
    About Retroarch speed :
    Just confirmed that the Wii U version suffers from abnormally slow file access.
    This is simple test on the same Wii U machine, using the neogeo game : "KOF94.zip" (size = 12 MB)

    - Using Wii U : cores + rom installed on SD card. Loading the rom takes 11 s.
    - Using the vWii, using Retroarch-Wii version : cores + rom installed on fat32 USB. Loading the rom barely takes 3s!

    Also, the Wii U Retroarch takes almost 25s to start, while the vWii version takes 7s to start.

    Conclusion : We could see about 200% speed increase if Retroarch could use USB interface instead of SD card.
    Edit : I opened an issue on RA github.
     
    Last edited by depaul, May 7, 2019
    CORE likes this.
  20. Radius4

    Radius4 GBAtemp Fan

    Member
    6
    Sep 10, 2015
    Ecuador
    Yes I/O is as a whole slow AF on Wii U.
    Downloads take a loong time, and reading and writing to the SD is slow (even getting achievement badges is very slow)

    FTP is slow without IOSUHAX so I figure it's something related.
     
    depaul likes this.
Loading...