PS3 4.88.2 Evilnat Cobra (8.3) Custom FirmWare (CFW-CEX) Released

UPDATE 4.88.2: PS3 Developer @Evilnat has updated and released 4.88.2 Evilnat (Cobra 8.3) CFW , there is a number of new options like an added File manager, Option to toggle Cobra version, and various other new options detailed in the changlog provided below. Also the developer has provided a number of fixes and improvements, View all the details of 4.88.2 release of this latest CFW by @Evilnat

.Original release (4.88.1) Developer @Evilnat (creator of releases like SEN Enabler and PAUD Unpacker) has created and released 4.88 EVILNAT's COBRA CFW, following the success of 4.87 Evilnat's CFW, the developer provides another trusted CFW release that provides the Cobra Payload and all the features it brings (note: MAMBA is an alternative to the Cobra Payload, Cobra is included in firmware's where as MAMBA is typically injected in a Standard CEX CFW via a homebrew app. See all the details of this CFW Release below

Also Included are: noBD / noBT / noBD & noBT CFW Builds (for damaged console's to make them usable again)
-STLcardsWS​



CFW Evilnat.png

  • 4.88.2 EVILNAT (COBRA 8.3)

    Changelog
    • Fixed memory leak in LV2 kernel while Cobra is enabled
    • Added option to dump ERK (eid_root_key) through xai_plugin (from flatz's EID root key dumper)
    • Added option to dump LV2 through xai_plugin
    • Added option to dump LV1 through xai_plugin
    • Added File Manager in xai_plugin (by DeViL303)
    • Added option to toggle Cobra version, release (default in CFW) and debug (get debug logs through socat)
    • Manual FAN speed now works with Cobra disabled too
    • Added system to block login in on PSN/SEN while CFW syscalls are enabled (by DeViL303)
    • Added sort games by name and date options (by aldostools)
    • xai_plugin translated to Brazilian (thanks to jcorrea and LuanTeles)
    • xai_plugin translated to Polish (thanks to KcrPLo and Agrippa)
    • xai_plugin translated to Italian (thanks to Sheireen)
    • xai_plugin translated to Chinese Traditional/Simplified (thanks to xiaoyang)
    • xai_plugin translated to Spanish

    Features
    • Made out of 4.88 OFW
    • Made manually without automatic tools
    • SEN/PSN enabled
    • Disabled deletion of unsigned act.dat and .rif files
    • Allowed unsigned act.dat and .rif files
    • Allowed running of unsigned applications
    • Compatibility with FSELF
    • C00 demo unlocker
    • Disabled LIC.EDAT license check
    • Can be installed over 3.55 OFW
    • Can be installed over +3.56 OFW (bguerville Toolset)
    • Can be installed over any CFW CEX
    • COBRA 8.3 added and enabled as default
    • Full PS2 Games Compatibility
    • Possibility of Downgrade from any CFW with active QA Flags
    • QA Flags active if previously enabled
    • Disabled Epilepsy Message on Boot
    • Compatibility with PSX games in ISO
    • Compatibility with PSP games in ISO
    • Compatibility with PS2 games in ISO
    • Compatibility with PS3 games in ISO/JB folder format
    • Compatibility with ReactPSN
    • Display of Temperatures in XMB In-Game on PS2 Games
    • RSOD Screen Bypass
    • BSOD Screen Bypass
    • PS3_GAME/app_home
    • XMB In-Game Screenshot
    • Added Package Manager
    • CoreOS Hash Check patched to prevent Brick on non-dehashed Downgradate consoles
    • Patched to remove LV2 Protection
    • Peek and Poke (LV2)
    • Peek and Poke (LV1)
    • CINAVIA protection disabled
    • Option to sort games by name and date

    Cobra 8.3
    • Failsafe Cobra stage2 (by bguerville/aldo)
    • Restore CFW Syscalls without reboot just entering to 'Settings > System Update' on XMB (by aldo)
    • Integrated Dynamic Control FAN (to control fan when webMAN is unloaded) (by aldo/Evilnat)
    • Support Photo GUI integration with webMAN MOD (mount games from 'Photo' column) (by aldo/DeViL303)
    • Get/Set FAN speed (by aldo)
    • Enable/disable features: Photo GUI, Restore Syscalls (by aldo)
    • Opcode to create CFW Syscalls (6, 7, 8, 9, 10, 11, 15, 35) (by aldo)
    • Opcode to set fake accountID (by Evilnat)
    • Opcode to activate account (act.dat) (by Evilnat)
    • Opcode to create license (RIF) (by Evilnat)
    • Updated ps3mapi_load_process_modules to load custom modules and system modules (by haxxxen)
    • Added ps3mapi_get_process_module_info
    • Increased from 24 to 32 the max number of map paths (by aldo)
    • Added sm_get_temperature patch in kernel (by Evilnat)
    • Added sm_get_fan_policy patch in kernel (by Evilnat)
    • Added sm_set_fan_policy patch in kernel (by Evilnat)
    • Fixed Control FAN payload, avoids loading previous mode (by Evilnat)
    • Disable stage2.bin while Recovery Menu is loaded (by haxxxen)
    • Fixed max FAN speed after shutdown (by Evilnat)
    • Improved Habib's QA flags code imported by aldostools (by Evilnat)
    • Fixed black screen in CFW2OFW converted games (by Evilnat)
    • Added sm_ring_buzzer with single_beep, double_beep and triple_beep (by Evilnat)
    • Skip license creation (rif) if it already exists (by aldo)
    • Added cellFsMkdir symbol (by Evilnat)
    • Added constant FAN Speed while a PS2 ISO is launched (by Evilnat)
    • Check/Disable/Enable QA Flags (by Evilnat)
    • Creation of act.dat while launching a PSN game (by Evilnat)
    • Convert someones's else savedata to your own savedata (by Evilnat)
    • Block Log In on PSN/SEN when CFW syscalls are enabled (by DeViL303)

    Tested in:
    • CECH-2000A
    • CECH-2000B
    • CECH-2001A
    • CECH-2002B
    • CECH-2004A
    • CECH-2012A
    • CECH-2104B
    • CECH-2500A
    • CECH-2501A
    • CECH-2504A
    • CECH-2511A
    • CECH-2511B
    • CECH-L04
    • CECHA01
    • CECHE01
    • CECHB01
    • CECHC04
    • CECHG01
    • CECHP01

    Improvements xai plugin


    These options are in Network tab under [★ Custom Firmware Tools] option:

    Power Options
    • Turn Off: Turns off the PS3
    • Hard Reboot: Reboots the PS3 completely
    • Soft Reboot: Reboots the PS3 softly
    • Reboot LV2: Reboots the LV2

    File Manager
    • Internal Hard Disk Drive 0: Manage PS3 files in /dev_hdd0
    • Internal Hard Disk Drive 1: Manage PS3 cached files in /dev_hdd1
    • USB Mass Storage Devices: Manage files on your USB devices
    • Internal Flash Memory: Manage PS3 internal flash files
    • Optical Disc: Manage optical discs
    • Memory Cards: Manage memory cards

    Basic Tools
    • FAN Speed: Shows current FAN speed
    • PS3 Temperature: Shows current CPU and RSX temperature
    • Show IDPS: Shows current IDPS
    • Show PSID: Shows current PSID
    • Toggle Coldboot: Toggles between custom/original coldboot.raf
    • Toggle System Version: Toggles between custom/original system version in "System Information"

    Basic Tools > xRegistry Tools

    • Backup xRegistry.sys: Creates a backup of xRegistry.sys to /dev_usb or /dev_hdd0
    • Button Assignment: Switches O and X buttons

    Cobra Tools
    • Cobra Information: Shows current Cobra information
    • Check Syscall 8: Checks Cobra's Syscall 8 status
    • Create Syscalls: Create syscalls 6, 7, 8, 9, 10, 11, 15 and 35
    • Allow Restore Syscalls: Allows restoring syscalls through "System Update"
    • Skip license creation: Skips overwriting license file (RIF) if it already exists
    • Toggle Cobra Version: Toggles between release and debug versions (reboot is required)
    • Toggle Cobra: Enables or disables Cobra (reboot is required)

    Cobra Tools > FAN Tools
    • Control FAN Mode: DISABLED: Disables Cobra's Control FAN
    • Control FAN Mode: SYSCON: Allows the PS3's SYSCON to control FAN speed
    • Control FAN Mode: MAX: Set Cobra FAN speed to 0xFF

    Cobra Tools > QA Tools
    • Check QA Flags: Check if QA flags are enabled or disabled
    • Enable QA Flags: Enables QA Flags
    • Disable QA Flags: Disables QA Flags

    Cobra Tools > FAN Tools > Dynamic FAN Control
    • Maximum temperature: 60°C: Sets the fan speed dynamically to keep the system at a maximum temperature of 60°C
    • Maximum Temperature: 65°C: Sets the fan speed dynamically to keep the system at a maximum temperature of 65°C
    • Maximum Temperature: 70°C: Sets the fan speed dynamically to keep the system at a maximum temperature of 70°C
    • Maximum Temperature: 75°C: Sets the fan speed dynamically to keep the system at a maximum temperature of 75°C

    WARNING: Some PS3 cannot reach/stay some option temperatures, use with caution

    Cobra Tools > FAN Tools > Manual Speed
    • Manual Speed: 40%: Sets the fan speed statically at 40% (0x67)
    • Manual Speed: 45%: Sets the fan speed statically at 45% (0x75)
    • Manual Speed: 50%: Sets the fan speed statically at 50% (0x80)
    • Manual Speed: 55%: Sets the fan speed statically at 55% (0x8E)
    • Manual Speed: 60%: Sets the fan speed statically at 60% (0x9B)
    • Manual Speed: 65%: Sets the fan speed statically at 65% (0xA8)
    • Manual Speed: 70%: Sets the fan speed statically at 70% (0xB5)
    • Manual Speed: 75%: Sets the fan speed statically at 75% (0xC0)
    • Manual Speed: 80%: Sets the fan speed statically at 80% (0xCE)
    • Manual Speed: 85%: Sets the fan speed statically at 85% (0xDA)
    • Manual Speed: 90%: Sets the fan speed statically at 90% (0xE7)
    • Manual Speed: 95%: Sets the fan speed statically at 95% (0xF4)

    WARNING: The chosen speed will be static, it will not be changed at any time automatically

    Cobra Tools > FAN Tools > PS2 FAN

    • PS2 Fan Mode: DISABLED: Disables Control FAN on PS2 game
    • PS2 Fan Mode: SYSCON: Allows the PS3's SYSCON to control FAN speed on PS2 game
    • PS2 Fan Mode: 40%: Sets FAN speed to 0x66 on PS2 game
    • PS2 Fan Mode: 50%: Sets FAN speed to 0x80 on PS2 game
    • PS2 Fan Mode: 60%: Sets FAN speed to 0x9A on PS2 game
    • PS2 Fan Mode: 70%: Sets FAN speed to 0xB4 on PS2 game
    • PS2 Fan Mode: 80%: Sets FAN speed to 0xCE on PS2 game
    • PS2 Fan Mode: 90%: Sets FAN speed to 0xE8 on PS2 game

    WARNING: There is no Control FAN in a PS2 game, select with caution

    PSN Tools
    • Disable Syscalls: Disables syscalls and remove history files
    • Show accountID: Shows current user's accountID
    • Create accountID: Creates a fake accountID for current user's in xRegistry
    • Overwrite accountID: Overwrites current user's accountID with a fake one in xRegistry
    • Activate account: Creates act.dat file in the current local account
    • Create license: Creates RIF licenses from RAP files from "x:\exdata"
    • Backup activation file: Creates a backup of act.dat to /dev_usb or /dev_hdd0
    • Disable account: Deletes current user's activation file act.dat permanently
    • Convert savedata: Converts savedata from "/dev_usbXXX/PS3/SAVEDATA" to your own savedata

    Dump Tools
    • View Log: http://localhost/dev_hdd0/tmp/cfw_settings.log (webMAN MOD is required for this function)
    • Clean Log File: Resets /dev_hdd0/tmp/cfw_settings.log file
    • Dump IDPS: Saves IDPS to log file
    • Dump PSID: Saves PSID to log file
    • Dump LV2: Dumps LV2 to /dev_usb or /dev_hdd0/tmp
    • Dump LV1: Dumps LV1 to /dev_usb or /dev_hdd0/tmp
    • Dump ERK: Dumps eid_root_key to /dev_usb or /dev_hdd0/tmp
    • Log KLicense usage: Saves filename and klicensee to log file
    • Log Secure File ID usage: Writes save data name and file ID key to log file
    • Dump Disc Hash Key: Retrieves disc hash key from an ORIGINAL game disc

    Service Tools
    • Display Applicable Version: Displays minimum downgrade version
    • Check File System: Reboots and allows you to check and repair filesystem
    • Rebuild Database: Reboots with Database rebuilding flag set
    • Toggle Recovery Mode: Reboot to Recovery Mode (Not supported on NAND models!)

    Service Tools > Advanced Service Tools
    • RSOD fix: Re-initialize VTRM-Region to attempt to fix RSOD
    • Toggle Factory Service Mode: Enter/Exit Factory Service Mode (DON'T INSTALL CFW ON FSM)
    • Remarry Bluray Drive: Requires: Enter to FSM and copy "eid_root_key" to /dev_usb
    • Load LV2 kernel: Loads lv2_kernel.self file from /dev_usb000 or /dev_flash


    Savegames conversion tutorial

    WARNING: This option will overwrite your current savedata in dev_usbXXX, use it with caution

    • Download someone else's savegame for your game of your choice
    • Put the savedata in your pendrive in "X:\PS3\SAVEDATA" (pendrive must be in FAT32)
    • Put in the pendrive in the PS3
    • Select Network Tab > [★ Custom Firmware Tools] > PSN Tools > Convert Savedata
    • Wait until the conversion finishes
    • Once finished, copy your converted savedata throught XMB "Saved Data Utility (PS3)"
    • Launch your game and load your new savedata


    Creation of act.dat tutorial

    WARNING: The accountID is linked to savedata and trophies, so, if your current user already have a valid accountID and you overwrite it, you will be unable to use your trophies and savedata on that account until you restore the original accountID in xRegistry.sys.


    I recommend to use an empty account without trophies and savedata or an account without accountID.


    To create a fake act.dat, Cobra 8.3 must be enabled, and your PS3 must have at least one account with a valid accountID and launch a game that requires a RIF/RAP license file.

    Cobra will search a valid accountID in all existing accounts and create act.dat while the game is launched through the XMB. If no accountID is found, act.dat will not be created.

    You can create a fake accountID (like reactPSN), to do this go to Network > ★ Custom Firmware Tools > PSN Tools and choose between "Create accountID" or "Overwrite accountID" (Be careful about the last option because if you already have a fake/real accountID it will be overwritten). It is recommended to use these options in an account that does not have an ID. The PS3 will restart if everything went well.

    The tutorial would be the following:
    • Download your purchased PSN game from PS Store
    • Put game RAP file in "X:\exdata" or "/dev_hdd0/exdata"
    • Launch your purchased PSN game
    • Cobra will check if any of your PS3 accounts have accountID
    • Faked act.dat will be created while the game is launching

    If none of your accounts have a valid accountID you will need to create it. To do this log into the local PS3 account where you want to create the accountID. You can see if your current local account has an accountID choosing Network Tab > [★ Custom Firmware Tools] > PSN Tools > Show accountID.

    To create a faked act.dat do the following:
    • Make sure Cobra 8.3 is enabled
    • Select Network Tab > [★ Custom Firmware Tools] > PSN Tools > Create accountID
    • Select Network Tab > [★ Custom Firmware Tools] > PSN Tools > Activate account
    • Launch your purchased PSN game
    • Faked act.dat will be created while the game is launching

    Now you have a faked act.dat and your local account is activated. The act.dat file works for every local account, you only need one file for all accounts.


    Block PSN log in

    This method is developed by @DeViL303, it will only work with Cobra enabled, Cobra will block log in on PSN/SEN while the CFW syscalls are enabled, to enable it again you need to disable CFW syscalls completely (you can do it with webMAN MOD, psnpatch, SEN Enabler, etc…).

    If you want to disable this feature, simply delete /dev_flash/vsh/resource/npsignin_plugin.lck


    Translations


    Final Words

    I hope that the CFW is working fine and without issues for everyone, but if you see any issue, please let me know in my twitter and I will try to fix it as soon as possible: @xXEvilnatXx

    Cobra 8.3 and xai_plugin source code can be found in my Github repository:


    Credits and Acknowledgment

    Credits to Team Rebug, Team Cobra, @mysis, @Joonie, @habib, @aldostools, @haxxxen, @DeViL303, @zecoxao, @3141card, @Berion, @kakaroto, @KW, @naehrwert, @flatz, @Dean, @Rogero, @Estwald and anyone who has contributed to the PS3 scene.

    Thanks to @DeViL303, @Berion, @Brandon Stump, @jcorrea, @nhie07, @NSC-Modz, @LuanTeles, @thejavigames, @raidriar, @xiaoyang, @Zwei, @haxxxen, @RetroFan_90, @SpyroMancer, @patricksouza472, @MrYadro, @CFW-Us3r, @Andrio, @KcrPLo, Nur Rakhmadi Rajab, @Lwiz, @Sheireen, @TheWizWiki and all who helped me testing the CFW 4.88.

    If I forgot someone, I apologize, there are many people in the PS3 scene and you are many people who
    have helped me to test the CFW.



Download: MEGA FOLDER WITH ALL CFW VERSION

Download: CFW EVILNAT 4.88.2 COBRA 8.3 [CEX]
MD5: 3202971E05140F24E52B36D5C443AD35

Download: CFW EVILNAT 4.88.2 COBRA 8.3 [CEX] [noBD]

MD5: 80029DC0FBD238DAF8ED45BCDFD04CD6

Download:CFW EVILNAT 4.88.2 COBRA 8.3 [CEX] [noBT]
MD5: 360569FE808B1815BD05258C8496003F

Download: CFW EVILNAT 4.88.2 COBRA 8.3 [CEX] [noBD] [noBT]
MD5: D8BB1F47B77F1737F974308B935F81B6
 
Last edited by a moderator:
You're welcome, I'm Glad to help the scene in my little knowledge ;)
Participating in stuff like this is surefire way to raise your knowledge above the "used bguervilles toolset and installed XXX CFW" level - which isn't wrong at all, but sometimes it's just nice get to know bits and pieces more.
 
That's perfect, thank so much for testing it my friends

It's ime to create 4.88.2 BETA


I wanted to suggest a small performance improvement in xreg_data() of save_games.c
The change basically is move data = malloc(0x17); and the free(data) outside of the loop.
Code:
int xreg_data(char *value, int type, int mode, int overwrite, int checkEmpty)
{
    int fd, result = -1;
    uint16_t offset = 0;
    uint64_t dummy, read, seek;
    char *buffer = malloc(0x2A);
    if(!buffer)
        return result;
    if(cellFsOpen(XREGISTRY_FILE, CELL_FS_O_RDWR, &fd, 0666, NULL, 0) != SUCCEEDED)
    {
        free(buffer);
        return result;
    }
    // Get offset
    for(int i = 0; i < 0x10000; i++)
    {
        cellFsLseek(fd, i, SEEK_SET, &seek);
        cellFsRead(fd, buffer, 0x31 + 1, &read);
        // Found offset
        if(strcmp(buffer, value) == 0)
        {
            offset = i - 0x15;
            uint8_t *data = (uint8_t *) malloc(0x17);
            // Search value from value table
            for(int i = 0x10000; i < 0x15000; i++)
            {
                cellFsLseek(fd, i, SEEK_SET, &seek);
                cellFsRead(fd, data, 0x17, &read);
                // Found value
                if (memcmp(data, &offset, 2) == 0 && data[4] == 0x00 &&
                    ((type) ? data[5] == 0x11 && data[6] == 0x02 : data[5] == 0x04 && data[6] == 0x01))
                {
                    result = 0;
                    if(type && mode) // Set/Overwrite with fake accountID
                    {
                        if(!overwrite && memcmp(data + 7, empty, 0x10) != SUCCEEDED)
                        {
                            free(data);
                            free(buffer);
                            cellFsClose(fd);
                            return 1;
                        }
                        cellFsLseek(fd, i + 7, SEEK_SET, &seek);
                        cellFsWrite(fd, fake_accountid, 0x10, &dummy);
                    }
                    else if(type && !mode) // Check if there is no accountID
                    {
                        memcpy(&account_id, data + 7, 0x10);
                        if(checkEmpty && memcmp(data + 7, empty, 0x10) != SUCCEEDED)
                            result = 1;
                    }
                    else if(!type && mode) // Disable auto sign in PSN with empty email/password
                    {
                        uint32_t disabled = 0;
                        cellFsLseek(fd, i + 7, SEEK_SET, &seek);
                        cellFsWrite(fd, &disabled, 4, &dummy);
                    }
                    else
                        memcpy(&userID, data + 7, 4);
                    free(data);
                    free(buffer);
                    cellFsClose(fd);
                    return result;
                }
            }
            free(data);
        }
    }
    free(buffer);
    cellFsClose(fd);
    return result;
}
 
Participating in stuff like this is surefire way to raise your knowledge above the "used bguervilles toolset and installed XXX CFW" level - which isn't wrong at all, but sometimes it's just nice get to know bits and pieces more.
surely, I always had lot of interest in modding and what's behind it; so when I have the possibility I always try to give a hand :encouragement:
 
I wanted to suggest a small performance improvement in xreg_data() of save_games.c
The change basically is move data = malloc(0x17); and the free(data) outside of the loop.
Code:
int xreg_data(char *value, int type, int mode, int overwrite, int checkEmpty)
{
    int fd, result = -1;
    uint16_t offset = 0;
    uint64_t dummy, read, seek;
    char *buffer = malloc(0x2A);
    if(!buffer)
        return result;
    if(cellFsOpen(XREGISTRY_FILE, CELL_FS_O_RDWR, &fd, 0666, NULL, 0) != SUCCEEDED)
    {
        free(buffer);
        return result;
    }
    // Get offset
    for(int i = 0; i < 0x10000; i++)
    {
        cellFsLseek(fd, i, SEEK_SET, &seek);
        cellFsRead(fd, buffer, 0x31 + 1, &read);
        // Found offset
        if(strcmp(buffer, value) == 0)
        {
            offset = i - 0x15;
            uint8_t *data = (uint8_t *) malloc(0x17);
            // Search value from value table
            for(int i = 0x10000; i < 0x15000; i++)
            {
                cellFsLseek(fd, i, SEEK_SET, &seek);
                cellFsRead(fd, data, 0x17, &read);
                // Found value
                if (memcmp(data, &offset, 2) == 0 && data[4] == 0x00 &&
                    ((type) ? data[5] == 0x11 && data[6] == 0x02 : data[5] == 0x04 && data[6] == 0x01))
                {
                    result = 0;
                    if(type && mode) // Set/Overwrite with fake accountID
                    {
                        if(!overwrite && memcmp(data + 7, empty, 0x10) != SUCCEEDED)
                        {
                            free(data);
                            free(buffer);
                            cellFsClose(fd);
                            return 1;
                        }
                        cellFsLseek(fd, i + 7, SEEK_SET, &seek);
                        cellFsWrite(fd, fake_accountid, 0x10, &dummy);
                    }
                    else if(type && !mode) // Check if there is no accountID
                    {
                        memcpy(&account_id, data + 7, 0x10);
                        if(checkEmpty && memcmp(data + 7, empty, 0x10) != SUCCEEDED)
                            result = 1;
                    }
                    else if(!type && mode) // Disable auto sign in PSN with empty email/password
                    {
                        uint32_t disabled = 0;
                        cellFsLseek(fd, i + 7, SEEK_SET, &seek);
                        cellFsWrite(fd, &disabled, 4, &dummy);
                    }
                    else
                        memcpy(&userID, data + 7, 4);
                    free(data);
                    free(buffer);
                    cellFsClose(fd);
                    return result;
                }
            }
            free(data);
        }
    }
    free(buffer);
    cellFsClose(fd);
    return result;
}
Done, I have moved data = malloc(0x17); and free(data) outside the loop. I have uploaded a new PKG with some savedata to test this change.

https://mega.nz/file/oJknUKbK#4x0yhpmU-7ewqYQ7l5Kotl3d5u4_N-Vbb8-WJ1HQfDw

To test it, you need to put the contents of the folder USB to the root of your USB device, and select the option under [★ Custom Firmware Tools > Cobra Tools > Convert savedata] through xai_plugin

I have used these saved data for tests on my PS3 long time ago, I do not remember if any is wrong or not, but you can use any savedata but there must be at least five saves for the test. Then copy the new patched savedata through Savedata Utility (PS3) in Game tab.

If the PS3 does not freeze in the middle of the conversion, all must be fine
 
Done, I have moved data = malloc(0x17); and free(data) outside the loop. I have uploaded a new PKG with some savedata to test this change.

https://mega.nz/file/oJknUKbK#4x0yhpmU-7ewqYQ7l5Kotl3d5u4_N-Vbb8-WJ1HQfDw

To test it, you need to put the contents of the folder USB to the root of your USB device, and select the option under [★ Custom Firmware Tools > Cobra Tools > Convert savedata] through xai_plugin

I have used these saved data for tests on my PS3 long time ago, I do not remember if any is wrong or not, but you can use any savedata but there must be at least five saves for the test. Then copy the new patched savedata through Savedata Utility (PS3) in Game tab.

If the PS3 does not freeze in the middle of the conversion, all must be fine

Are you going to include the normal and debug stage2.bin in the 4.88.2?
It would be convenient if it could be selected from CFW Tools menu.

Also it would be nice if you rearrange CFW Tools menu like the one in the attachment.
IMHO this menu has a more convenient organization of the options.
 

Attachments

Done, I have moved data = malloc(0x17); and free(data) outside the loop. I have uploaded a new PKG with some savedata to test this change.

https://mega.nz/file/oJknUKbK#4x0yhpmU-7ewqYQ7l5Kotl3d5u4_N-Vbb8-WJ1HQfDw

To test it, you need to put the contents of the folder USB to the root of your USB device, and select the option under [★ Custom Firmware Tools > Cobra Tools > Convert savedata] through xai_plugin

I have used these saved data for tests on my PS3 long time ago, I do not remember if any is wrong or not, but you can use any savedata but there must be at least five saves for the test. Then copy the new patched savedata through Savedata Utility (PS3) in Game tab.

If the PS3 does not freeze in the middle of the conversion, all must be fine

Tested this one. First vanilla 4.88 EN -> No probs
Then with the patch take 1. -> console froze on converting, no led activity on usb stick
with patch, take 2. -> Conversion and transfer of saves went smoothly.

Take 1. might have been a fluke, but haven't got time for further testing just now, will be afk for 2-3 hours at least.
 
I have created some PKG to test, release and debug version. Debug and retail versions size are lower than 0x20000 and must work fine on both types of PS3

@Coro (NOR), @aldostools (NOR), @FoxHound47 (FAT), @Lwiz (NOR), @Sheireen (NAND), @tom1tom (NOR?), @DeViL303 (NAND/NOR), @LuanTeles (NOR) can you try them?

There is no risk of brick, reboot your PS3 to load original stage2.bin with Cobra 8.3

If the PKG doesn't work for you, I have added the files too. The following files must be added/replaced:
  • stage9.bin: /dev_blind/sys/stage9.bin (Mount dev_blind first)
  • xai_plugin.sprx: /dev_blind/vsh/module/xai_plugin.sprx (Mount dev_blind first)
  • lv2_kernel.self: /dev_blind/lv2_kernel.self (Mount dev_blind first)
DO NOT CONFUSE STAGE2.BIN WITH STAGE9.BIN

You can copy and launch lv2_kernel.self through xai_plugin (Advanced Tools) or Rebug Toolbox after all other files have been copied/replaced. Both PKGs shows Cobra version 9.99, if you want to test release and then debug or vice versa, remember to hard reboot the PS3 to load original stage2

I have reverted part of the code to decrease the size, for example loading webMAN MOD from the following paths are removed (modulespatch.c):
  • /dev_flash/ps3ita/webftp_server.sprx
  • /dev_flash/webman/webftp_server.sprx
  • /dev_flash/dragon/web.sprx
Replaced some variables that stores original values with static values (qa.c/qa.h):
  • #define UM_PATCH_ORI 0xE8180008
  • #define DM_PATCH1_ORI 0xF8010098
  • #define DM_PATCH2_ORI 0x4BFFF0E5
  • #define DM_PATCH3_ORI 0x38A10070
  • #define DM_PATCH4_ORI 0x48006065
Replaced two lines of code to one to check if we are launching something from "/dev_hdd0/game/" (homebrew_blocker.c)
  • OLD: uint8_t is_hdd0 = (path[1] == 'd' && path[5] == 'h' && !strncmp(path, "/dev_hdd0/", 10));
  • OLD: uint8_t is_game_dir = (is_hdd0 && !strncmp(path + 10, "game/", 5));
  • NEW: uint8_t is_hdd0 = !strncmp(path, "/dev_hdd0/game/", 15);
And finally, I have commented some DPRINTF for debug version. I hope everything works fine with the changes


Seems i'm a little bit late, but yeap both are working fine here NOR CECH-2100B
 
Done, I have moved data = malloc(0x17); and free(data) outside the loop. I have uploaded a new PKG with some savedata to test this change.

https://mega.nz/file/oJknUKbK#4x0yhpmU-7ewqYQ7l5Kotl3d5u4_N-Vbb8-WJ1HQfDw

To test it, you need to put the contents of the folder USB to the root of your USB device, and select the option under [★ Custom Firmware Tools > Cobra Tools > Convert savedata] through xai_plugin

I have used these saved data for tests on my PS3 long time ago, I do not remember if any is wrong or not, but you can use any savedata but there must be at least five saves for the test. Then copy the new patched savedata through Savedata Utility (PS3) in Game tab.

If the PS3 does not freeze in the middle of the conversion, all must be fine


It hard froze my console upon clicking


Edit: I tried a second time after manually rebooting my PS3, and it worked fine

Edit 2: I erased all the saved data from my usb device and tried again, worked fine, i don't know what caused the first time to freeeze
 
Last edited:
I have created some PKG to test, release and debug version. Debug and retail versions size are lower than 0x20000 and must work fine on both types of PS3

@tom1tom (NOR?) can you try them?

There is no risk of brick, reboot your PS3 to load original stage2.bin with Cobra 8.3

If the PKG doesn't work for you, I have added the files too. The following files must be added/replaced:
  • stage9.bin: /dev_blind/sys/stage9.bin (Mount dev_blind first)
  • xai_plugin.sprx: /dev_blind/vsh/module/xai_plugin.sprx (Mount dev_blind first)
  • lv2_kernel.self: /dev_blind/lv2_kernel.self (Mount dev_blind first)
DO NOT CONFUSE STAGE2.BIN WITH STAGE9.BIN

You can copy and launch lv2_kernel.self through xai_plugin (Advanced Tools) or Rebug Toolbox after all other files have been copied/replaced. Both PKGs shows Cobra version 9.99, if you want to test release and then debug or vice versa, remember to hard reboot the PS3 to load original stage2

I have reverted part of the code to decrease the size, for example loading webMAN MOD from the following paths are removed (modulespatch.c):
  • /dev_flash/ps3ita/webftp_server.sprx
  • /dev_flash/webman/webftp_server.sprx
  • /dev_flash/dragon/web.sprx
Replaced some variables that stores original values with static values (qa.c/qa.h):
  • #define UM_PATCH_ORI 0xE8180008
  • #define DM_PATCH1_ORI 0xF8010098
  • #define DM_PATCH2_ORI 0x4BFFF0E5
  • #define DM_PATCH3_ORI 0x38A10070
  • #define DM_PATCH4_ORI 0x48006065
Replaced two lines of code to one to check if we are launching something from "/dev_hdd0/game/" (homebrew_blocker.c)
  • OLD: uint8_t is_hdd0 = (path[1] == 'd' && path[5] == 'h' && !strncmp(path, "/dev_hdd0/", 10));
  • OLD: uint8_t is_game_dir = (is_hdd0 && !strncmp(path + 10, "game/", 5));
  • NEW: uint8_t is_hdd0 = !strncmp(path, "/dev_hdd0/game/", 15);
And finally, I have commented some DPRINTF for debug version. I hope everything works fine with the changes

here is that what i found
z5Mb5.jpg
 

Attachments

  • z5Mb5.png
    z5Mb5.png
    40.8 KB · Views: 93
Are you going to include the normal and debug stage2.bin in the 4.88.2?
It would be convenient if it could be selected from CFW Tools menu.

Also it would be nice if you rearrange CFW Tools menu like the one in the attachment.
IMHO this menu has a more convenient organization of the options.
I will add the option to toggle between Cobra debug and release versions and modify some options, but not all of them

Tested this one. First vanilla 4.88 EN -> No probs
Then with the patch take 1. -> console froze on converting, no led activity on usb stick
with patch, take 2. -> Conversion and transfer of saves went smoothly.

Take 1. might have been a fluke, but haven't got time for further testing just now, will be afk for 2-3 hours at least.
It hard froze my console upon clicking


Edit: I tried a second time after manually rebooting my PS3, and it worked fine

Edit 2: I erased all the saved data from my usb device and tried again, worked fine, i don't know what caused the first time to freeeze
Can you try this PKG to see if the PS3 keeps freezing while converting savedata? Launch the PKG (or copy files from dev_flash folder) and convert them after the PS3 reboots

https://mega.nz/file/8F0GVTZb#rBCFRpKf1XjYwryQioDqMIBm22gMIvp9PtGohDOfnd0

If this account id is created via reactPSN, then will i be able to create fake act.dat using this tutorial.
You can create a fake accountID with xai_plugin, if you have created it with reactPSN, it will work too
 
Last edited:
I will add the option to toggle between Cobra debug and release versions and modify some options, but not all of them



Can you try this PKG to see if the PS3 keeps freezing while converting savedata? Launch the PKG (or copy files from dev_flash folder) and convert them after the PS3 reboots

https://mega.nz/file/8F0GVTZb#rBCFRpKf1XjYwryQioDqMIBm22gMIvp9PtGohDOfnd0

I installed CFW just to start it clean and this first run froze in the middle of the conversion process.

The second time it ran without issues again.

So the problem is just in the first run after the firmware has been installed.


Edit: I tested it several times and it worked fine so I thought maybe the problem was after running the PKG so I launched it again and voila, after rebooting I tried it and it froze.

Edit 2: I tried to start PKG and after the system automatically restarted I restarted again but manually (soft restart) but the same thing happened it froze again.

Edit 3: I did more tests as the "TEST 2" and if you turn off the PS3 after the PKG has been launched and the system automatically rebooted, it works.


Edit 4: Just launched the PKG ( 5 times in a row, just to be sure that was the cause) and tried the "convert sava data" option after the reboot, .

Edit 5:It seems that manually replacing files in flash avoids this problem.

Verdict:

The problem only occurs after the FIRST RUN of the "CONVERT SAVE DATA" after the PKG has been launched.

This is weird, but since the files will be packaged inside the .PUP, they will probably work fine.
 
Last edited:
So, when Cobra version is 8.3, it works fine? And with Cobra version 9.99 freezes?

9.99 will be loaded with external lv2_kernel.self and stage9.bin in dev_flash/sys, from PKG or loading it with Rebug Toolbox or xai_plugin

Edit: Can you make a LV2 dump, and send me a screenshot of offsets 0x500000 and 0x700000?
 
Last edited:
So, when Cobra version is 8.3, it works fine? And with Cobra version 9.99 freezes?

9.99 will be loaded with external lv2_kernel.self and stage9.bin in dev_flash/sys, from PKG or loading it with Rebug Toolbox or xai_plugin

Edit: Can you make a LV2 dump, and send me a screenshot of offsets 0x500000 and 0x700000?

Facepalm:

i didn't realize that LOL, i thought it was just flashing the files

k2ZWmCY.png
5Ba9qWr.png
 

Attachments

@LuanTeles I created another PKG, this have the following updates:

  • Added option to swtich between Cobra debug/release versions in Cobra Tools (for stage9 only, it will reboot LV2 to keep changes in LV1 and Cobra must keep showing 9.99)
  • Test needed: Savedata conversion (at least five savedata)
 

Attachments

@LuanTeles I created another PKG, this have the following updates:

  • Added option to swtich between Cobra debug/release versions in Cobra Tools (for stage9 only, it will reboot LV2 to keep changes in LV1 and Cobra must keep showing 9.99)
  • Test needed: Savedata conversion (at least five savedata)

Froze again, but in the middle of the conversion.
 

Featured content

Trending content

Back
Top