Go Back  
Reply
 
Thread Tools
Old 10-17-2010   #1
GregoryRasputin
 
GregoryRasputin's Avatar
 
Join Date: Jan 2008
Posts: 14,468
Likes: 8,205
Liked 14,570 Times in 5,586 Posts
Mentioned: 1323 Post(s)
Tagged: 3 Thread(s)
KaKaRoTo - Why I Don?t Like The Hermes Payload

Yesterday we posted about KaKaRoTo discussing the payload mess here, he has since made a new blog post, explaining why he doesn't like Hermes payload.
First things first, the title says “why I don’t like the hermes Payload” so this has nothing to do with Hermes himself. I don’t know him, I never spoke to him, so I don’t know what kind of person he is and so I have no opinion on him personally.

Now, I want to make some things clear, I’ve seen a lot of people criticize me for ‘bashing Hermes’, and many people seem to think that I’m trying to say “I’m better than him” or something. Also, it looks like I created some confusion with my comments from my previous blog post. So I want to apologize and make sure there is no confusion anymore :

When I said that the hermes payload is ‘dangerous’, people misunderstood me.. no it is not specifically dangerous for your PS3, it won’t brick it or anything, the only ‘danger’ there is, is that it could (in some situations) crash… then you’d need to reboot, that’s it.. so don’t freak out about his work being harmful or anything, because as far as I know, it’s not!

Some people also told me “give credit where its due”, and I want to do it, I’ve always given credit to people, every time I achieved something, I gave credit to those who helped me achieve it. I’m not looking for fame here (if I did, I would have announced PL3′s release 3 weeks ago when I created it) I’m just having some fun in my free time doing something that I like. Hermes did contribute some nice things, and I appreciate what he did, mainly he figured out how to fix the controller issues with some games, that was something very difficult to fix and I’m surprised at how fast he came up with a solution and it was a smart solution and all I can say is “good job”. The other stuff he did in his payload, I don’t like that much, and that’s what I want to cover in this post..

I may have been ‘harsh’, but I don’t see the point in trying to be diplomatic, I’m a programmer, not a politician. I don’t like his code, and I speak my mind, I’m being honest, and I’m not trying to criticize him without any reason, as far as I know, I’ve stayed respectful and that’s all that matters to me.

To those who don’t want to know about all the technical details, let me ‘conclude’ here by saying that if the hermes payload works for you, then good, use it, I’m not telling people to stop using it, I’m not saying that PL3 works better either, maybe his payload works better in some situations, maybe not, but overall, the user’s choice should always be “whatever works for you”. The PL3 initiative is about having a standard repository for payloads, and having a common code base for everyone to work on, so in the future, PL3 might evolve faster and have more features, or maybe it won’t, the thing to note is that it’s better for payload developers to base their work off PL3. But again, this is meaningless for most users, apart from maybe clearing up the confusion about all these payloads and nobody knows which one to use.

Also, I talked about PL3, which is a common repository for contributors to work on, people seem to have nicknamed it “kakaroto’s payload” or “kakaroto’s pl3″, but I never said it was my payload, PL3 is PL3, it’s not all my work, and if you look at the commit log, you will see that I’m not the only contributor to it. PL3 itself integrates patches and solutions provided by Hermes, Waninkoko and Mathieulh, I improved some of their patches to make sure it works better for non-3.41 firmwares, but it’s still credited to be their work. PL3 is not my payload, PL3 is a payload repository for everyone. Also, PL3 as a project is a repository containing multiple payloads (default one, development one, dump_lv2, dump_elfs, etc..).

PL3 is not perfect, nothing in the world is perfect, so it might have bugs, it might not work for some people, who knows what might happen. But I never said that it was perfect, so people should stop thinking that I said that. It’s written more cleanly, it’s better in terms of the infrastructure behind it, but that’s the only thing I can vouch for.

Also for those complaining about me adding a donate button to the blog post, I don’t see how that’s relevant, I’m not begging people for money (and I haven’t received any donations in the last ~3 weeks just so you know). If you don’t want to donate, then don’t, no reason to ***** about it. I’ve put the button there so that people who appreciate the work and want to donate something have a way of doing it. I asked for donations before because I needed to buy a PS3 for development, I already raised enough money to buy it, so I don’t need any more donations, so I’m not asking people for donation money anymore, as simple as that.

Anyways, here are the more detailed/technical explanations on the reasons why I don’t like his payload :

First, the code is not clean, it’s unmaintainable. The fact that he gives his source code in .rar files instead of a git fork is the biggest issue I have with it. And yes, that does not matter for users, it only matters for developers. The problem with his method of delivery is that you have no way of knowing what he based his code off, so it’s hard to figure out what he changed.. also, when you find out his base, and do a diff, you get a huge diff for everything he did, all in one shot, and then you have to reverse engineer it to understand what he patched. That’s complicated and annoying for developers! For those who follow my twitter, you can see how many commits I do, I always like having “small commits” because each commit becomes independent, self explanatory and easy to review. It also makes things easier to integrate, if you want a specific thing, you just merge/cherry-pick that single commit, instead of copy/pasting code, and editing it to remove the clutter. The other reason I like git is that if he used it and I merge a commit from him, then the code stays credited to his name in the commit log, it allows me to have his code without ‘taking ownership’ of his work, it allows everyone to be credited for what they did, and I think it’s the first thing to have for an open source and community project.

The reason why I said his code could crash is because his payload got too big and couldn’t fit anymore in the allocated memory we have in the kernel (1296 bytes), so he decided to just move the code to a random position (0x7fff000 I think). This means that his payload will work as long as no application, game or kernel allocates memory which ‘randomly’ ends up in that area.. if it does, then the payload would get overwritten and the kernel will crash. The proper way of doing it (PL3 does that) is to allocate memory during the initialization of the payload, copy the functions we want in that memory that we own, and write those functions to be position independent so they would work no matter where they are placed in RAM.

Another reason is the way his syscall8 works, I tried to read his assembly and reverse engineer it, and I seriously was lost and couldn’t understand what was happening.. there are no comments (you’ll notice that my payload has a comment on almost every instruction), so how can I integrate his syscall if i don’t even know what it does… if at least it was on git, I could see the commit messages and understand what each chunk of code did, but he doesn’t use git, so…

The way he fixed the controller issue was also not very good, he patched two offsets to jump to a function that decides on some kind of enum on what response to return and you controlled that with his own system call 8.. why do something like that? it makes the fix dependent on people using this new syscall, and it’s useless when you can just patch it directly to return the right value.

I also didn’t like the fact that his code became a mess that is 3.41 independent, and it would have taken a huge amount of work just to try to make it work again on 3.15. I already spent time cleaning up the payloads and making them work for older firmwares, so why fork and write code that doesn’t integrate that, it just makes collaboration harder.

There’s also the whole syscall 35 versus 36 issue, but that has nothing to do with his payload since I added sc35 after he released his payload. It’s not about his payload being bad because it doesn’t support it, it’s simply about PL3 having a ‘superior’ (if I may say so) system call. What it means for users? nothing at the moment, maybe it will be used for doing fancier stuff later on, maybe you can map a game to your bluray and a different game to /app_home, that could be useful for users, but for now, it’s simply more flexible and cleaner code.

There are many other small things that I didn’t like, but it mostly just summarizes to “the code is not clean and it’s unmaintainable” and “he doesn’t use git”. Like I said, if you don’t care about that, then I see no reason for you not to use his payload. It doesn’t mean either that he’s not skilled, it simply means that he may lack experience in code sharing and experience in open source. But that doesn’t make his work any less valuable.

I hope this clears things up a bit. I criticized his work, said what I thought of it and people over reacted, I wanted to make sure people didn’t misunderstand me, and didn’t think I don’t respect Hermes for what he’s done already. Everything else is just drama and people trying to get attention.

If this post stirs up even more trouble, then so be it, I don’t think I have much more to say. I said what I think, people should take it or leave it. I do not however tolerate people insulting me for no reason at all. So please, criticize me all you want, just stay respectful.

Thank you,

KaKaRoTo

SOURCE




A word of warning, any stupid posts, flaming either KaKaRoTo or Hermes, will be deleted, if you don't have the brains to understand either of their work, dont bother posting insults, both these guys have done amazing work in the scene, so show them some respect, it gets a tad boring looking at forums, reading posts from ignorant people flaiming one of the devs.

Last edited by GregoryRasputin; 10-17-2010 at 08:32 AM.
GregoryRasputin is online now   Reply With Quote
Old 10-17-2010   #2
garyrobsi
Member
 
Join Date: Jan 2009
Posts: 123
Likes: 25
Liked 7 Times in 4 Posts
Mentioned: 3 Post(s)
Tagged: 0 Thread(s)
Men

Men Men Men.

attention

Attention

Less of the spam




Last edited by GregoryRasputin; 10-17-2010 at 08:35 AM.
garyrobsi is offline   Reply With Quote
Old 10-17-2010   #3
japsander
 
japsander's Avatar
 
Join Date: Jun 2009
Location: up sh*t creek without a paddle
Posts: 7,642
Likes: 2,745
Liked 5,250 Times in 2,510 Posts
Mentioned: 358 Post(s)
Tagged: 1 Thread(s)
my opinion is that if one works for you then use it, just like everyone has their own opinion on manager preference.

i myself still use hermes v3 simply because i have no need to change at the moment.

at least this guy has come forward with an in depth explaination of the differences and his views of hermes payload while at the same time stating that he is not beating on hermes. youve got to give him credit for that.

i just hope that maybe the devs could work together in the future and release exceptional code instead of bringing multiple versions of the same thing.

i can see this sort of thing happening again soon though when asbestos is finished.
__________________
Originally Posted by <GregoryRasputin>
There is nothing more epic, than blowing a Zombies head off, whilst having a poo
japsander is offline   Reply With Quote
Old 10-17-2010   #4
Seven_D
Member
 
Seven_D's Avatar
 
Join Date: Sep 2010
Location: Spain
Posts: 227
Likes: 24
Liked 15 Times in 14 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Wink

for me the best atm is hermes v4 ... the newest version is working better than anyone ,,...

idk for others if work so great , but now all is ok ... GTA IV and Tekken 6 works again!

Hermes v4 saved 2 of my legitim backups so for me is the best :D

__________________
PS3 40gb / to 500 gb internal , x2 HD external 160gb , x1 HD external 250gb + PS3 Break + P3 Hub (AT90USB162)+ Hermes v4b+PSN + payload + BM 2.0 + OM (gaya)(PS) + Steath Open Manager for online
Seven_D is offline   Reply With Quote
Old 10-17-2010   #5
subbass
Apprentice
 
Join Date: Sep 2010
Posts: 3
Likes: 0
Liked 0 Times in 0 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Impressive.

It sounds like Kakaroto has collaborated on many projects, he clearly has a lot of experience in that area and understands the upside to code sharing efficiently. Its also a really good call to start to try and pull the people working on the payloads into working on a project together instead of just duplicating each others work 80% (random statistic plucked from thin air) of the time.

I have written code a bunch of times primarily for my own use, when others have wanted to use it though I just archive it up and send it. I clearly had not really understood the benefits of using git, this post actually gave me some insight into that, perhaps Hermes was the same as myself. I am certainly a lot more informed as to why I should be using git or similar. A rather surprising place to find the information too

Its a shame Hermes left, he/she did a lot of good for sure though I cannot comment on the veracity of his code, I don't agree *at all* with his reasoning, when you let something out into the wild free, it takes on its own life and can end up where you may not agree, but if you were happy to give it away then you should live with all that means. I've put plenty of code out freely, as well as photography and artwork, someone will abuse it. Period.

Lets hope collaboration takes off, and the amazing speed of progress to date can only accelerate.

Massive respect to everyone involved, and I really can't wait to see more homebrew, if I find time I'm keen to start coding some homebrew projects myself.
subbass is offline   Reply With Quote
Old 10-17-2010   #6
bigbopper100
Member
 
Join Date: Oct 2010
Posts: 54
Likes: 20
Liked 6 Times in 5 Posts
Mentioned: 1 Post(s)
Tagged: 0 Thread(s)
a fair and well balanced post...nuff said
bigbopper100 is offline   Reply With Quote
Old 10-17-2010   #7
xanmato
Apprentice
 
Join Date: Oct 2010
Posts: 1
Likes: 0
Liked 0 Times in 0 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Originally Posted by japsander View Post
i just hope that maybe the devs could work together in the future and release exceptional code instead of bringing multiple versions of the same thing.
Thats what PL3 will be, if everyone jumps on it
xanmato is offline   Reply With Quote
Old 10-17-2010   #8
Godofgamblers
Apprentice
 
Join Date: Oct 2010
Posts: 1
Likes: 0
Liked 0 Times in 0 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I can vouch for Kaka, hermes payload v3 crashed on me a couple of times while I was on the xmb. Right before it goes into a non responsive black screen, a blue screen flashes (sort of like MS BSOD.) But in game mode it just freezes. I just wanted to post that Kaka is not talking out of his ass, like someone you might think.
Godofgamblers is offline   Reply With Quote
Old 10-17-2010   #9
NoisilySilent
Member
 
NoisilySilent's Avatar
 
Join Date: Mar 2008
Location: France
Posts: 185
Likes: 42
Liked 30 Times in 23 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
well, as an IT analyst i perfectly understand kakatoro.
no "reasonnably big" program can be maintained without
1) coding rules / styles
2) a revision control system
most of the time it doesnt take geniuses to achieve programs, it takes people following simple rules to combine each of their works, every one puts his brick to the wall.
there is a big diff between coding on ones own and coding among a community.
NoisilySilent is offline   Reply With Quote
Old 10-17-2010   #10
noisesolo
Apprentice
 
Join Date: Sep 2010
Posts: 3
Likes: 0
Liked 0 Times in 0 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
KaKaRoTo raises very valid points; maintainable code is extremely important, especially for a project in which we're still learning about the hardware. That said, lots of people on these projects are reverse-engineering geniuses and can probably continue Hermes' work, but it tends to alienate other programmers, whereas a well-maintained repository is very welcoming.

But if KaKaRoTo is correct that Hermes is just sticking code in arbitrary locations, I will have to avoid it for now. Sure, it may have a low chance of causing problems, but that sort of behaviour becomes difficult to deal with as the code expands if it's not addressed soon.

I've also really appreciated KaKaRoTo's technical explanations because it really helps support his concerns and they're not so detailed that it excludes anyone that's not part of this scene.
noisesolo is offline   Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



PS3Hax.net is Copyright © 2010-2013.
Use of this site is governed by our Terms of Use and Privacy Policy. All Trademarks and images are owned by their respected owners.
Posts and links are subject to each author on this forum and are no way affiliated with the operations and/or opinions of ps3hax.net
All times are GMT -5. The time now is 12:39 PM.