PSX-SCENE Forum Discussion for Sony PlayStation/PsOne/PS2/PS3/PSP/PS VITA
  • multiMAN ver 04.20.03 - Dynarec Enabled

    Deank has updated multiMAN to version 04.20.03, in this update deank adds support for a new Rebug CFW (4.30DEX CFW- TBA), As well as adding support for PS1 BIN+CUE (using ps1_emu/netemu) for 3.55DEX, 4.21DEX and 4.30DEX. Deank following the work and help from IngPereira has added DynaRec support (New options in Settings "Enable DYNAREC") , DYNAREC is supported for 3.55/4.30 CEX/DEX, & 4.31 CEX, There was also some minor fixes issues in 4x2 and 8x4 modes. For complete details of this very interesting update by deank, check the official announcement / changelog for multiMAN ver 04.20.03 below.





    multiMAN 04.20.03 update is available online and in the WEB column.

    multiMAN ver 04.20.03 UPD (20130303).zip (7.97MB)
    Download multiMAN ver 04.20.03 UPD (20130303).zip from Sendspace.com - send big files the easy way

    * Added support for 4.30DEX CFW (REBUG) (TBA)
    * Added support for PS1 BIN+CUE (using ps1_emu/netemu) for 3.55DEX, 4.21DEX and 4.30DEX

    * Added DynaRec support: New option in Settings "Enable DYNAREC"
    * DYNAREC support for 3.55CEX/DEX, 4.21CEX/DEX, 4.30CEX/DEX, 4.31CEX
    * Fixed few minor issues in 4x2 and 8x4 modes (refreshing the game title when insert/ejecting a PS3 game disc)
    * Fixed a very rare bug in mmOS when icon names/texts are getting corrupted

    DYNAREC support tested on 4.21REX and 4.30ROGERO with ps3sx_Beta.pkg which is enough to assume that the implementation is proper. Thanks to Ing. Pereira for the htab info and PeteUK for the testing. All offsets can be found in my source below so Ing. Pereira can port his app for other firmwares, too. Also there is an easier way to detect all CFW firmwares and I posted about it at the end of this post.

    =============================================

    Here is a slightly modified PS3SX:

    * You can install it on any mM supported firmware (3.55CEX/DEX, 4.21CEX/DEX, 4.30CEX/DEX, 4.31CEX)
    * The configuration file is USRDIR/CF.ini
    * Comes with bios and all paths set properly where the default ROM path is /dev_hdd0/PSXISO
    * EBOOT.BIN calls RELOAD.SELF so you can boot PS3SX directly from multiMAN
    * It has VERY POOR compatibility but shows that dynarec is working on all firmwares.

    PS3SX [BETA].pkg (5.95MB)
    Download PS3SX [BETA].pkg Requires Bios

    You can enable DynaRec in mM's settings and directly load PS3SX from mM's GAME column. Thanks to aldostools for the cover. Developers can use this dynarec option in mM if they wish to test their apps in this environment.

    =============================================

    The implementation in mM is different than IngPereira's approach, because it doesn't use the 0x700000 area for the payload and the patches, there are no issues with PKG files and works on all firmwares. Still the kammy data for the hvsc redirections is used, but dynarec's usage is greatly simplified by an "On/Off" option in mM.

    I'm just saying this because some morons will go again with their idiotic comments about copy/pasting. Parts of the mM code is here, along with info how to make it work on all firmwares.



    Dean

    It is as simple as that:

    Code:
    /* (c) 2010-2013 multiMAN, Dynarec Enabler
       (c) 2013 Ing Pereira
    */
    #define HTAB_BASE                0x800000000f000000ULL
    
    #define HTAB_LV2_START_421            (0x01000000ULL)
    #define HTAB_LV2_START_421D            (0x08000000ULL)
    #define HTAB_LV2_START_430            (0x01000000ULL)
    
    // base_addr = address of mM's payload
    // base_addr + 0x100 = address of htab payload
    
    void dynarec_payload()
    {
        u64 base_addr=0;
        u64 patch_htab1=0;
        u64 patch_htab2=0;
        u64 patch_htab3=0;
        HTAB_LV2_START=0;
    
        if(c_firmware==3.55f && !dex_mode)
        {
            base_addr=0x2BE0D0;
            patch_htab1=0x59944;
            patch_htab2=0x5A37C;
            patch_htab3=0x5A844;
        }
        else if(c_firmware==3.55f && dex_mode)
        {
            base_addr=0x2D5B20;
            patch_htab1=0x5D230;
            patch_htab2=0x5DC68;
            patch_htab3=0x5E130;
        }
        else if(c_firmware==4.21f && !dex_mode)
        {
            base_addr=0x2D0C98;
            patch_htab1=0x5CCA4;
            patch_htab2=0x5D6DC; //+A38
            patch_htab3=0x5DBA4; //+4C8
    
        }
        else if(c_firmware==4.21f && dex_mode)
        {
            base_addr=0x2EB418;
            patch_htab1=0x605BC;
            patch_htab2=0x60FF4;
            patch_htab3=0x614BC;
        }
        else if(c_firmware==4.30f && !dex_mode)
        {
            base_addr=0x2D2418; //0x6ff000; to test htab
            patch_htab1=0x5CDF4;
            patch_htab2=0x5D82C;
            patch_htab3=0x5DCF4;
        }
        else if(c_firmware==4.30f && dex_mode)
        {
            base_addr=0x2ECB48;
            patch_htab1=0x6070C;
            patch_htab2=0x61144;
            patch_htab3=0x6160C;
        }
        else if(c_firmware==4.31f && !dex_mode)
        {
            base_addr=0x2D2428;
            patch_htab1=0x5CDF8;
            patch_htab2=0x5D830;
            patch_htab3=0x5DCF8;
        }
        else return;
    
        base_addr|=0x8000000000000000ULL;
        patch_htab1|=0x8000000000000000ULL;
        patch_htab2|=0x8000000000000000ULL;
        patch_htab3|=0x8000000000000000ULL;
    
        if(patch_htab1 && HTAB_LV2_START)
        {
    
            Lv2Syscall2(7, base_addr + 0x100, 0x7C0802A6F8010010ULL);
            Lv2Syscall2(7, base_addr + 0x108, 0xF821FF81F8410070ULL);
            Lv2Syscall2(7, base_addr + 0x110, 0x3C40800060420000ULL);
    
            Lv2Syscall2(7, base_addr + 0x118, 0x784207C664420000ULL | ( ((base_addr+0x198)>>16)&0xFFFF) );
            Lv2Syscall2(7, base_addr + 0x120, 0x60420000E8020000ULL | ( ((base_addr+0x198))&0xFFFF)<<32 );
    
            Lv2Syscall2(7, base_addr + 0x128, 0xE84200087C0903A6ULL);
            Lv2Syscall2(7, base_addr + 0x130, 0x4E800421E8410070ULL);
    
            Lv2Syscall2(7, base_addr + 0x138, 0x38210080E8010010ULL);// BCTR <htab_write_caller> desc
            Lv2Syscall2(7, base_addr + 0x140, 0x7C0803A64E800020ULL);
            Lv2Syscall2(7, base_addr + 0x148, 0x78C607647C0802A6ULL);// <htab_write_caller>
            Lv2Syscall2(7, base_addr + 0x150, 0xF801001060C60002ULL);
            Lv2Syscall2(7, base_addr + 0x158, 0xF821FF914800001DULL);// -> BL <lv1_write_htab>
            Lv2Syscall2(7, base_addr + 0x160, 0x6000000038210070ULL);
            Lv2Syscall2(7, base_addr + 0x168, 0x7C6307B4E8010010ULL);
            Lv2Syscall2(7, base_addr + 0x170, 0x7C0803A64E800020ULL);
            Lv2Syscall2(7, base_addr + 0x178, 0x7C0802A6F8010010ULL);// <lv1_write_htab>
            Lv2Syscall2(7, base_addr + 0x180, 0x3960000144000022ULL);
            Lv2Syscall2(7, base_addr + 0x188, 0x7C6307B4E8010010ULL);
            Lv2Syscall2(7, base_addr + 0x190, 0x7C0803A64E800020ULL);
            Lv2Syscall2(7, base_addr + 0x198, (base_addr + 0x148));     // htab _Custom call desc
            Lv2Syscall2(7, base_addr + 0x1A0, 0x8000000000700000ULL);
    
            /* enable full r/w/x access */
            uint64_t pte0, pte1;
    
            /* process entire lv2 */
            for (int i = 0; i < 128; i++)
            {
                /* read the old value */
                pte0 = Lv2Syscall1(6, HTAB_BASE | (i << 7));
                pte1 = Lv2Syscall1(6, HTAB_BASE | (i << 7) + 8);
    
                /* verify entry is lv2 */
                if ((pte1 >= HTAB_LV2_START) && (pte1 < (HTAB_LV2_START+0x800000ULL)))
                {
                    /* patch proper htab settings */
                    lv1_write_htab_entry(0, i << 3, pte0, (pte1 & 0xff0000) | 0x190);
                }
            }
    
            Lv2Syscall2(7, patch_htab1, (0x480000012C230000ULL) | ( ((base_addr+0x100-patch_htab1)&0xFFFFFF)<<32) );
            Lv2Syscall2(7, patch_htab2, (0x480000012C230000ULL) | ( ((base_addr+0x100-patch_htab2)&0xFFFFFF)<<32) );
            Lv2Syscall2(7, patch_htab3, (0x480000012C230000ULL) | ( ((base_addr+0x100-patch_htab3)&0xFFFFFF)<<32) );
        }
    }
    Code:
    	u64 CEX=0x4345580000000000ULL;
    	u64 DEX=0x4445580000000000ULL;
    
    	if(peekq(0x80000000002E79C8ULL)==DEX) {dex_mode=2; c_firmware=3.41f;}
    	else
    	if(peekq(0x80000000002CFF98ULL)==CEX) {dex_mode=0; c_firmware=3.41f;}
    	else
    	if(peekq(0x80000000002EFE20ULL)==DEX) {dex_mode=2; c_firmware=3.55f;}
    	else
    	if(peekq(0x80000000002D83D0ULL)==CEX) {dex_mode=0; c_firmware=3.55f;}
    	else
    	if(peekq(0x8000000000302D88ULL)==DEX) {dex_mode=2; c_firmware=4.21f;}
    	else
    	if(peekq(0x80000000002E8610ULL)==CEX) {dex_mode=0; c_firmware=4.21f;}
    	else
    	if(peekq(0x80000000002E9F08ULL)==CEX) {dex_mode=0; c_firmware=4.30f;}
    	else
    	if(peekq(0x8000000000304630ULL)==DEX) {dex_mode=2; c_firmware=4.30f;}
    	else
    	if(peekq(0x80000000002E9F18ULL)==CEX) {dex_mode=0; c_firmware=4.31f;}
    	else
    // unknown firmware...

    In IDA for 4.30CEX where:

    base_addr=0x2D2418 which makes the payload go at base_addr+0x100 -> 0x2D2518:

    Code:
    ROM:002D2518 # =============== S U B R O U T I N E =======================================
    ROM:002D2518
    ROM:002D2518
    ROM:002D2518 sub_2D2518:                             # CODE XREF: sub_5C9D4+420p
    ROM:002D2518                                         # sub_5D590+29Cp
    ROM:002D2518
    ROM:002D2518 .set var_10, -0x10
    ROM:002D2518 .set arg_10,  0x10
    ROM:002D2518
    ROM:002D2518                 mflr      r0
    ROM:002D251C                 std       r0, arg_10(r1)
    ROM:002D2520                 stdu      r1, -0x80(r1)
    ROM:002D2524                 std       r2, 0x80+var_10(r1)
    ROM:002D2528                 lis       r2, -0x8000
    ROM:002D252C                 mr        r2, r2
    ROM:002D2530                 sldi      r2, r2, 32
    ROM:002D2534                 oris      r2, r2, 0x2D
    ROM:002D2538                 ori       r2, r2, 0x25B0
    ROM:002D253C                 ld        r0, 0(r2)
    ROM:002D2540                 ld        r2, 8(r2)
    ROM:002D2544                 mtctr     r0
    ROM:002D2548                 bctrl
    ROM:002D254C                 ld        r2, 0x80+var_10(r1)
    ROM:002D2550                 addi      r1, r1, 0x80
    ROM:002D2554                 ld        r0, arg_10(r1)
    ROM:002D2558                 mtlr      r0
    ROM:002D255C                 blr
    ROM:002D255C # End of function sub_2D2518
    ROM:002D255C
    ROM:002D2560 # ---------------------------------------------------------------------------
    ROM:002D2560
    ROM:002D2560 loc_2D2560:                             # DATA XREF: ROM:002D25B4o
    ROM:002D2560                 clrrdi    r6, r6, 2
    ROM:002D2564                 mflr      r0
    ROM:002D2568                 std       r0, 0x10(r1)
    ROM:002D256C                 ori       r6, r6, 2
    ROM:002D2570                 stdu      r1, -0x70(r1)
    ROM:002D2574                 bl        sub_2D2590
    ROM:002D2578                 nop
    ROM:002D257C                 addi      r1, r1, 0x70
    ROM:002D2580                 extsw     r3, r3
    ROM:002D2584                 ld        r0, 0x10(r1)
    ROM:002D2588                 mtlr      r0
    ROM:002D258C                 blr
    ROM:002D2590
    ROM:002D2590 # =============== S U B R O U T I N E =======================================
    ROM:002D2590
    ROM:002D2590
    ROM:002D2590 sub_2D2590:                             # CODE XREF: ROM:002D2574p
    ROM:002D2590
    ROM:002D2590 .set arg_10,  0x10
    ROM:002D2590
    ROM:002D2590                 mflr      r0
    ROM:002D2594                 std       r0, arg_10(r1)
    ROM:002D2598                 li        r11, 1
    ROM:002D259C                 hvsc                    # hvsc(1): lv1_write_htab_entry
    ROM:002D25A0                 extsw     r3, r3
    ROM:002D25A4                 ld        r0, arg_10(r1)
    ROM:002D25A8                 mtlr      r0
    ROM:002D25AC                 blr
    ROM:002D25AC # End of function sub_2D2590
    ROM:002D25AC
    ROM:002D25AC # ---------------------------------------------------------------------------
    ROM:002D25B0                 .long 0x80000000
    ROM:002D25B4                 .long loc_2D2560
    ROM:002D25B8                 .long 0x80000000
    ROM:002D25BC                 .long unk_700000
    Code:
    002D2518  7C 08 02 A6 F8 01 00 10  F8 21 FF 81 F8 41 00 70
    002D2528  3C 40 80 00 60 42 00 00  78 42 07 C6 64 42 00 2D
    002D2538  60 42 25 B0 E8 02 00 00  E8 42 00 08 7C 09 03 A6
    002D2548  4E 80 04 21 E8 41 00 70  38 21 00 80 E8 01 00 10
    002D2558  7C 08 03 A6 4E 80 00 20  78 C6 07 64 7C 08 02 A6
    002D2568  F8 01 00 10 60 C6 00 02  F8 21 FF 91 48 00 00 1D
    002D2578  60 00 00 00 38 21 00 70  7C 63 07 B4 E8 01 00 10
    002D2588  7C 08 03 A6 4E 80 00 20  7C 08 02 A6 F8 01 00 10
    002D2598  39 60 00 01 44 00 00 22  7C 63 07 B4 E8 01 00 10
    002D25A8  7C 08 03 A6 4E 80 00 20  80 00 00 00 00 2D 25 60
    002D25B8  80 00 00 00 00 70 00 00

    mM Download: multiMAN ver 04.20.03 UPD (20130303).zip
    Mirror: PSX-Scene
    Mirror: Brewology

    ps3sx Download: ps3sx_Beta (Requires Bios)


    Source: PSX-Scene & PS3crunch


    PSX-SCENE: The Pinnacle Scene Xenocracy
    deank, amp2006, bitsbubba and 7 others like this.
    Comments 49 Comments
    1. JOshISPoser's Avatar
      JOshISPoser -
      and psx rules everything
    1. Hollywood's Avatar
      Hollywood -
      Quote Originally Posted by deank View Post
      4x2 and 8x4 modes are very sensitive to L2/R2 input for page change. I'm not sure if I completely understand your problem, because I test all modes regularly and have no issues with any of them.
      Thanks for the replies, I didn't know that. Maybe it is the controller than but it's a slight off set that doesn't effect any other game. I'll have to get my hands on another and try it out.
    1. psxman's Avatar
      psxman -
      I just got the new multiman and also changed from rogero 4.30 to rebug 4.30.1.
      But how can I activate the spoof ,so it is 4.31 cfw.
      Because now I see 4.30,and also fifa need 4.31 after update to 1.05.
    1. JOshISPoser's Avatar
      JOshISPoser -
      go into rebug toolbox and make it rebug or rex or whatever; it's in the second column. this kinda doesn't apply to multiman, but that's cool.
    1. szczuru's Avatar
      szczuru -
      Quote Originally Posted by psxman View Post
      I just got the new multiman and also changed from rogero 4.30 to rebug 4.30.1.
      But how can I activate the spoof ,so it is 4.31 cfw.
      Because now I see 4.30,and also fifa need 4.31 after update to 1.05.
      In Rebug Toolbox set mode to "REBUG".
    1. STLcardsWS's Avatar
      STLcardsWS -
      Quote Originally Posted by ffgriever View Post
      Does anyone know whether the ps3sx is being maintained by someone? It's quite useless, as it has been made obsolete by the usage of the internal emulator, but just for the sake of it... Ps3sx requires two simple patches to make the compatibility go from ~30 to ~90% (and another one to make the 368x resolutions display properly). Sure, I can compile the sources and post, but it would be better to use some common repository. The same applies to the pcsx port in mednafen project.

      @deank
      BTW. The internal emulators have some issues in games like grandia. If you use PAL game and the refresh rate is at 60 (1080p(at)60, 720p(at)60), the voice acting is getting either very choppy (psemu) or goes too fast (netemu - the pitch is too high). It works fine in modes like 576p(at)50 or 1080p(at)50 (but you cannot set the 1080p(at)50 in multiman, even though the emulator definitely supports that, as launching the original game forces the (at)50 modes). The ideal solution would be to make the (at)50 modes selectable in multiman (there is only the 576p(at)50 selectable).
      I wouldnt say that the PSone emulators are useless, since we have control of the native one.

      The native one we cant improve many of it features.
      emulators like ps3sx you could have

      shader support,
      true full screen,
      Save/load save states could perhaps be possible to port from other systems.
      ect.....

      Plus many more features that we have come to love about various emulators. Depending on the emulator and game some run better on other emus.
    1. psxman's Avatar
      psxman -
      Thx guys!!
      Only problem I have now is the black screen...
      I can start fifa now with the 1.05 update,but after the move instructions I got a black screen.
    1. JOshISPoser's Avatar
      JOshISPoser -
      Quote Originally Posted by STLcardsWS View Post
      I wouldnt say that the PSone emulators are useless, since we have control of the native one.

      The native one we cant improve many of it features.
      emulators like ps3sx you could have

      shader support,
      true full screen,
      Save/load save states could perhaps be possible to port from other systems.
      ect.....

      Plus many more features that we have come to love about various emulators.
      YES YES YES! I'd love some shaders. Pretty much everything before the fifth gen i like to keep original, crisp, enjoy the sprites. With 5th and beyond, i don't mind touch ups to make it a lil better. Well, except certain games that do use pixel art like a lot of rpgs and adventure of little ralph or even Castlevania. I'd love the psx games to look almost HD but just with bad draw distance

      Oh, save states would be killer especially with earlier games that still have passwords and stuff...i'm looking at you Crash Bandicoot and Army Men

      Quote Originally Posted by psxman View Post
      Thx guys!!
      Only problem I have now is the black screen...
      I can start fifa now with the 1.05 update,but after the move instructions I got a black screen.
      Try fixing permissions, bd-mirror, with/out a disc, etc. There's many options to try to get a game to work unless it just won't work.
    1. donattio28's Avatar
      donattio28 -
      when I start I get error 80029519 ps3sx help
    1. STLcardsWS's Avatar
      STLcardsWS -
      which CFW are you on?
    1. 666HELLRIDER's Avatar
      666HELLRIDER -
      DO THIS SUPORTS N64 GAMES?
    1. RazorX's Avatar
      RazorX -
      that would require an emulator and there isnt one yet
    1. Xtrasmiley's Avatar
      Xtrasmiley -
      I'm really late to the MM and PSX game and I didn't see this in the guide.

      I have a PSX game in bin/cue form on a portable hard drive. Where can I copy this file to play through MM? Is there a PSX folder somewhere? Will this even work or do I have to burn to CDR? Thanks!
    1. libretro's Avatar
      libretro -
      Hi ffgriever,

      Squarepusher here. I remember you from the FF12 International project - great work there.

      Anyways - even though it's unlikely PS3SX will ever really be comparable to the built-in PS1 emu - I'm very much open to doing a separate libretro port of it and having it in RetroArch. I'd appreciate if you could submit the patches to me - I assume they are bugfixes in the recompiler.

      I could make a repo for PS3SX on our libretro github page and give you co-admin access so you can directly contribute to it.

      I think making a libretro port of it is the best way to go about it - the original PS3SX used Cellframework v1 - I did that together with maister and in hindsight it was quite badly written - RetroArch's video/input/audio drivers should be far superior by comparison.

      Made a repo for it on Github libretro - unfortunately I am not allowed to post 'links' here until I have 30 posts.

      https://github.com/libretro/ps3sx

      I'm on Github as 'twinaphex' and I also maintain the libretro organization. If you have a Github account I could add you as a co-committer/admin for the repo there.
    1. deank's Avatar
      deank -
      Quote Originally Posted by Xtrasmiley View Post
      I'm really late to the MM and PSX game and I didn't see this in the guide.

      I have a PSX game in bin/cue form on a portable hard drive. Where can I copy this file to play through MM? Is there a PSX folder somewhere? Will this even work or do I have to burn to CDR? Thanks!
      Check the "options_default.ini" which is available in each mM installation.

      You can put your PSX backups in:

      /dev_hdd0/PSXISO (internal HDD)
      or
      /dev_usb***/PSXISO (external USB HDD)

      For best results use:

      /dev_***/PSXISO/My_Game_Title.CUE
      /dev_***/PSXISO/My_Game_Title.BIN
      /dev_***/PSXISO/My_Game_Title.JPG <--- cover

      Then go to the retro column in mM and refresh.
    1. libretro's Avatar
      libretro -
      Looks like deank was able to add the link for me to the repo - thanks.
    1. ffgriever's Avatar
      ffgriever -
      Hi. I'm not that much interested in the development of the port, just wanted to help a little bit with some findings I made some time ago. First of all: ps3sx sources were terribly outdated even when it was published for the first time. It has some terrible counter issues (RTC emulation), takes some sio times out of an ass (thus quite often memory cards and pad do not work at all or give some issues), doesn't take into account, that there are other horizontal resolutions than 320 and 640... and a lot of other issues. Many recompiler errors are not bound to it, it's simply the fact that recompilers are not as accurate (timing wise) as interpreters. The guessing made in many points worked for interpreter, but screwed the games under recompiler.

      The two main issues I wrote about exist in most of the psx emulator sources I've seen (but not all, fortunately). The first one is an issue in Ordering Table handling (DMA6). It screws the emulation on all big endian machines. The other one is related to sllv, srav and srlv instruction emulation (both in interpreter and recompiler modes - using register value greater than 31 has somewhat different outcome on mips and ppc, especially when it's something like 0xffffff1f or 0xffffffffffffff1f... it works fine on x86, though). These two fixes make the compatibility go significantly up (well, at least the games are running, they might not work too well because of other issues, including the borked gpu support).

      There is also a minor fix in the software gpu renderer (some negative values not handled properly... but I can't recall what it was exactly, I fiddled with it quite a long time ago). And a lot more bugs, but these are big and at the same time easiest to fix.

      But, to be honest. Since you're going to use libretro, the best choice would probably be to start with some fresh pcsx-r sources or use something better coded, like mednafen psx core (which already is a libretro core). They're far better and more stable... Unless there is no one that's willing to spent some considerable efforts on this. Right now I have only PSL1GHT setup, but I could setup another environment just for ps3sx (to test the changes and make sure they actually work the way I remember they did ).
    1. libretro's Avatar
      libretro -
      Quote Originally Posted by ffgriever View Post
      Hi. I'm not that much interested in the development of the port, just wanted to help a little bit with some findings I made some time ago. First of all: ps3sx sources were terribly outdated even when it was published for the first time. It has some terrible counter issues (RTC emulation), takes some sio times out of an ass (thus quite often memory cards and pad do not work at all or give some issues), doesn't take into account, that there are other horizontal resolutions than 320 and 640... and a lot of other issues. Many recompiler errors are not bound to it, it's simply the fact that recompilers are not as accurate (timing wise) as interpreters. The guessing made in many points worked for interpreter, but screwed the games under recompiler.

      The two main issues I wrote about exist in most of the psx emulator sources I've seen (but not all, fortunately). The first one is an issue in Ordering Table handling (DMA6). It screws the emulation on all big endian machines. The other one is related to sllv, srav and srlv instruction emulation (both in interpreter and recompiler modes - using register value greater than 31 has somewhat different outcome on mips and ppc, especially when it's something like 0xffffff1f or 0xffffffffffffff1f... it works fine on x86, though). These two fixes make the compatibility go significantly up (well, at least the games are running, they might not work too well because of other issues, including the borked gpu support).

      There is also a minor fix in the software gpu renderer (some negative values not handled properly... but I can't recall what it was exactly, I fiddled with it quite a long time ago). And a lot more bugs, but these are big and at the same time easiest to fix.

      But, to be honest. Since you're going to use libretro, the best choice would probably be to start with some fresh pcsx-r sources or use something better coded, like mednafen psx core (which already is a libretro core). They're far better and more stable... Unless there is no one that's willing to spent some considerable efforts on this. Right now I have only PSL1GHT setup, but I could setup another environment just for ps3sx (to test the changes and make sure they actually work the way I remember they did ).
      Yeah, it's probably based on an obsolete version of PCSX - I'm quite familiar with the PCSX ReARMed codebase by now and it really seems worlds apart.

      Regarding the Mednafen libretro ports - me and maister did all of those. The thing with Mednafen PSX is though - it has nothing to do with PCSX and it only has a CPU interpreter for now - the main aim is accuracy rather than speed. So it is a good target on PC but no other platform right now. Ryphecha prefers to get the CPU interpreter 100% accurate first before something like a recompiler would even be considered.

      The more I think about it, the more I believe we have to start working towards having PCSX ReARMed work on more than just ARM-based systems (we and notaz maintain a libretro port of that as well) - Exophase's NEON GPU plugin is just astounding and really beats the default software renderer in every conceivable way. There is a plain C version of it as well that doesn't require ARM NEON although it is still a bit premature. Problem with PCSX ReARMed though is that it uses a revised dynarec system since PCSX ReARMed is using a hacked version of Ari64's N64 MIPS-to-ARM dynarec (since PSX' MIPS R3000a is a subset of the N64's MIPS R4300i he managed to get the N64 recompiler to work for PSX).

      Anyway, pull requests and patches would be very welcome.
    1. slikrick's Avatar
      slikrick -
      First of, Deank thanks for all your hard work!!!
      I'm still on 3.55 rebug (I know time to update) with a broken blu-ray drive. I was going to try and make a BD emulator USB stick(witch looks kinda confusing) but now that mM supports more games diskless is that really necessary? Also i don't really know what to upgrade to. I was thinking 4.30 DEX, any suggestions?
    1. bitsbubba's Avatar
      bitsbubba -
      Quote Originally Posted by libretro View Post
      - unfortunately I am not allowed to post 'links' here until I have 30 posts.

      https://github.com/libretro/ps3sx

      I'm on Github as 'twinaphex' and I also maintain the libretro organization. If you have a Github account I could add you as a co-committer/admin for the repo there.
      Hey Squarepusher, nice to see you back, just to let you know the new rule is 10/10 (even though it reads 30/30) just 10 posts in 10 days but till then we'll be glad to post any links for you
  • Daily Digest


    Want to receive the latest PSX info in your email?

    Sign up for our Daily Digest!



    Want to learn more about the team keeping you up to date with the latest scene news?

    Read about them now!

    Check out our Developer bios, too!

  • Recent Threads

    Bluexmen

    Backup Hd to another hd?

    Thread Starter: Bluexmen

    Hi was wondering if there was a way to backup an old hard drive to another new hard drive either from PS2 or PC or mac? I would be alright with mac. or

    Last Post By: No0bZiLLa Today, 01:00 AM Go to last post
    hni19

    Problem when attempting to play Kingdom Hearts burned from ISO file?

    Thread Starter: hni19

    I seem to be having a problem attempting to get Kingdom Hearts working through burning an ISO file.

    The process which I follow is.

    Last Post By: amp2006 Today, 01:19 AM Go to last post
    STLcardsWS

    PSX-Scene Files: Collection of Past Articles

    Thread Starter: STLcardsWS





    What is PSX-Scene Files?

    PSX-Scene Files is a new series we have decided to kick off here at PSX-Scene.com

    Last Post By: STLcardsWS Yesterday, 08:52 PM Go to last post
    ilikeUallNOgay

    RELEASE pOrtal mod

    Thread Starter: ilikeUallNOgay

    its complete , no more glitches . and i added more stuff to it .
    pleaze tell me what would you want me to add and i will for sure D

    Last Post By: Avery Yesterday, 10:45 PM Go to last post
    suddene

    Strange HD Swap auto Downgraded Rogero 4.41 to 4.40 1.03

    Thread Starter: suddene

    Had a strange incident earlier, just wondering why it happened, maybe it's a common occurrence, not sure, any insight would be appreciated. I had a 160GB

    Last Post By: suddene Yesterday, 07:36 PM Go to last post
    Qdft665

    Not entirely sure where to start..

    Thread Starter: Qdft665

    so basically i just got a copy of AR Max 3.71 in the mail, and there's no media player to install fmcb. would updating it make the media player available?

    Last Post By: Qdft665 Yesterday, 10:30 PM Go to last post
  • Recent Comments

    NuBiXx

    Looks like Microsoft is rethinking their DRM restrictions

    Oh OK Go to last post

    NuBiXx Today 01:04 AM
    No0bZiLLa

    Looks like Microsoft is rethinking their DRM restrictions

    nah, im pretty sure they mean after you setup the xbox one itself, then you can play all yoru games... Go to last post

    No0bZiLLa Today 01:03 AM
    NuBiXx

    Looks like Microsoft is rethinking their DRM restrictions

    Maybe I'm wrong, the way I think it says that you can play offline after a one time setup by setup... Go to last post

    NuBiXx Today 01:01 AM
    No0bZiLLa

    Looks like Microsoft is rethinking their DRM restrictions

    yes, the one time setup is for the system itself. not games. all games can be played without having... Go to last post

    No0bZiLLa Today 12:57 AM
    No0bZiLLa

    Looks like Microsoft is rethinking their DRM restrictions

    you dont have to have it connected to the internet to play games. it says it right in the quote... Go to last post

    No0bZiLLa Today 12:55 AM
    STLcardsWS

    PSX-Scene Files Vol. 2 - The Opium2k Collection

    There is so much in this collection i always find something new when i give it a look.

    Thanks... Go to last post

    STLcardsWS Today 12:53 AM
    NuBiXx

    Looks like Microsoft is rethinking their DRM restrictions

    It's right there in how they wrote it.



    That tells me after a one time setup (Activate) you... Go to last post

    NuBiXx Today 12:44 AM
    No0bZiLLa

    Looks like Microsoft is rethinking their DRM restrictions

    where did you hear this from? you got a link? Go to last post

    No0bZiLLa Today 12:34 AM
    NuBiXx

    Looks like Microsoft is rethinking their DRM restrictions

    To be honest I wan't surprised at all I had a feeling MS would do a 180 only because Sony wasn't... Go to last post

    NuBiXx Today 12:27 AM
    Raikalo

    Looks like Microsoft is rethinking their DRM restrictions

    It's not quite that simple because game retailers would have to set up the aforementioned "hub" to... Go to last post

    Raikalo Today 12:24 AM