Page 45 of 69 FirstFirst ... 35434445464755 ... LastLast
Results 441 to 450 of 681



  1. #441
    Banned User lucky7755's Avatar
    Join Date
    Jan 2013
    Posts
    8

    Help with MMRAS by Aldostools question?

    In terms of seeing your pc on the tv, i click on mmras and try mmras server too, it does nothing on the pc at all, any help?

  2. #442
    Senior Member pinoytechno's Avatar
    Join Date
    Jan 2012
    Posts
    118
    thanks for the update

    deank i will wait for the next release multiMAN PS2 Backup support

  3. #443
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.01 and Showtime v04.01.451 Now Available

    Today deank has made available multiMAN v04.19.01 and Showtime v04.01.451 with the changes outlined below.

    Download: multiMAN v04.19.01 Update (20130127) (12.54 MB) / multiMAN v04.19.01 Update (20130127) (Mirror) / Showtime 04.01.451 [CEX].pkg (5.62 MB) / Showtime 04.01.451 [DEX].pkg (5.69 MB)

    multiMAN 04.19.01 and Showtime 04.01.451 are available online and in the web column.
    • Added support for multi-disc PS1 ISO/BIN backups
    • Added support for flashing FULL 16MB NOR images (when file is named .FULL.EID0.NORBIN) (use with caution!)
    Code:
    Example:
    
    My PS1 Game Disc 1.iso (this must be loaded)
    My PS1 Game Disc 2.iso 
    My PS1 Game Disc 3.iso
    ...
    
    or
    
    Game Name - CD1.iso (this must be loaded)
    Game Name - CD2.iso
    ...
    
    or 
    
    1.iso (this must be loaded)
    2.iso
    3.iso
    
    The character before the . / extension is used for the number of the  disc. 
    As in Iris - to switch discs you must unplug/plug the USB HDD or  eject/insert a BD disc.
    I'll try to tidy up and organize mM’s source code and will make it public in few weeks. There is nothing hidden there and I know a lot of coders will hate the 60 000 lines of multiman.cpp and will call-out my poor coding skills again like they did 2 years ago, but there you are.




  4. #444
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.02 is Now Available

    multiMAN v04.19.02 from deank is now available with the changes outlined below, as follows:

    Download: multiMAN ver 04.19.02 UPD (20130130) (Includes CEX/DEX/STEALTH updates) / multiMAN ver 04.19.02 UPD (20130130) (Mirror) / multiMAN v04.18.00 Base CEX / v04.19.02 Update CEX
    • Added support for 4.31CFW
    • Added support for creating ISO files from PS1 game discs
    • Improved support for PS1 ISO/BIN/IMG/MDF

    About the PS1 improvement: I have NFS:Porsche and it works fine from disc but not from ISO/BIN. The issue was in the patched ps1_emu.self (ATAPI 0x43 READ TOC) which I believe breaks some games (like because of missing .CUE sheet processing). I hope that this fix (which is included in mM 04.19.02) will fix issues with other games that crashed or had some audio issues.

    The original patch from Hermes (in ps1_patch2.S):
    Code:
    memcpy(&data[n - sizeof(ps1emu_patch2)], ps1emu_patch2, sizeof(ps1emu_patch2));
    (0x3C, 0x80, 0x00, 0x22, 0x60, 0x84, 0x01, 0x63, 0x90, 0x98, 0x00, 0x00):
    
    lis %r4, 0x22
    ori %r4, %r4, 0x0163 // first track / last track
    stw %r4, 0(%r24)
    My change:
    Code:
    memcpy(&data[n - 20], ps1emu_patch2, sizeof(ps1emu_patch2));
    (0x3C, 0x80, 0x00, 0x0A, 0x60, 0x84, 0x01, 0x01, 0x90, 0x98, 0x00, 0x00,
    0x3C, 0x80, 0x00, 0x14, 0x60, 0x84, 0x01, 0x00, 0x90, 0x98, 0x00, 0x04)
    
    lis %r4, 0x0A // Correct size of TOC
    ori %r4, %r4, 0x0101 // first SESSION# / last SESSION#
    stw %r4, 0(%r24)
    
    lis %r4, 0x14 // add correct ADR(1)/CTR(4) info in response = Data track + Copy protection
    ori %r4, %r4, 0x0100 // first track# in first SESSION / reserved
    stw %r4, 4(%r24)
    P.S. Source: Mt. Fuji Commands for Multimedia Devices Version 8: ftp://ftp.seagate.com/sff/INF-8090.PDF (page 785 / 20.21 READ CD Command)

    I'm working on something with the help of @flatz which doesn't involve patching of the ps1_emu. Just like Estwald found out that the only way to properly handle all PS1 CDs is to return the correct TOC response with data about all the tracks. For this to work the manager must REQUIRE and PROCESS a CUE file with each BIN (ISO). Then intercepting some syscalls to spoof the response of some ATAPI commands and return the data from the CUE (in a similar binary format like the one Estwald posted about).

    If all this is done properly it can lead to mounting ps3 iso files, too.

    1) Read the CUE file and prepare proper data somewhere in LV2 memory for 0x51 and 0x43 ATAPI commands
    2) Intercept syscall 604 and monitor for few ATAPI commands:

    0x51: READ DISC INFORMATION
    0xBE: READ CD (SECTOR)
    0x43: READ TOC
    0x4A: GET EVENT/STATUS

    3) Return OK to all other requests, but send the prepared data for 0x51 and 0x43 and read from the BIN for 0xBE

    This is oversimplified explanation, but basically this should make all PS1 discs work properly, both for ps1_emu and for ps1_netemu.

  5. #445
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.03 with PS1 BIN / CUE Audio Tracks Support Out

    multiMAN v04.19.03 with PS1 BIN / CUE audio tracks support is now available from deank with the changes outlined below, as follows:

    Download: multiMAN v04.19.03 Update (20130203) (14.48 MB - Includes CEX/DEX/STEALTH updates) / multiMAN v04.19.03 Update (20130203) (Mirror) / multiMAN v04.19.03 Update (20130203) (Mirror #2) / LANG_RU.TXT (Russian) by pvc1 / LANG_FR.TXT (French) by winch03200 / LANG_BR.TXT (Portuguese Brazilian) by ajts1989 / LANG_PR.TXT (Portuguese) by kgb / LANG_PL.TXT (Polish) by djtom / LANG_IT.TXT (Italian) by Dino05 / LANG_JP.TXT (Japanese) by Kyan_dudl / LANG_HU.TXT (Hungarian) by JohnDoeHun / LANG_IN.TXT (Indonesian) by aquarius / LANG_FR.TXT Fix French) by winch03200 and M@tsumotO / LANG_GL.TXT (Galician) by ser8210 / LANG_PL.TXT Fix (Polish) by djtom / Showtime 04.01.480 [CEX].pkg (5.57 MB) / Showtime 04.01.480 [CEX] (Mirror)

    multiMAN 04.19.03 update is now available online and in the WEB column.
    • Added support for BIN+CUE PS1 games with AUDIO tracks
    • Added Smooth/Full-Screen options for PS1 games in "Settings"
    • Added 4 new translation labels
    • Updated Showtime to 04.01.480

    About the PS1 CUE support for games with AUDIO tracks:

    1) mM processes the .CUE file and stores the ATAPI 0x43 response in LV2 memory at 0x7FF000. For example the NFS:Porsche Unleashed:
    Code:
    HEADER: 00 82 01 0F
    TRK#01: 00 14 01 00 00 00 00 00
    TRK#02: 00 10 02 00 00 02 0C 92
    TRK#03: 00 10 03 00 00 02 2D 7C
    TRK#04: 00 10 04 00 00 02 53 2D
    TRK#05: 00 10 05 00 00 02 7D 30
    TRK#06: 00 10 06 00 00 02 A0 C7
    TRK#07: 00 10 07 00 00 02 C8 32
    TRK#08: 00 10 08 00 00 02 F1 A2
    TRK#09: 00 10 09 00 00 03 1A 4D
    TRK#0A: 00 10 0A 00 00 03 43 AF
    TRK#0B: 00 10 0B 00 00 03 70 17
    TRK#0C: 00 10 0C 00 00 03 9C D1
    TRK#0D: 00 10 0D 00 00 03 C8 48
    TRK#0E: 00 10 0E 00 00 03 F2 04
    TRK#0F: 00 10 0F 00 00 04 1F 22
    TRK#10: 00 10 AA 00 00 04 43 88
    The LBA boundary after the last track is calculated using the size of the BIN and the sector size, so the CUE directive REM LEAD-OUT MM:SS:FF is not necessary.

    It supports both CUE information with PREGAP included or not and FILE directive is ignored, so don't bother to manually edit your CUE files. For example here are two different variants of a CUE file for NFS, which produce the same binary payload for the ATAPI response:

    Without PREGAP directive:
    Code:
    FILE "Need for Speed Porsche.BIN" BINARY
    TRACK 01 MODE2/2352
    INDEX 01 00:00:00
    TRACK 02 AUDIO
    INDEX 01 29:52:40
    TRACK 03 AUDIO
    INDEX 01 31:44:66
    TRACK 04 AUDIO
    INDEX 01 33:53:40
    TRACK 05 AUDIO
    INDEX 01 36:16:70
    TRACK 06 AUDIO
    INDEX 01 38:18:31
    TRACK 07 AUDIO
    INDEX 01 40:32:72
    TRACK 08 AUDIO
    INDEX 01 42:54:30
    TRACK 09 AUDIO
    INDEX 01 45:13:16
    TRACK 10 AUDIO
    INDEX 01 47:34:35
    TRACK 11 AUDIO
    INDEX 01 50:06:03
    TRACK 12 AUDIO
    INDEX 01 52:38:53
    TRACK 13 AUDIO
    INDEX 01 55:07:05
    TRACK 14 AUDIO
    INDEX 01 57:29:39
    TRACK 15 AUDIO
    INDEX 01 60:03:39
    With PREGAP directive:
    Code:
    FILE "Need for Speed Porsche.BIN" BINARY
    TRACK 01 MODE2/2352
    INDEX 01 00:00:00
    TRACK 02 AUDIO
    PREGAP 00:02:00
    INDEX 01 29:50:40
    TRACK 03 AUDIO
    INDEX 00 31:40:66
    INDEX 01 31:42:66
    TRACK 04 AUDIO
    INDEX 00 33:49:40
    INDEX 01 33:51:40
    TRACK 05 AUDIO
    INDEX 00 36:12:70
    INDEX 01 36:14:70
    TRACK 06 AUDIO
    INDEX 00 38:14:31
    INDEX 01 38:16:31
    TRACK 07 AUDIO
    INDEX 00 40:28:72
    INDEX 01 40:30:72
    TRACK 08 AUDIO
    INDEX 00 42:50:30
    INDEX 01 42:52:30
    TRACK 09 AUDIO
    INDEX 00 45:09:16
    INDEX 01 45:11:16
    TRACK 10 AUDIO
    INDEX 00 47:30:35
    INDEX 01 47:32:35
    TRACK 11 AUDIO
    INDEX 00 50:02:03
    INDEX 01 50:04:03
    TRACK 12 AUDIO
    INDEX 00 52:34:53
    INDEX 01 52:36:53
    TRACK 13 AUDIO
    INDEX 00 55:03:05
    INDEX 01 55:05:05
    TRACK 14 AUDIO
    INDEX 00 57:25:39
    INDEX 01 57:27:39
    TRACK 15 AUDIO
    INDEX 00 59:59:39
    INDEX 01 60:01:39
    2) Adds syscall37 to handle copying of the response from lv2 memory to the ps1_emu:
    Code:
    stdu r1, -0xB0(r1) // F8 21 FF 51
    mflr r0 // 7C 08 02 A6
    std r31, 0xA8(r1) // FB E1 00 A8
    std r0, 0xC0(r1) // F8 01 00 C0
    
    li r31, 1 // 3B E0 00 01
    sldi r31, r31, 63 // 7B FF F8 06
    oris r31, r31, 0x7F // 67 FF 00 7F
    ori r31, r31, 0xF000 // 63 FF F0 00
    
    ld r3, 0(r31) // E8 7F 00 00 //copy the binary CUE info
    std r3, 0(r7) // F8 67 00 00 //to the receiving buffer of ps1_emu
    ...
    ld r3, 0x80(r31) // E8 7F 00 80 //for as many tracks as needed
    std r3, 0x80(r7) // F8 67 00 80 //no loop used so only 1 register needed (r31)
    
    li r3, 0 // 38 60 00 00
    ld r0, 0xC0(r1) // E8 01 00 C0
    ld r31, 0xA8(r1) // EB E1 00 A8
    mtlr r0 // 7C 08 03 A6
    addi r1, r1, 0xB0 // 38 21 00 B0
    blr // 4E 80 00 20
    3) In the patched ps1_emu.self the extended ATAPI 0x43 request is redirected to syscall37 and proper track information is returned (this version of the patched ps1 emulator is not compatible with Iris).

    mM will accept ISO/BIN/MDF/IMG files with or without an accompanying CUE file. In case of no cue - mM will create a 'data-track-only' payload. For best compatibility always use CUE files with your images.

    This is still a dirty way of enhancing the compatibility, but will do for now. Probably Estwald with come up with a much better solution very soon, because this one is limited to the ps1_emu.self only and multidisc games with audio tracks may have issues with the in-game CDA playback when switching to disc 2/3/4.

    I'll appreciate any reports of games which had issues and now are fixed. Tested already: NFS:Porsche, NFS4, Wipeout 3, GTA:London - all work with in-game CDA audio.
    Attached Files Attached Files

  6. #446
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.04 is Now Released

    multiMAN v04.19.04 is now available from deank with the changes outlined below, as follows:

    Download: multiMAN v04.19.04 Update (20130204) (14.47 MB - Includes CEX/DEX/STEALTH updates) / multiMAN v04.19.04 Update (20130204) (Mirror) / Showtime 04.02.000 [CEX].pkg (5.57 MB) / Showtime 04.02.000 [DEX].pkg (5.64 MB)

    There is a minor update online (04.19.04):
    • When creating backups from PS1 discs, CUE+BIN+toc files will be created
    • Improved PS1 CUE files processing
    • Updated 8 language files

    Showtime 04.02.000 by Andreas Oman is available for mM and as standalone (in the web column).

    When you backup PS1 discs (original or copies) mM will create a CUE sheet file for each disc. Also for compatibility with IRIS, mM will save a .toc file in the same folder, too.

    Estwald: I added CUE to TOC last week. No need to over-complicate the code. It does it in 50 lines and not 300.
    Code:
        //MM_LOG("CUE: %s\n", path_cue);
        //MM_LOG("BIN: %s\n", path_bin);
    
        u8*data=(u8*)memalign(16, 512);
        memset(data, 0, 512);
    
        u8 tracks=0;
        u32 lba[0x33];
    
        int sectors = int(is_size(path_bin)/get_sectorsize(path_bin));
        if(sectors>150 && exist(path_cue))
        {
            char line[512], tcode[512];
            u8 tmin=0, tsec=0, tfrm=0;
            u8 use_pregap=0;
    
            FILE *fp=fopen(path_cue, "r");
            while ( fgets ( line, 512, fp ) != NULL )
            {
                if(strstr(line, "PREGAP")) {use_pregap=1; continue;}
                if(!strstr(line, "INDEX 01")) continue;
    
                sprintf(tcode, "%s", strrchr(line, ' ')+1); tcode[8]=0;
                if(strlen(tcode)!=8 || tcode[2]!=':' || tcode[5]!=':') continue;
                tmin=(tcode[0]-0x30)*10 + (tcode[1]-0x30);
                tsec=(tcode[3]-0x30)*10 + (tcode[4]-0x30);
                tfrm=(tcode[6]-0x30)*10 + (tcode[7]-0x30);
                if(use_pregap && tracks) tsec+=2;
                lba[tracks]=(tmin*60 + tsec)*75 + tfrm;
                tracks++; if(tracks>=0x30) break;
            }
            fclose(fp);
            if(!tracks) tracks=1;
        }
    
        if(!tracks) {tracks=1; sectors=270000;}
    
        lba[0]=0;
        lba[tracks]=sectors-150;
        tracks++;
    
        for(u8 n=0; n<tracks; n++)
        {
            data[4+n*8+0]=0x00;
    
            if(!n)    data[4+n*8+1]=0x14;
            else    data[4+n*8+1]=0x10;
    
            if(n<tracks-1)    data[4+n*8+2]=n+1;
            else        data[4+n*8+2]=0xAA;
    
            data[4+n*8+3]=0x00;
    
            data[4+n*8+4]=(lba[n]>>24)&0xff;
            data[4+n*8+5]=(lba[n]>>16)&0xff;
            data[4+n*8+6]=(lba[n]>> 8)&0xff;
            data[4+n*8+7]=(lba[n]    )&0xff;
        }
        data[0]=((tracks*8+2)>>8)&0xff;
        data[1]=((tracks*8+2)   )&0xff;
        data[2]=0x01;
        data[3]=(tracks-1);
    ... and another 40 lines to create CUE from 0x43 TOC:
    Code:
        //MM_LOG("CUE: %s\n", path_cue);
        //MM_LOG("TOC: %s\n", path_toc);
        //MM_LOG("BIN: %s\n", path);
    
        // atapi_resp holds [size] bytes from 0x43 response
    
        remove(path_toc);
        FILE *ft=fopen(path_toc, "wb");
        if(ft)
        {
            fwrite((uint8_t*)atapi_resp, size, 1, ft);
            fclose(ft);
        }
        remove(path_cue);
        FILE *fc=fopen(path_cue, "w");
        if(fc)
        {
            char line[512];
            u16 dp;
            u32 sc; u8 tm=0, ts=0, tf=0;
    
            sprintf(line, "FILE \x22%s\x22 BINARY\r\n", (strrchr(path, '/')+1));
            fputs(line, fc);
            sprintf(line, "%s", "  TRACK 01 MODE2/2352\r\n");
            fputs(line, fc);
            sprintf(line, "    INDEX 01 %02i:%02i:%02i\r\n", tm, ts, tf);
            fputs(line, fc);
            for(u8 t=(atapi_resp[2]+1); t<(atapi_resp[3]+1); t++)
            {
                dp=4+(t-1)*8;
                sc=atapi_resp[dp+4]<<24 | atapi_resp[dp+5]<<16 | atapi_resp[dp+6]<<8 | atapi_resp[dp+7];
                tm=(u8)((sc/75)/60);
                ts=(u8)((sc/75)%60);
                tf=(u8)(sc%75);
    
                if(atapi_resp[dp+1] & 4)
                    sprintf(line, "  TRACK %02i MODE2/2352\r\n", t);
                else
                    sprintf(line, "  TRACK %02i AUDIO\r\n", t);
                fputs(line, fc);
                sprintf(line, "    INDEX 01 %02i:%02i:%02i\r\n", tm, ts, tf);
                fputs(line, fc);
            }
            fclose(fc);
        }
    Attached Files Attached Files

  7. #447
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.05 is Now Released

    multiMAN v04.19.05 is now available from deank with the changes below, as follows:

    Download: multiMAN v04.19.05 Update (20130206) (14.47 MB) / multiMAN v04.19.05 Update (20130206) (Mirror)

    multiMAN 04.19.05 minor update is available online and in the web column (CEX/DEX/STEALTH).
    • Added support for PS2 disc add-ons for PS3 games like SingStar:
    • "[PS2" prefix in folder name required
    • Example: /dev_hdd0/GAMES/SingStar-Dance/[PS2 Pop] where [PS2 Pop] contains a backup of your PS2 disc
    • You can have up to 10 [PS2] add-on discs per PS3 game. In the screenshot above (attached below) the following folder structure was used: /dev_usb000/GAMES/SingStar-Dance <--- This is the PS3 game listed in the Game column
    • mM detects the add-on PS2 discs and will list them in the pop-up menu when you load the game:

      /dev_usb000/GAMES/SingStar-Dance/[PS2 Pop]
      /dev_usb000/GAMES/SingStar-Dance/[PS2 Disney]
      /dev_usb000/GAMES/SingStar-Dance/[PS2 Party]
      /dev_usb000/GAMES/SingStar-Dance/[PS2]

    • To have a PS2 disc to be listed in the pop-up menu the folder name must start with [PS2 like in the examples above.
    • [Hermes] option for BD-ROM Emulator must be used and a PS3 disc is required. Later for the PS2 swap you'll need an original PS2 disc.
    • Don't forget that you can backup your original PS2 discs in folder format using mmOS.

    Thanks to Portnyashka for the tests and suggestions.

    p.s. PS1 BIN+CUE compatibility is now improved a bit.

    Also from Portnyashka: Thanks a lot Dean! I've tested several SingStar games and they work great! A few notes for someone who haven't come across SingStar games:

    PS3 SingStar games allow to load contents of ps2 discs - so the things described above have little to do with actually playing ps2 games on ps3.

    You'll need original PS2 disc for this to work. So in order to get songs from the ps2-disc backup you should:

    1. Get any ps3 Singstar game backup and put it in /dev_hdd0/GAMES/ or /dev_usb000/GAMES/
    E.g./dev_usb000/GAMES/BCES00494
    2. Get PS2 Singstar disc backup, unpack it (from iso, bin or anything) to get a folder. Name this folder starting with "[PS2". Also you can backup a PS2 original disc in mmOS to a [PS2] folder. Put this folder inside your PS3 backup folder.
    E.g./dev_usb000/GAMES/BCES00494/[PS2 Rocks]
    3. Load the PS3 game with MultiMan, choose PS2 addon title from the popup menu.
    4. Start PS3 game either from app_home or disc icon or even XMB Singstar
    5. Start a new game and select to change the disc
    6. When asked, insert original PS2 disc and wait for verification to finish.
    Attached Images<br><br> Attached Images

    Attached Files Attached Files

  8. #448
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.06 Arrives with PSX NETEMU Support for PSOne Disc Images

    multiMAN v04.19.06 is now available from deank with the changes below:

    Download: multiMAN v04.19.06 Update (20130211) (21.77 MB - CEX/DEX/STEALTH updates) / multiMAN v04.19.06 Update (20130211) (Mirror)

    multiMAN 04.19.06 minor update is available online and in the web column.
    • Added support for PSXEMU/PSXNETEMU emulator selection for PS1 BIN+CUE backups (Press [Triangle] -> Game Settings)
    • When using PSX NETEMU option the disc backups must be in MODE1 or MODE2 / 2352 (or more) bytes sector
    • Multi-disc games are not supported in this initial PS1_NETEMU-support version

    The default launch mode for PS1 file backups is "AUTO" = PSX EMU. Some games may require or look/perform better when using PSX NETEMU. The patched versions were tested on 4.30 and 4.21, but hopefully 3.41 and 3.55 versions will work too.

    Each emulator selection is remembered per game. This method is similar to the ps1_emu.self patching and doesn't affect other apps nor uses system calls which make break other apps.

    The patch is quite simple (just 244 bytes for ATAPI 0xBE READ CD command):
    Code:
    //4.30
    //#define BASE        (0x11C310)    // READCD+0x10 in ps1_netemu
    //#define RETURN        (0x11BFDC)    // 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
    
    
    #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 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)
        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"
    I just read the comments about BD-MIRROR and Black-Screen-Games. I just tested "Prince Of Persia: The Forgotten Sands" (my BSG test game) and it worked from internal and from external (on 4.30CFW).
    Attached Images<br><br> Attached Images

    Attached Files Attached Files

  9. #449
    Forum Moderator PS3 News's Avatar
    Join Date
    Apr 2005
    Posts
    26,871

    multiMAN v04.19.07 is Now Available with Showtime v04.03.010

    multiMAN v04.19.07 is now available from deank with the changes below:

    Download: multiMAN v04.19.07 Update (20130212) (21.77 MB - CEX/DEX/STEALTH updates) / multiMAN v04.19.07 Update (20130212) (Mirror) / Showtime 04.03.010 [CEX].pkg (5.58 MB) / Showtime 04.03.010 [DEX].pkg (5.64 MB) / mM v04.19.07 Arabic Translation by HAIDER / Showtime 04.03.021 [CEX].pkg (standalone) (5.67 MB) / Italian Translation LANG_IT by Dino05 / French Translation LANG_FR by winch03200 / Portuguese Translation LANG_PR by kgb / Arabic Translation LANG_AR by HAIDER / Japanese Translation LANG_JP by Kyan_dudl / Translation PT-Brazil by ajts1989 / Galician Translation LANG_GL by ser8210 / Indonesian Translation LANG_IN by aquarius / Hungarian Translation LANG_HU by JohnDoeHun / EL Translation LANG_EL by tupac4u/ Russian Translation LANG_RU by pvc1

    multiMAN 04.19.07 minor update is available online and in the web column. Showtime by Andreas Oman 4.03.010 (for mM and Standalone) are available online and in the web column.
    • Added support for multi-disc games when using PS1_NETEMU emulator

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

    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"
    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.

    Just a quick note: From the next version mM will use its own payload. No more [Hermes], [Standard], [PL3].

    I coded my own payload:
    • It doesn't use any syscalls
    • It is just 252 bytes (over 5-6 times smaller than other payloads)
    • It doesn't overwrite any code in LV2 memory
    • It doesn't allocate kernel memory
    • It supports multiple path/files redirections
    • It is memory-position independent and easy to use on all firmwares
    • ... and is 252 bytes

    Update: multiMAN v04.19.07 Update CEX TEST (20130217) (2.45 MB) - THIS IS A TEST VERSION!
    • It introduces the new mM payload which makes mM independent and easy to port for various firmwares
    • Supports only 3.55 CEX/DEX, 4.21 CEX/DEX, 4.30 CEX, 4.31 CEX
    • BD-ROM Emulator option in Settings can be set to "Enable / Disable" - no more "Hermes"/"Standard"
    • This payload overwrites 252 bytes of strings in LV2 memory (and not 4000 bytes of code like other payloads), it doesn't use syscalls and doesn't rely on firmware functions, executes fast and improves performance
    • Compatibility-wise it is better than "Standard" and slightly better than "Hermes".

    Download: multiMAN v04.19.07 Update CEX TEST (20130218) (2.45 MB)

    This is another test version with the new payload.
    • Added option in settings "Redirect /app_home":
    • Disable (/app_home will not be mounted at all)
    • Enable (/app_home as used in previous versions - points to the game - for disc-less)
    • Toolbox (on Rogero firmwares with pre-installed toolbox if you play from discs only - it allows you to return to stealthMAN without restart)
    • IMPROVED DISC-LESS COMPATIBILITY:

    The new payload allows for some tweaks and there is 80% chance that games that didn't work disc-less will now work. It is somewhat based on the DEX LAN /app_home mounting from remote PC compatibility list, which you can find here: Omnomnom's Tasty A-Z of mmDM Game-Running Tutorials

    If you want real improvements please post back with FEEDBACK. For example "Alice: Madness Returns" and "Army of Two: The 40th Day" now work disc-less. Thanks to GotIt4Free for all the tests.

    You can use this report_data.txt to update your stealthMAN via the toolbox as usual:

    Download: multiMAN v04.19.07 Update STEALTH CEX TEST (20130218) (1.49 MB)

    Copy report_data.txt a USB stick, start the toolbox/IPF and press [START] to update stealMAN.

  10. #450
    Contributor LIGHTBULB's Avatar
    Join Date
    Sep 2010
    Posts
    9

    Eek

    Ok i'm on mm 4.19.0.7 just tried to put the stealth mm on but got this error message i'm not running off a base\full mm.

    how do i fix this so i can run the stealth mm?
    Attached Files Attached Files

 


 
Page 45 of 69 FirstFirst ... 35434445464755 ... LastLast