53w ago - Following up on the
PS3 Preloader Advance v3.1 by
JaicraB, today Spanish PlayStation 3 developers at
DemonHades have released Service Pack 1.3 for PS3 JFW-DH 3.56 MA CFW, Tools for MAD by
Chekco, a ConfEditor by
Vakaloka, a tutorial by
siema44 and a PSX and Dynarec ISO demo video below!
To quote, roughly translated:
New PS3 JFW-DH 3.56 MA CFW Service Pack 1.3
Service Pack 1.3 brings in a wealth of improvements and new features such as the Grid system, a plugins manager, the ability to dualboot GameOS and Linux and of course Dynarec which throws in support for PSX ISOs.
- System Administrator unlocked for use with 50 functions including only HV can run in service mode (*).
- Total compatibility with games, games that gave failures now work OK.
- Support Ministry of PSP, and PSN games now run and debugged all.
- Compatibility with PS2 corrected.
What's New TheGrid
- TheGrid patching the boot
- Region Free BD
- Patched new checks
- Payloads support
- Linux
- Dynarec load support in the LV2 (emulators support more advanced 3d)
- Dynamic patch is not required to install or replace, and nothing more.
New options to start with EGEA detecting flags to perform new tasks:
dumpflash - Dumpea the dev_flash to USB (Dev_usb000)
dumpflash2 - Dumpea the dev_flash2 to USB (Dev_usb000)
dumpflash3 - Dumpea the dev_flash3 to USB (Dev_usb000)
Dumpea dumpflash4 dev_flash4 to the USB (Dev_usb000)
restoreflash - Restores and record a dev_flash from USB (/ dev_usb000/dev_flash.bin)
restoreflash2 - Restores and record a dev_flash from USB (/ dev_usb000/dev_flash2.bin)
restoreflash3 - Restores and record a dev_flash from USB (/ dev_usb000/dev_flash3.bin)
restoreflash4 - Restores and record a dev_flash from USB (/ dev_usb000/dev_flash4.bin)
dumper.nor - Create a memory dump of the console NOR FLASH
dumper.nand - Creates a dump of the NAND FLASH memory of the console
dumper.lv1 - Dumpea the LV1
matheros_direct-slim - Boot Linux directly on the console obviously must have been pre-installed before (To Slims)
matheros_direct-fat - Boot Linux directly on the console obviously must have been pre-installed before (To FATS)
These flags or files are placed in the root of usb / dev_usb000 only have to create an empty document even from the context menu of windows and these names and ready, you can invoke the boot and call to fulfill a task as their names pre-written.
As you see you can avail of basic features including the Preloader from the very start just using FLAGS. Write access to the flash from the start, no dev_fast, etc.. It follows the runtime load EGEA.SELF at startup. Improvised use of new syscalls 15,16,20 (lv2 memcpy, memset lv2 and lv1 CallGate).
Details: Using MatherOS direct start to load directly into the console linux without going through the VSH. XploraMAs improved the display of units and contents. MultiTheme included in their own zip.
Position of the patches:
In this first version of TheGrid in MA we are 6 options or patches are:
- First patch (first number in the 64): this corresponds to MatherOS Patch to disable or enable the use of Linux on the console.
- Second patch (second number in the 64): Corresponds to load the syscall PL3 Payload 35 in the console.
- Third patch (third number in the 64): Corresponds to load Payload Supports sc MAS 36 and 8 on the console.
- Fourth patch (fourth number in the 64): Corresponds to load BD region Free bone patch overrides the restriction on the region bds ignoring methods such as changing the console region (Annoyed if you have to do all the time).
- Fifth patch (fifth in number 64): Corresponds to the patch that disables the PS1 disk check on the console.
- Sixth patch (sixth in number 64): Enables or disables dynamic patch the FW by loading a patch that makes bone PatchUser.bin the same user or future updates that we will be taking to thegrid will come in the form of a file "PatchUser.bin" that will contain the updates.
- Seventh patch (Seventh in the number 64): Enables or disables support for LV2 Dynarec in order to use dynamic recompilation of the emulators and performance improvements in them (For use with emulators suits the users and devs who want the best performance).
(*) You can use the soft regulator of the cooler fan speed in administrator mode.
Download links
- http://www.sendspace.com/file/5r3cdp
- http://190.242.97.218/motamagic/playstation/packde%20eso%20v2.rar
- https://docs.google.com/file/d/0B3INpYT_9cfnTEdaNE01eWJZLUk/edit?pli=1
- http://www.mediafire.com/?p08d2bbxu0bxs4y
Improvements over the sp1.2.1 ....
From now you ought to use this version of Iris prepared with the SP Manager 1.3, as always thanks to
D_Skywalk to have this manager: http://www.mediafire.com/?72h34t5h5arvk97
- Need not be used more compatible 36 or 35 +8 +8 managers to use than the iris manager.
- You do not need the profile of support for minis and games like GT5 or from dust that was frozen.
- No change of region, as this patch to put the reader region free.
- Be able to boot linux from bypassing the xmb.
FAQ ...
I need to install an SP before this?
- No, the SP has all the old and new
I have to put in service mode to install the SP?
- No, use Aegean to install it.
It comes all included in the RAR?
- If including the new Dynamic MultiTheme
Managers Supported
- Iris Manager 3.56
- H Manager 1.5
- Solar Rogero Edition 8.5
- Multiman 2.008.05
That is the XploraMAs?
- It is a port of the xmb plus but not required PKGs and is much faster displaying content.
It is also necessary to emphasize that the writing on the flash is activated from the start of MA, I mean you have to not use any type mounting system dev_fast etc, just copy and paste the same flash as you have all permits in MA.
Thanks to
Rokiski,
JaiCraB,
blackdeath,
Adriansfc92,
chickenpox,
chekco,
kike, and all the devils
SolidHades93 community DHorg.
1saludo
Post Experiences with JFW 3.56 SP 1.3 DH-MA
Well as the title says this post is created for people who have installed the SP 1.3 discuss their experiences and to be failures and others. Also go up Thegrid.cfg with different combinations.
Known bugs:
In some PS3 when you turn on the PS3 Dynarec starts.
CGFS of Thegrid:
CFG with only 36 active syscall: http://www.sendspace.com/file/0yv52l
CFG with activated MAtherOS syscall 36 and BD region Free: http://www.sendspace.com/file/c9slio
CFG alone with MAtherOS: http://www.sendspace.com/file/7wsabw
CFG with 36 and Dynarec activated syscall: http://www.sendspace.com/file/pqvbfu
CFG with all patches disabled: http://www.sendspace.com/file/d69wuw
The failure of Mortal Kombat is not due to SP 1.3 in different cfw already presented the same fault in some cases solved, uninstalling and reinstalling everything again and finally the fix as you know.
You can not use the SC 36 and SC 35 at a time, the PS3 is unnecessary and not ripped it all depends on what you need at all times.
From now you ought to use this version of Iris prepared with the SP Manager 1.3, as always thanks to
D_Skywalk to have this manager: http://www.mediafire.com/?72h34t5h5arvk97
Will be updated with more CFGs.
Installation method of CFGs:
To install create a folder called CFGs GRID_UPDATER at the root of the pen and there you put the CFG, and now you put the Pen in the USB00 and start the PS3, and there you will have installed. You should not have any Aegean in the usb.
ConfEditor by Vakaloka, Create Your Custom Conf
Good friends, our friend has created a tool vakaloka to the PC with which we can create our own TheGrid.cfg, method of use is very simple ..
1) Unzip the contents of the rar
2) We will have an executable and patcher
3) Run the program and see that we have the name of the patches and not or whether to enable or disable the patch
4) Once selected we want to give to save settings, we will ask you say a name TheGrid
5) The establishment of a TheGrid.cfg that you will have to put in a root folder called USB GRID_UPDATER, we put in the cfg
6) Insert the USB pen in the closest to the reader and turn on the ps3 normally, it automatically saves your new cnf
And this, so simple, as it brings patcher.txt point the application, but future patches can expand by simply adding each new name under the following
Download the new version 1.2 (fixes a bug in the previous version): http://www.mediafire.com/?jxigthng5q4n0bt
Thanks to
vakaloka 1saludo
Dynarec And Play ISOS PS1, PSOne Emu (Beta) Tutorial
Good demons, as are you? While not? for ale.. END OF POST. Nah just kidding.. In this post I will explain how to use the PSone Emu for retro-lovers
First, download this pack: http://www.mediafire.com/download.php?wruo2b517g3brn1
Inside is everything you need to activate dynarec and play with the emu.
1. Unzip and put all folders in usb. Connect it to usb000.
2. (The one next to the reader)
3. turn on the PS3 to update your cfg TheGrid with dynarec
4. Install PKG Emu
5. Without removing the pen of usb000, tear
6. vice, vice, vice, vice much hahahahahaha
You can configure it with shaders, which itself includes emu for better viewing of your games. The games are in the folder PSX ISO or BIN format (recommended ISO) and the memory cards in MC. Here a video playing Xena:
PS: as already said in another post, some PS3, turning Dynarec not start, so you will have to create or download one of the cfg's in that post and put it in GRID_UPDATER to update and restart. Well gentlemen to enjoy!
COMMENT HERE THAT I HAVE THE GAME AND NOT WORKED.
Thanks to all the Team for their currazo and bring Dynarec to MA!
Hey people. I've just heard you posted this here, and I just said to myself, let's post too. Atm I'm working on OpenPStore, which is part of the JFW. I've been working on it for many many hours, as all devs which are working on JFW, and it is just disgusting to read people saying JFW is a fake.
I've seen pics of JFW running, not all of its features though, so it's not fake. There is a whole team working hard every day to bring this to you, and I've actually talked to all of them and I do know their work is real. Just for you to know, now it is 2 am where I live, I've been working till now just to have it all ready for the beta test and not to delay it anymore.
We want to verify everything is working without any problems before releasing it, to avoid things such as bricks or weird bugs. That's why the beta and further release will take so long. So far it is all progressing fine, and I do have proofs of, at least, my work.
Here I bring you 2 proofs of how hard we are working (OpenPStore).
1- We had a problem with a pre-made library to read .xml files (mxml), which was solved by manually coding a new .xml parser.
xml_parser.h : http://pastebin.com/bqQr1YG5
//XML PARSER BY BLIPI
//Feel free to distribute and use it on any plattform and projects
#ifndef XMLPARSER_H
#define XMLPARSER_H
#include
#include
#include
#include
typedef struct xml_node_attr{
char *name;
char *value;
struct xml_node_attr *next;
}xml_node_attr;
typedef struct xml_node{
char *name;
char *value;
int level;
long start_pos;
long end_pos;
char closed;
struct xml_node_attr *attrs;
struct xml_node *next;
struct xml_node *last;
struct xml_node *child;
struct xml_node *parent;
}xml_node;
int XML_Open(char *path);
struct xml_node *XML_ParseAll();
struct xml_node *XML_SearchNodeFrom(char *name, struct xml_node *start);
struct xml_node *XML_SearchNode(char *name);
struct xml_node *XML_GetChild(struct xml_node *node);
struct xml_node *XML_GetNextNode(struct xml_node *node);
struct xml_node_attr *XML_GetNodeAttr(struct xml_node *node, char *name);
char *XML_GetNodeValue(struct xml_node *node);
void XML_EndParse(char free_tree);
#endif
xml_parser.c : http://pastebin.com/A7DsysUJ
#include "xmlparser.h"
// ----- DEFINES ----- //
#define XML_UNKNOW -1
#define XML_DUNNOHANDLE -2
#define XML_OPEN_NODE 1
#define XML_CLOSE_NODE 2
#define XML_NODE_NAME 3
#define XML_SPECIAL_NODE 4
#define XML_NAME_DELIMITER 5
#define XML_ATTR_START 6
#define XML_ATTR_DELIMITER 7
#define XML_NODE_END 8
#define XML_CLOSE_END_NODE 9
// ----- STRUCTS ----- //
typedef struct xml_reader_{
char reading_tag;
char quote_read;
char node_ending;
int lvl;
long cur_pos;
char read_buffer[1024];
char name_buffer[1024];
}xml_reader_;
xml_reader_ xml_reader = {0};
typedef struct ret_{
int ret;
char ch;
}ret_;
// ----- PROTOTYPES ----- //
void XML_FreeList( void );
struct ret_ XML_GetChar( void );
struct xml_node *XML_RecursiveSearchNode(char *name, struct xml_node *node);
// ----- VARIABLES -----//
char xml_path[1024];
char *xml_buffer = NULL;
long xml_size = 0;
struct xml_node *main_tree = NULL;
struct xml_node *current_node = NULL;
// ----- CODE ----- //
//! Abrir el archivo para parsear posteriormente
//! path: Ruta relativa o hard coded hacia el xml
//TODO: No guardar en buffer, leer char a char!
int XML_Open(char *path){
FILE *fp = fopen(path, "r");
if(!fp)
return -1;
strcpy(xml_path, path);
fseek(fp, 0, SEEK_END);
xml_size = ftell(fp);
rewind(fp);
xml_buffer = (char*)malloc(xml_size+1);
if(!xml_buffer)
return -2;
fread(xml_buffer, 1, xml_size, fp);
fclose(fp);
return 0;
}
struct ret_ XML_GetChar(){
char ch = xml_buffer[xml_reader.cur_pos++];
struct ret_ ret;
ret.ch = ch;
if(xml_reader.quote_read == 1 && ch != '"'){
ret.ret = XML_NODE_NAME;
goto endfunc;
}
if(xml_reader.reading_tag == 0){
switch(ch){
case '':
xml_reader.reading_tag = 0;
if(xml_buffer[xml_reader.cur_pos-2] == '/')
ret.ret = XML_CLOSE_END_NODE;
else
ret.ret = XML_CLOSE_NODE;
goto endfunc;
case '?':
ret.ret = XML_SPECIAL_NODE;
goto endfunc;
case ' ':
ret.ret = XML_NAME_DELIMITER;
goto endfunc;
case '=':
ret.ret = XML_ATTR_START;
goto endfunc;
case '"':
xml_reader.quote_read = !xml_reader.quote_read;
ret.ret = XML_ATTR_DELIMITER;
goto endfunc;
}
}
}
endfunc:
return ret;
}
struct xml_node *XML_ParseAll(){
char action = 0;
char ignore = 0;
int buffer_pos = 0;
memset(xml_reader.read_buffer, 0, 1024);
memset(xml_reader.name_buffer, 0, 1024);
xml_reader.reading_tag = 0;
xml_reader.quote_read = 0;
struct xml_node_attr *last_attr = NULL;
struct xml_node_attr *first_attr = NULL;
while(xml_reader.cur_pos < xml_size){
struct ret_ ret = XML_GetChar();
if(ignore && ret.ret != XML_SPECIAL_NODE)
continue;
switch(ret.ret){
case XML_SPECIAL_NODE:
ignore = !ignore;
break;
case XML_OPEN_NODE:
if(!main_tree){
main_tree = current_node = (struct xml_node*)malloc(sizeof(struct xml_node));
memset(current_node, 0, sizeof(struct xml_node));
}else if(current_node->closed){
current_node->next = (struct xml_node*)malloc(sizeof(struct xml_node));
memset(current_node->next, 0, sizeof(struct xml_node));
current_node->next->parent = current_node->parent;
current_node->next->last = current_node;
current_node = current_node->next;
}else{
current_node->child = (struct xml_node*)malloc(sizeof(struct xml_node));
memset(current_node->child, 0, sizeof(struct xml_node));
current_node->child->parent = current_node;
current_node = current_node->child;
}
action = 0;
break;
case XML_NODE_NAME:
xml_reader.read_buffer[buffer_pos++] = ret.ch;
break;
case XML_NAME_DELIMITER:{
if(buffer_pos > 0){
if(action == 0)
strcpy(xml_reader.name_buffer, xml_reader.read_buffer);
memset(xml_reader.read_buffer, 0, 1024);
buffer_pos = 0;
}
}break;
case XML_ATTR_START:{
struct xml_node_attr *temp_attr = (struct xml_node_attr*)malloc(sizeof(struct xml_node_attr));
memset(temp_attr, 0, sizeof(struct xml_node_attr));
temp_attr->name = (char*)malloc(buffer_pos);
strcpy(temp_attr->name, xml_reader.read_buffer);
if(last_attr != NULL)
last_attr->next = temp_attr;
last_attr = temp_attr;
if(first_attr == NULL)
first_attr = last_attr;
memset(xml_reader.read_buffer, 0, 1024);
buffer_pos = 0;
}break;
case XML_ATTR_DELIMITER:
if(xml_reader.quote_read == 0){
last_attr->value = (char*)malloc(buffer_pos);
strcpy(last_attr->value, xml_reader.read_buffer);
memset(xml_reader.read_buffer, 0, 1024);
buffer_pos = 0;
}
break;
case XML_CLOSE_END_NODE:
case XML_CLOSE_NODE:
if(xml_reader.node_ending == 0){
current_node->name = (char*)malloc(buffer_pos);
if(strlen(xml_reader.name_buffer) > 0)
strcpy(current_node->name, xml_reader.name_buffer);
else
strcpy(current_node->name, xml_reader.read_buffer);
current_node->level = xml_reader.lvl;
current_node->attrs = first_attr;
current_node->start_pos = xml_reader.cur_pos;
}
memset(xml_reader.name_buffer, 0, 1024);
memset(xml_reader.read_buffer, 0, 1024);
buffer_pos = 0;
first_attr = NULL;
last_attr = NULL;
if(ret.ret == XML_CLOSE_END_NODE){
current_node->closed = 1;
current_node->end_pos = xml_reader.cur_pos;
}
break;
case XML_NODE_END:
while(current_node->closed == 1)
current_node = current_node->parent;
current_node->closed = 1;
current_node->end_pos = xml_reader.cur_pos;
memset(xml_reader.name_buffer, 0, 1024);
memset(xml_reader.read_buffer, 0, 1024);
buffer_pos = 0;
break;
default:
break;
}
}
return main_tree;
}
struct xml_node *XML_RecursiveSearchNode(char *name, struct xml_node *node){
if(strcmp(name, node->name) == 0)
return node;
struct xml_node *ret = NULL;
if(node->child)
ret = XML_RecursiveSearchNode(name, node->child);
if(ret)
return ret;
if(node->next)
ret = XML_RecursiveSearchNode(name, node->next);
if(ret)
return ret;
return NULL;
}
struct xml_node *XML_SearchNodeFrom(char *name, struct xml_node *start){
return XML_RecursiveSearchNode(name, start);
}
struct xml_node *XML_SearchNode(char *name){
return XML_RecursiveSearchNode(name, main_tree);
}
struct xml_node *XML_GetChild(struct xml_node *node){
return node->child;
}
struct xml_node *XML_GetNextNode(struct xml_node *node){
return node->next;
}
struct xml_node_attr *XML_GetNodeAttr(struct xml_node *node, char *name){
struct xml_node_attr *iterator = node->attrs;
while(iterator != NULL){
if(strcmp(iterator->name, name) == 0)
return iterator;
iterator = iterator->next;
}
return NULL;
}
char *XML_GetNodeValue(struct xml_node *node){
if(node->value == NULL){
int len = node->end_pos - node->start_pos - 1;
char *buffer =(char*)malloc(len);
memcpy(buffer, &xml_buffer[node->start_pos], len);
buffer[len] = '\0';
node->value = buffer;
}
return node->value;
}
void XML_RecursiveFreeNode(xml_node *node){
if(node->child)
XML_RecursiveFreeNode(node->child);
if(node->next)
XML_RecursiveFreeNode(node->next);
free(node);
node = NULL;
}
//! Liberar la memoria ocupada por xml_buffer
void XML_EndParse(char free_tree){
free(xml_buffer);
if(free_tree)
XML_RecursiveFreeNode(main_tree);
main_tree = current_node = NULL;
}
(Don't expect to find any OpenPStore here, as it is only a .xml parser)
2- Final GUI design of OpenPStore (Not a pic of a ps3, but from a PC. Though PS3 is exactly the same):
It will come in multiple colors, with an autochanger (to random color) feature.
If you want to I can keep you updated. JFW is real, and we are putting all our effort into it. Do not trust any fake release/leak! I don't know if the brick thing is true, but having seen all the work which has been done here, I would just trust it and not mess around.
Nobody is going to brick nobody's console unless someone leaks the JFW. And, even if it is leaked, if you don't use the leaked beta, you dont' have to worry about anything. And ofcourse, the final release won't have this anti-leak feature.
I also have to say thanks to everyone of you who do trust in us and give us support, as support and opinions is our only pay back for the work
Blipi
PS: If it was for me, I would translate JFW and it's homebrew to English and more languages, but as I am not the only one who works in this project, I don't know when English support will come or whether it will come or not. Sorry.
PS2: For those claiming evidence... Beta will be here soon, just wait. You cant trust us or not. I know what I'm doing, and I do know that it is real. I don't even have a ps3 to test OpenPStore too, and I have to keep asking for testers. More than 5 people have already tried OpenPStore, and every one of them could tell you that it is real.