PS3 N64 Emulator (PS3 PoC wii64 Port by emukidid) Surfaces 9 years after first announced

Discussion in 'Homebrew Development' started by SniperSnake, May 12, 2020.

By SniperSnake on May 12, 2020 at 11:29 AM
  1. 47
    46
    37
    SniperSnake

    SniperSnake Member

    Joined:
    Mar 27, 2020
    Messages:
    47
    Likes Received:
    46
    Trophy Points:
    37
    Gender:
    Male
    We have more Nintendo 64 Emulation news following the recent port to the Vita, It appears after 9 years since it was first announcements and previewed, the mythical PS3 Port of wii64 (mupen64) has finally surfaced, From one of the developer behind the port emukidid, the developer recently found the files for the old (unreleased) PoC for the PS3 on an old HDD and decided it was time to release the PoC to the public, However, don't get too excited as the emulator is very rough around the edges and is simply a proof of concept as stated that needs alot of work but the developer does leave some bits of info and even a lending hand. Back in 2011 development did not get off the ground to far past the initial phases due to various roadbloacks (explained below), In the current form its only running in "interpreter only" and does not have the advancements needed to run many games at all, but compiled in pslight v2 could provide some recent changes and maybe even better support. Below you will see a quote from the developer (emukidid) and also some instructions / video demo from psx-place user @SniperSnake whom recently was exploring some N64 options himself.

    Its great to see this emulator and its source finally emerge and perhaps gives some hope or inspirations for others to bring this project full circle and create a stable n64 emulator for the PS3.
    -STLcardsWS



    • 300px-Nintendo-64-wController-L.jpg
      wii64-ps3 proof of concept

      Found this on my HDD from way back in 2011 when we were messing with porting wii64 (mupen64) to the PS3. It has software rendered graphics limited to probably Mario 64 only as well as pure interpreter only and likely no audio.

      I'm not sure what state the release I've attached is in because I compiled it a long time ago, it's messy and it was just considered a "test"

      A very old proof of concept in porting mupen64 (wii64 specifically from 2011) to the PS3 using PSL1GHT v1.​
      Features

      • Bad audio
      • Preliminary hardware accelerated graphics
      • Basic input
      • Pure interpreter
      • Menu
      • USB loading
      • USB saving
      Future

      • I've had a go at getting this to work with PSL1GHT v2 (https://github.com/ps3dev/PSL1GHT) and have run into some issues I'm looking into (basially the menu loops once every 3-4 seconds and everything becomes unresponsive). Once this is resolved I'd be happy to try and merge upstream changes from newer Wii64 releases back into this and even try at porting the Wii64 dynarec over to ppc64.
      • Issues we'd run into at the time with the state of homebrew on the PS3 were mostly due to the newness of the library and toolchain but also the fact that we couldn't get decent performance at all from the pure interpreter and we were unable to execute from heap (no dynarec). The pure interpreter ran faster on the Wii than it did with the PS3's main CPU, probably due to the fact that there's no branch prediction.
      • UPDATE (1): Ready to jump back into some PS3 Dev after 9 years with this nice HORI 720p/1080i display I picked up for $39!
        • EX0FRYPVAAAKK3C.jpg

    • via @SniperSnake:

      Emukidid has decided to take a 2011 build of wii64/cube64 a mupen64 fork thats been ported to ps3 has finally be relased. It works in interpeter mode as dynarec haddent been worked on yet for ps3.
      • I have tested it myself via ps3 multiman self loading off usb.
      • The roms run off dev_usbX/wii64/roms folder.
      The ground work is here and supposedly ps3 dynarec is already a thing iin the shadows lets make this happen!!!



     
    Last edited by a moderator: May 15, 2020
    0s4X, UFC3, Crystal and 20 others like this.

Comments

Discussion in 'Homebrew Development' started by SniperSnake, May 12, 2020.

    1. Anthonyy817
      Anthonyy817
      jacobsson and LuanTeles like this.
    2. Zar
      Zar
      If you want to use the dynarec, these are the 'original' patch to enable it : https://github.com/IngPereira/DynarecPS3
      Although, I think there is an option to enable it inside multiMAN (look in paramaters, i'm really not sure)

      I think there is poc of it, I never tested it neither read the sources: https://github.com/libretro/ps3sx

      The offcial reason why the team libretro is not using the dynarec is :
      "It’s not even PPC64, it’s PS3’s version of it, because the ABI is a weird mix of PPC64 and PPC32 … (32-bit pointers and long)." from https://forums.libretro.com/t/proper-ps3-dynarec-now-available-on-higher-cfw-3-55-4-21-4-30/267/8
      STLcardsWS, sbp, sandungas and 2 others like this.
    3. SniperSnake
      SniperSnake
      Im like omg omg omg

      Attached Files:

      jacobsson likes this.
    4. SniperSnake
      SniperSnake
      Damn looks too advanced for me to get the test dynarec patched for higher firmwares and compiled. But im willing to test it on my 60gb launch ps3 and my 120gb slim.
      jacobsson likes this.
    5. TnA
      TnA
      Last edited: May 14, 2020
    6. emu_kidid
      emu_kidid
      News travels fast!

      I've updated the description on the github repo, we'd done more than I'd remembered as it turns out. I'm having issues with psl1ght v2 and RSX usage it seems - code that worked fine in psl1ght v1 all those years ago is running very badly when compiled now - wasting time on things that should just work is never fun :P

      If anyone has done much with RSX in psl1ght I'd love to have a chat at some point as it could be something simple I'm missing.
    7. Coro
      Coro
      welcome to psx-place! there is a lot of excitement here about this project. we have several devs around that may be able to help. good luck!
      jacobsson and LuanTeles like this.
    8. SniperSnake
      SniperSnake
      Thank you oh so much for dropping this awsomebomb on us. U have now idea the countless nights i fruitlessly tried getting a ps2 port of daedalus to work on slim and and fat ps3s and gave up. Lost all hope. Then you drop the file and bam! Thank you, your the hero we need!
      jacobsson and Anthonyy817 like this.
    9. YsonyY
      YsonyY
      Eeeeeh! Sounds gud! N64 on PS333333!!
    10. zecoxao
      zecoxao
      You should talk with Wargio or deroad regarding that (they're the same person)
      I've also ported the dynarec patches to 4.86 rebug rex lite. you can find them on this pastebin:
      https://pastebin.com/N6M6RbPa

      Edit: I forgot to mention but all psl1ght apps run a lot slower than the oficial sdk ones. i found out that the difference lies somewhere in the crt0 files. maybe you can figure out what's wrong?
      For instance, irisman takes a really long time to process game entries when there are a lot of games, while multiman does it almost instantaneously
      Last edited: May 14, 2020
      Algol, kozarovv, citra mulia and 7 others like this.
    11. -Ricardo-
      -Ricardo-
      Eu tenho um ps3 Hen
    12. SniperSnake
      SniperSnake
      How does one apply the patch? Like a plugin? Its been years since i was deep into the ps3 scene i feel bad ive gotten so rusty
    13. emu_kidid
      emu_kidid
      These didn't seem to work, I'm running 4.86 rebug rex lite and it doesn't match when performing the check against RMDIR_SYSCALL_ADDR. Also, patch_htab3 is defined twice?
    14. SniperSnake
      SniperSnake
      Im running a older cfw on my 60gb and can downgrade to whatever was compatable with the original code like 4.21.
    15. Zeloko
      Zeloko
      Working dynarec sucesfull?
    16. emu_kidid
      emu_kidid
      You'll need to understand that "dynarec" doesn't just mean enabling those lv2 patches. Those will just allow me to then actually execute code that I've written at runtime. At this point I've not even had that part working yet so once the patches work I'll be able to begin work on making the ppc32 dynarec from the Wii port on the PS3.
    17. zecoxao
      zecoxao
      4.86 seems to have 4 htab patches while 4.21 only has 3 (i forgot to rename the last one to htab_patch 4)

      Edit: you can check all of these offsets if you run the lv2 and lv1 dump analyzer scripts in ps3ida. the kozzarov ps3ida found in my repo has the sys 15 that is meant for newer rebug dumps

      once you run the lv2 dump script you'll notice this

      ROM:00004064 .byte 0x44 # D # hvsc(1): lv1_write_htab_entry
      ROM:0005D5F0 .byte 0x44 # D # hvsc(1): lv1_write_htab_entry
      ROM:0005E028 .byte 0x44 # D # hvsc(1): lv1_write_htab_entry
      ROM:0005E4F0 .byte 0x44 # D # hvsc(1): lv1_write_htab_entry

      which is where the patches should happen (there was an exact match for 4.21 offsets)

      edit2:
      https://github.com/zecoxao/DynarecPS3/
      Last edited: May 15, 2020
    18. psykosis
      psykosis
      Yeah... cell is weird.. PPCx64 main chip, controlling 7 x86 SPE's. One being reserved by the system. I know that it was also a pain to develop for, based off the architectural differences in addition to the lack of robust documentation/samples like on the ps2.
    19. kozarovv
      kozarovv
      So translated it will be something like this. Nobody care what retroarch can run on PS3, is running on it so it count. This gonna be small offtopic rant, but RA since long time go into quantity over quality.

      CELL is special but not so special to make talented developer some problem to port dynarec to it. That post just explain in nice words that nobody care there about ps3 anymore. Like nobody provided ready to go solution so we can't use it.

      I mean is PPC that can be basically handled like 32 bit one, you don't even need to use full register capacity and move data to higher 32 bit of register. Just use it like it is 32 bit. What else is issue? 3 different load vector instructions comparing to standard PPC? No branch prediction?

      Sorry that i triggered here, but RA getting annoying lately for me. While i like this project, i really dislike that is now more about "we can run on.." than anything else.
      SPE is different story, but consoles up to N64 don't really need it.
      jacobsson, sandungas and LuanTeles like this.
    20. sandungas
      sandungas
      Are like a piece of code that allows the dynarec to have a more "low level" access to the PS3 system, is like a requirement and afer implementing them in the source code of the emu is going to be the first time dynarec works for 4.86 (but the dynarec code is not completed, dont expect it working since day one)
      By now you cant help (and it seems the dynarec cant even be initiated yet), but it looks the development is going to happen for 4.86 firmware so you should consider updating to 4.86 CFW

Share This Page