Main » 2013 February 18 » multiMAN ver 04.19.07/ Showtime 04.03.010 mM edition Updates
12:32 PM multiMAN ver 04.19.07/ Showtime 04.03.010 mM edition Updates | |
multiMANreceives 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" 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. 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 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) | |
|
Total comments: 0 | |
Section categories
APPLICATIONS [7] |
ANDROID [101] |
PC GAMES [25] |
PS3 [52] |
XBOX360 [2] |
NULLED SCRIPTS [27] |
IPHONE/IPAD/IPOD [19] |
Tag Board