PSX-SCENE Forum Discussion for Sony PlayStation/PsOne/PS2/PS3/PSP/PS VITA
  • multiMAN / Showtime mM edition Updates

    multiMAN receives another minor update today by deank bringing it to version 04.19.07. This update provides support for multi-disc games when using the PS1_NETEMU emulator for PSone games. Also below you will find an announcement by deank about future support of lower CFW's starting in the v05.00.00 release of multiMAN. Deank has also updated Showtime (multiMAN edition) to v04.03.010 following the works of Andreas Öman. For all the details check all the release quotes and announcements below



    multiMAN 04.19.07 minor update is available online and in the web column.

    multiMAN ver 04.19.07 UPD (20130212).zip (21.77MB) (CEX/DEX/STEALTH updates)
    multiMAN ver 04.19.07 UPD (20130212).zip

    * Added support for multi-disc games when using PS1_NETEMU emulator


    With this update the ps1 backups support saga should be concluded.

    Dean

    p.s. Here are the two major patches in ps1_netemu. Iris no longer uses 'patched emulators' but provides syscall emulation, but I prefer to keep it this way - it is much clear and simple.

    ATAPI 0x4A GET EVENT/STATUS NOTIFICATION

    Code:
    //case 8 = [fill sector buffer with 0xFF]
    //case 7 = [0xBE READ CD]
    //case 6 = [0x51 READ DISC INFORMATION]
    //case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
    //case 4 = [fill sector buffer with 0xFF]
    //case 3 = [0x00 TEST UNIT READY]
    //case 2 = [sys_storage_close()]
    //case 1 = [sys_storage_open() ]
    
    //4.30
    //#define BASE        (0x11C8F8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
    //#define RETURN        (0x11CA10)    //+118 // case 5 return
    //#define RETURN_ERR    (0x11CFC4)    //+6CC // case 5 return
    
    //4.20
    //#define BASE        (0x11C7E8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
    //#define RETURN        (0x11C900)    // case 5 return
    //#define RETURN_ERR    (0x11CEB4)    // case 5 return
    
    //3.55
    //#define BASE        (0x11B038)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
    //#define RETURN        (0x11B150)    // case 5 return
    //#define RETURN_ERR    (0x11B704)    // case 5 return
    
    //3.41
    #define BASE        (0x11B2D8)    // GET EVENT/STATUS NOTIFICATION in ps1_netemu
    #define RETURN        (0x11B3F0)    // case 5 return
    #define RETURN_ERR    (0x11B9A4)    // case 5 return
    
    
    #define SECTOR_SIZE    (0xD0)        // address in lv2 memory to store sector size
    #define HANDLE        (0xD8)        // address in lv2 memory to store fd (open handle)
    #define DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)
    
    #define ABS(target)        ((target) - (BASE) - .)
    #define ABS2(target)    ((target) - .)
    
    #define MEM_BASE(dest) \
        li dest, 1; \
        rldicr dest, dest, 63, 0;
    
    #define LOAD_LABEL(base, dest, source, address) \
        oris   dest, source, ((base) + (address))@h; \
        ori    dest, dest, ((base) + (address))@l;
    
    #define LOAD_LABEL2(dest, source, address) \
        LOAD_LABEL(BASE, dest, source, address)
    
    #define PEEK(address) \
        ori     %r3, %r25, address; \
        li      %r11, 6; \
        sc;
    
    #define POKE(address) \
        ori     %r3, %r25, address; \
        li      %r11, 7; \
        sc;
    
    #define SLEEP(ms) \
        li      %r3, ms; \
        li      %r11, 0x8D; \
        sc;
    
    #define RED        0
    #define GREEN    1
    #define YELLOW    2
    
    #define OFF        0
    #define ON        1
    #define BLINK    2
    
    #define LED(color, mode) \
        li      %r3, color; \
        li      %r4, mode; \
        li      %r11, 386; \
        sc;
    
    // IN:
    // %r26 -> address of local stack buffer
    // %r27 -> reserved
    // %r28 -> reserved
    
    .org 0
    
        MEM_BASE(%r25)
    
        lis        %r4, 0x0002
        stw        %r4, 0x78(%sp)    // 00 02 00 00 = packet length
        stw        %r4, 0x7C(%sp)    // 00 02 00 00 = disc in tray, tray closed
    
        li        %r3, 0
        LOAD_LABEL2(%r3, %r3, disc_name)
        ld        %r4, 0(%r3)
        std        %r4, 0(%r26)
        ld        %r4, 8(%r3)
        std        %r4, 8(%r26)
    
        mr        %r3, %r26
        addi    %r4, %r26, 0x10
        li        %r11, 805        // opendir
        sc
        cmplwi  %r3, 0
        bne        next_disc
    
        lwz        %r3, 0x10(%r26)
        li        %r11, 807        // closedir
        sc
        b       ABS(RETURN)
    
    
    next_disc:
    
        PEEK(HANDLE)
        cmplwi    %r3, 0
        beq        file_closed
    
        li      %r11, 804        // close
        sc
    
        li        %r4, 0            // invalidate handle
        POKE(HANDLE)
    
        PEEK(DISC)
        addi    %r4, %r3, 1
        andi.   %r4, %r4, 7
        POKE(DISC)
    
    file_closed:
        lis        %r4, 0x0001        // tray open
        stw        %r4, 0x7C(%sp)    // 00 01 00 00 = no disc in tray, tray opened
    
        SLEEP(1000)
        b        ABS(RETURN_ERR)
    
        .align 2
    
    disc_name:
        .string    "/psx_cdrom0"
    ATAPI 0xBE READ CD

    Code:
    //4.30
    //#define BASE        (0x11C310)    // READCD+0x10 in ps1_netemu
    //#define RETURN        (0x11BFDC)    // +334 // case 7 return
    
    //4.20
    //#define BASE        (0x11C200)    // READCD+0x10 in ps1_netemu
    //#define RETURN        (0x11BECC)    // case 7 return
    
    //3.55
    //#define BASE        (0x11AA50)    // READCD+0x10 in ps1_netemu
    //#define RETURN        (0x11A71C)    // case 7 return
    
    //3.41
    #define BASE        (0x11ACF0)    // READCD+0x10 in ps1_netemu
    #define RETURN        (0x11A9BC)    // case 7 return
    
    //case 8 = [fill sector buffer with 0xFF]
    //case 7 = [0xBE READ CD]
    //case 6 = [0x51 READ DISC INFORMATION]
    //case 5 = [0x4A GET EVENT/STATUS NOTIFICATION]
    //case 4 = [fill sector buffer with 0xFF]
    //case 3 = [0x00 TEST UNIT READY]
    //case 2 = [sys_storage_close()]
    //case 1 = [sys_storage_open() ]
    
    #define SECTOR_SIZE    (0xD0)        // address in lv2 memory to store sector size
    #define HANDLE        (0xD8)        // address in lv2 memory to store fd (open handle)
    #define DISC        (0xE0)       // address in lv2 memory to store current disc number (0..7)
    
    #define ABS(target)        ((target) - (BASE) - .)
    #define ABS2(target)    ((target) - .)
    
    #define MEM_BASE(dest) \
        li dest, 1; \
        rldicr dest, dest, 63, 0;
    
    #define LOAD_LABEL(base, dest, source, address) \
        oris   dest, source, ((base) + (address))@h; \
        ori    dest, dest, ((base) + (address))@l;
    
    #define LOAD_LABEL2(dest, source, address) \
        LOAD_LABEL(BASE, dest, source, address)
    
    #define PEEK(address) \
        ori     %r3, %r25, address; \
        li      %r11, 6; \
        sc;
    
    #define POKE(address) \
        ori     %r3, %r25, address; \
        li      %r11, 7; \
        sc;
    
    // IN:
    // %r24 -> address of local stack buffer
    // %r29 -> address of readcd data buffer
    // %r9  -> sector number
    
    .org 0
    
        MEM_BASE(%r25)
    
        PEEK(SECTOR_SIZE)
        mullw   %r30, %r9, %r3
    
        PEEK(HANDLE)
        mr        %r27, %r3
        cmplwi  %r3, 0
        bne     read_sector        // handle is valid, file already opened
    
        LOAD_LABEL2(%r3, %r3, iso_name)
        ld        %r4, 0(%r3)
    
        PEEK(DISC)
        sldi    %r3, %r3, 8
        add        %r4, %r4, %r3
    
        std        %r4, 0(%r24)
    
        mr        %r3, %r24
        li      %r4, 0
        addi    %r5, %sp, 0xE0
        li      %r6, 511
        li      %r7, 0
        li      %r8, 0
        li      %r11, 801        // open
        sc
        cmpldi  %r3, 0
        bne        abort
    
        lwz        %r4, 0xE0(%sp)    // store file handle
        POKE(HANDLE)
        mr        %r27, %r4
    
    
    read_sector:
    
        mr        %r3, %r27
        mr      %r4, %r30
        li      %r5, 0
        addi    %r6, %sp, 0xE8
        li      %r11, 818        // seek
        sc
        cmpldi  %r3, 0
        bne     close
    
        mr        %r3, %r27
        mr      %r4, %r29
        li        %r5, 0x940
        addi    %r6, %sp, 0xE8
        li      %r11, 802        // read
        sc
        cmpldi  %r3, 0
        beq     return
    
    close:
        mr        %r3, %r27
        li      %r11, 804        // close
        sc
    
        li        %r4, 0            // invalidate handle
        POKE(HANDLE)
    
    abort:
        lis     %r3, 0x8001
        ori     %r3, %r3, 0x000A // (BUSY 0x8001000A)
        extsw   %r3, %r3
    
    return:
        mr      %r25, %r3
        b       ABS(RETURN)
    
        .align 2
    
    iso_name:
        .string    "/psx_d0"
    Announcement from Deank

    mM's main source file would become over 100 000 if I spend the time to follow the 'break line' rule when more than 50-60 characters are used per line and if I used comments. I started with mM as a tool for myself so I don't really care if other people can continue with it, nor I'm weary about someone adopting the code to turn it into a bigger mess. It contains about 200 lines from the original "Open Backup Manager" (which afaik was ~3000 lines) - if you wish you can start with it.

    ***

    With multiMAN 05.00.00 only 4.30 and higher firmwares will be supported. Supporting 14 different firmwares is too hard to maintain compatibility with.

    These will no longer be supported:

    3.41 OFW
    3.41 OFW + DONGLE
    3.41 MFW (HERMES)
    3.55 OFW
    3.55 CFW KMEAW
    3.55 CFW COBRA
    3.55 CFW TB
    3.55 CFW REBUG/ROGERO
    3.55 OFW DEX
    3.55 CFW DEX
    4.21 OFW DEX
    4.21 CFW REBUG
    4.21 CFW ROGERO 1.00..2.03

    These and later will be supported:

    4.30 CFW ROGERO 2.05..
    4.30 CFW REBUG
    4.31 CFW

    In the beginning mM used to support 1.90/3.00/3.14/3.21 firmwares but then suddenly the new additions started to cause issues with these old firmwares so I leveled up at 3.41. Now 2 years and 6 months later I think it is time to go up again.

    Users of unsupported firmwares can stay with 04.19.00 or lower multiMAN version - anyway - it has more than everything one may need. Or switch to Iris.
    Showtime for multiMAN Update

    Showtime by Andreas Öman 4.03.010 (for mM and Standalone) are available online and in the web column.

    Showtime 04.03.010 [CEX].pkg (5.58MB)
    Download Showtime 04.03.010 [CEX].pkg from Sendspace.com - send big files the easy way

    Showtime 04.03.010 [DEX].pkg (5.64MB)
    Download Showtime 04.03.010 [DEX].pkg from Sendspace.com - send big files the easy way

    Dean


    multiMAN
    Download: multiMAN ver 04.19.07 UPD (20130212).zip (21.77MB) (CEX/DEX/STEALTH)
    Mirror: Brewology

    Source: Deank via PS3Crunch


    Showtime for multiMAN
    Download CEX: Showtime 04.03.010 [CEX].pkg (5.58MB)
    Download DEX: Showtime 04.03.010 [DEX].pkg (5.64MB)
    Mirror: Brewology (CEX/DEX)

    Source: Deank via PS3Crunch



    PSX-SCENE: The Pinnacle Scene Xenocracy
    COSMOS43 and xX3esahXx like this.
    Comments 118 Comments
    1. Jay-Jay's Avatar
      Jay-Jay -
      BD-Mirror seems to be working good with this new test version of mM with it's own Payload.
    1. bitsbubba's Avatar
      bitsbubba -
      Quote Originally Posted by Jay-Jay View Post
      BD-Mirror seems to be working good with this new test version of mM with it's own Payload.
      I think if I remember right BD-Mirror never used syscalls according to Dean, but don't quote me on that
    1. deank's Avatar
      deank -
      Quote Originally Posted by Jay-Jay View Post
      Yes, that is easy sometimes, but there are other times it tells me that the latest version is already installed, and then doesn't allow me to install over it. What should I do when I get that message?

      Oh, and 04.19.07 replaces BROWSER.SELF and 04.19.04 doesn't replace that file.
      mM uses XX.YY.ZZ version format. The PS3 uses XX.YY format. So you can always go from any XX.YY.00- XX.YY.99 to any XX.YY.00- XX.YY.99 mM version.

      BROWSER.SELF is the same since august 2012, I just include it (or the StereoPlayer SP.SELF) in the updates sometimes.

      Quote Originally Posted by Jay-Jay View Post
      BD-Mirror seems to be working good with this new test version of mM with it's own Payload.
      With the new mM payload everything should run smoother

      Dean
    1. deank's Avatar
      deank -
      Quote Originally Posted by bitsbubba View Post
      I think if I remember right BD-Mirror never used syscalls according to Dean, but don't quote me on that
      That's right I should've coded my own payload back then and not drag these obsolete PL3/PSGroove payloads for so many years and since "syscall8" is patented by the author of another BM I decided to go syscall-less .
    1. Jay-Jay's Avatar
      Jay-Jay -
      In order to test the payload conflict between Iris and mM (reported before). I purposely ran a PSX Game in Iris, then exit to XMB and then launched mM. I am still experiencing the sparkle screensaver issue where it flashes a millions times a second and also the very rapid circling arrow icon when swapping pages on 2x4 display.

      So it seems that the two managers still a conflict. Why?
    1. bitsbubba's Avatar
      bitsbubba -
      Quote Originally Posted by Jay-Jay View Post
      In order to test the payload conflict between Iris and mM (reported before). I purposely ran a PSX Game in Iris, then exit to XMB and then launched mM. I am still experiencing the sparkle screensaver issue where it flashes a millions times a second and also the very rapid circling arrow icon when swapping pages on 2x4 display.

      So it seems that the two managers still a conflict. Why?
      try it flipped mM then Iris
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by bitsbubba View Post
      try it flipped mM then Iris
      No problem (as far as I can see) between them if I load mM first then Iris second after a fresh reboot of the PS3, and when I return to mM, the same issues as reported before.
    1. JOshISPoser's Avatar
      JOshISPoser -
      i'm pretty sure he said that's an iris issue. it messes with other things and it's not something on mm's part. if there was something like multiman, you'd have the same issue. maybe retroarch is something that you could test after running iris, but idk.

      oh, @Jay-Jay , have you tried debug mode (l2+r2 while starting up mm)? that might help you update or use the same version install.

      deank, one suggestion, add the ability you kinda did with rogero, but to rebug so we can boot into multiman directly from a psx/ps3 game and load another from app_home; that'd be pretty awesome. oh, and not just for stealthman, but just normal mutliman for people who aren't paranoid or are signed into sen.

      btw, you're just awesome. i'm waiting for some sportscenter scandal to pop up and it'll turn out that you're actually 15 different people fooling this whole scene into thinking you're one incredible coder




      oh, and idk if this is random or what, probably gonna test, who knows if i'll report , but all of a sudden the covers are showing up in retro column for psx games. i only had one hard drive plugged in, so that might be something. like i said, i might or probably will test, and i might report what happens. i could be lazy though and just not pay attention

      so, just throwing out there that somehow my covers showed up for whatever reason
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by JOshISPoser View Post
      oh, @Jay-Jay , have you tried debug mode (l2+r2 while starting up mm)? that might help you update or use the same version install.
      That has nothing to do what I was referring about.
    1. JOshISPoser's Avatar
      JOshISPoser -
      yeah, i kinda figured. i know what you're talking about where ps3 just won't even allow you to reinstall something. i've ran into that problem a few times but never too consistently. i don't get what triggers it.
    1. bitsbubba's Avatar
      bitsbubba -
      Quote Originally Posted by Jay-Jay View Post
      No problem (as far as I can see) between them if I load mM first then Iris second after a fresh reboot of the PS3, and when I return to mM, the same issues as reported before.
      so that tells me that's it's only Iris that causes the conflict (which seems to me might also cause conflicts in other apps because of the memory patches)
    1. JOshISPoser's Avatar
      JOshISPoser -
      so, even with one hard drive still plugged in now i don't get covers. oh that short time of gold i did enjoy it
    1. deank's Avatar
      deank -
      @Jay-Jay : I can't fix the 'speed-up' issue caused by psx playback in iris. I already posted what causes it and I guess it affects other apps, too and not just mM. After you play a PSX game with Iris - start Iris again so it can restore all the changes - this is the only way.

      @JOshISPoser : Go to the retro column, click "Refresh", wait for the refresh to finish, then wait for the additional spinning arrow to disappear (it means looking for covers). When all is done you should have your covers.
    1. JOshISPoser's Avatar
      JOshISPoser -
      THAT'S WHAT THAT MEANS! lolz. i thought it was just messing up. dude, you're awesome



      it worked! thanks, @deank . it took a real long time making me reconsider redoing my usb.cfg since i usually just load up retroarch anyways if i wanna play an older emu.
      like 4 or so covers didn't show up which i'm completely fine with. i thought maybe they'd all be img's or something, but two were bin/cue which i thought was odd. anyways, over 3/4's, probably about 80% or more showed up, so i'm really happy with that. i'm just gonna hate refreshing next time i plug in another drive or add another game since it took over 20 minutes
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by deank View Post
      @Jay-Jay : After you play a PSX game with Iris - start Iris again so it can restore all the changes - this is the only way.
      I just tried this, and still no luck. The only solution is to restart the system.

      Which brings me to a wishlist. Could you make a XMB app that will restart the system? Something like you have in multiMAN?

      I know it would be a tall order to ask you to fix Iris, but perhaps you can whip up that little app that will restart the system from XMB?

      I may be the only one that prefers using Iris for PSX emulation. That's the only thing I find it useful for.

      Oh, BTW, I am already in Iris 2.11 and still the same problems as before.
    1. bitsbubba's Avatar
      bitsbubba -
      Quote Originally Posted by Jay-Jay View Post
      Which brings me to a wishlist. Could you make a XMB app that will restart the system? Something like you have in multiMAN?
      REBUG ToolBox, also I believe gleveland had one with his OtherOS++ tools
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by bitsbubba View Post
      REBUG ToolBox, also I believe gleveland had one with his OtherOS++ tools
      Rebug ToolBox is nice and it's great that Kmeaw supports at least that part of the toolbox, but it's like having to run toolbox and then select restart, in other words, way too many steps.

      I think if deank (or another developer) can create a tool that works as quickly as "lastgame" or "BD-Reset" would be more efficient.
    1. deank's Avatar
      deank -
      So we need a tool to overcome the issues created by another app? I think the proper way to do it is to FIX the issue and not create workarounds. If you really insist - I'll post a small pkg to reboot the system, although I think there is already one for using with otheros (it soft-reboots LV2).
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by Jay-Jay View Post
      I just tried this, and still no luck. The only solution is to restart the system.
      @deank , I don't know if you must have fixed something in mM on 04.20.00, but I was able to exit IRIS and it did not effect mM afterward.

      Earlier in this topic you had mentioned to return to IRIS (after playing a PSX game) and then exiting IRIS without loading anything. That this would reset IRIS. But I was exiting using the Triangle button and not the PS button--I wonder if you had originally meant for us to exit the program using the PS button? Today when I pressed the PS button and exit IRIS, when I opened mM, the glitches of the fast spinning arrows or fast sparkling effects did not appear anymore. But this was after I had updated to multiMAN 04.20.00

      So if this is the case, I don't think we need you to create that app I asked before. Unless there are other things that IRIS may affect mM or other Apps that are not apparent at the moment?

      P.S. I've read that our discussions between #IrisManager and #multiMAN issues have caught the eye of the IRIS developer. The messengers had posted your replies in his official thread and I think the intent was lost in the translation or it was quoted out of context. The Iris developer is thinking you have been criticizing his work, which is not the case. And he is getting bent-out-of-shape because he is thinking that we are being negative towards him, which is also not the case. #deank has been replying to me and others about the issues we have noticed when we launch Iris and then multiMAN afterward. I hope a Spanish speaking/writing member sends this message to the developer of Iris, that we are not trying to criticize his application. We've just been trying to troubleshoot an issue between the two managers. Iris is still a great development.
    1. Jay-Jay's Avatar
      Jay-Jay -
      Quote Originally Posted by Jay-Jay View Post
      @deank , I don't know if you must have fixed something in mM on 04.20.00, but I was able to exit IRIS and it did not effect mM afterward.

      Earlier in this topic you had mentioned to return to IRIS (after playing a PSX game) and then exiting IRIS without loading anything. That this would reset IRIS. But I was exiting using the Triangle button and not the PS button--I wonder if you had originally meant for us to exit the program using the PS button? Today when I pressed the PS button and exit IRIS, when I opened mM, the glitches of the fast spinning arrows or fast sparkling effects did not appear anymore. But this was after I had updated to multiMAN 04.20.00
      I tried testing it again, and the bug still exists. I'll keep on testing this. I thought the PS exit function was the fix, but no, it's still there.

      So if this is the case, I don't think we need you to create that app I asked before. Unless there are other things that IRIS may affect mM or other Apps that are not apparent at the moment?
      @deank , @bitsbubba , I can't even open Rebug Toolbox after running a PSX Game from IRIS. I get a black screen. I have to manually unplug the PS3 to reset it. Read my bug report here: http://psx-scene.com/forums/content/...mments_1041500

      So @deank , if it's not too much trouble? How about a small pkg app that resets LV2? Please?