Drop function for photon drops
Moderators: BlueCrab, Aleron Ives
- RyoDC
- Mental DCEmu
- Posts: 366
- https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Drop function for photon drops
What is the drop function for photon drops?
Does it depend on some PRNG and factors? Then what are this factors?
Probability table for each monster? Planet of char?
Or it's not calculated each time you kill a monster?
Does all possible item drops for all monsters and crates are calculated before you enter the level?
Or it's calculated on fly when you slash the crate or kill a monster?
Would really be glad if some of you will uncover the details.
Thanks.
Does it depend on some PRNG and factors? Then what are this factors?
Probability table for each monster? Planet of char?
Or it's not calculated each time you kill a monster?
Does all possible item drops for all monsters and crates are calculated before you enter the level?
Or it's calculated on fly when you slash the crate or kill a monster?
Would really be glad if some of you will uncover the details.
Thanks.
How do I try to build a Dreamcast toolchain:
Re: Drop function for photon drops
It's calculated as a tool random drop from the itempt, speaking for the client [gc and xbox] it's done on the fly by the host client, the leader of the room. Pdtops can drop from any monster as a result just like other tools like monomates etc.
I would assume you want more specifics but I'm on my tablet atm and don't have access to my own sources to provide examples
I would assume you want more specifics but I'm on my tablet atm and don't have access to my own sources to provide examples
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
By tool, you mean, item? What is itempt?
"host client" - you mean, the leader of the room client have the PRNG and his clients sends packets containing item code in responce when other players clients asks for an items?
"host client" - you mean, the leader of the room client have the PRNG and his clients sends packets containing item code in responce when other players clients asks for an items?
I'm more interested in pc version, pso bbspeaking for the client [gc and xbox]
How do I try to build a Dreamcast toolchain:
- BlueCrab
- The Crabby Overlord
- Posts: 5658
- Joined: Mon May 27, 2002 11:31 am
- Location: Sailing the Skies of Arcadia
- Has thanked: 9 times
- Been thanked: 69 times
- Contact:
Re: Drop function for photon drops
By tool, he means items that would normally be in a Green box, like Monomates, Monofluids, Disks, etc.
ItemPT refers to one of the files that is used by the game to determine drops. On PSO for PC and PSO for Dreamcast, this file is called ItemPT.afs. On the later versions of the game (GC, Xbox, BB), it's called ItemPT.gsl. This particular file has all the data relating to the chance that enemies/boxes drop anything and what types of stuff they'll drop when they do.
By the host client, he indeed means that the leader of the team does the calculations to determine what drops when anyone kills an enemy or breaks a box. It is the PRNG running on that client that determines what drops. Then that user sends out a packet detailing what dropped.
It's mostly the same on Blue Burst, except that the server does this rather than the leader of the team. Thus, in reality, the server could be using a completely different algorithm to figure out what drops than what the client does, if it is programmed in such a way.
You could take a look at the Sylverant code if you're really interested in how to do this kind of stuff (and you want to know more before Lee happens to come back with additional information, as he's pretty much the source on all of this stuff). The code for drops may be ugly, but it is at least well-commented.
ItemPT refers to one of the files that is used by the game to determine drops. On PSO for PC and PSO for Dreamcast, this file is called ItemPT.afs. On the later versions of the game (GC, Xbox, BB), it's called ItemPT.gsl. This particular file has all the data relating to the chance that enemies/boxes drop anything and what types of stuff they'll drop when they do.
By the host client, he indeed means that the leader of the team does the calculations to determine what drops when anyone kills an enemy or breaks a box. It is the PRNG running on that client that determines what drops. Then that user sends out a packet detailing what dropped.
It's mostly the same on Blue Burst, except that the server does this rather than the leader of the team. Thus, in reality, the server could be using a completely different algorithm to figure out what drops than what the client does, if it is programmed in such a way.
You could take a look at the Sylverant code if you're really interested in how to do this kind of stuff (and you want to know more before Lee happens to come back with additional information, as he's pretty much the source on all of this stuff). The code for drops may be ugly, but it is at least well-commented.
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
Thanks for your kind answer.
What packets does it send exactly?
Any clue?
What packets does it send exactly?
Any clue?
How do I try to build a Dreamcast toolchain:
- BlueCrab
- The Crabby Overlord
- Posts: 5658
- Joined: Mon May 27, 2002 11:31 am
- Location: Sailing the Skies of Arcadia
- Has thanked: 9 times
- Been thanked: 69 times
- Contact:
Re: Drop function for photon drops
Packet type 0x62/0x6D (I don't remember which, off the top of my head), with a subtype of 0x60 is used to request a drop from an enemy, whereas subtype 0xA2 is used to request a drop from a box (the latter isn't used on the Dreamcast versions or on PSO for PC).
The item itself is sent to the team with type 0x60, subtype 0x5F.
Look at the Sylverant code for more information on how I handle those on the server (specifically, you'll probably want to look at the files subcmd.[ch]). I'm sure I'm probably doing stuff wrong, but it at least works.
The item itself is sent to the team with type 0x60, subtype 0x5F.
Look at the Sylverant code for more information on how I handle those on the server (specifically, you'll probably want to look at the files subcmd.[ch]). I'm sure I'm probably doing stuff wrong, but it at least works.
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
Interesting, what version of software SCHTHACK uses.
Maybe I can sneak into a executing code at runtime and look for a seed value. If it uses rand() function, of course.
Maybe I can sneak into a executing code at runtime and look for a seed value. If it uses rand() function, of course.
How do I try to build a Dreamcast toolchain:
- BlueCrab
- The Crabby Overlord
- Posts: 5658
- Joined: Mon May 27, 2002 11:31 am
- Location: Sailing the Skies of Arcadia
- Has thanked: 9 times
- Been thanked: 69 times
- Contact:
Re: Drop function for photon drops
Remember, drops are handled on the server on Blue Burst, and the server probably won't respond kindly if you try to insert your own drops into the packet stream. That, and I think the Blue Burst client required for Schtserv has anti-cheating stuff included with it too.
Simply put, if you're trying to cheat and get items you didn't earn, then you should stop now. Photon drops really aren't that hard to find.
Simply put, if you're trying to cheat and get items you didn't earn, then you should stop now. Photon drops really aren't that hard to find.
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
My idea got much further then just that.Remember, drops are handled on the server on Blue Burst, and the server probably won't respond kindly if you try to insert your own drops into the packet stream. That, and I think the Blue Burst client required for Schtserv has anti-cheating stuff included with it too.
I was thinking about affecting the enthropy source for the drop function on the server side to make photon drops appear more oftenly.
I even made a little research on that topic. I learned what is congruent generators is and researched a rand() function and built nice graphs showing the distribution of values in stream (and what can I tell, this distribution really looks uniform with some random peaks here and there which appear without any noticeable periodity\predictivity).
But the great idea was not even that.
I was reading a book on economics.
I thought about justice and equality in society.
And then I though on that in context of PSO.
For example, one player can spent a lot of energy playing PSO.
But he can met only a one PD during his playtime.
At the same time, we have another player, that spent, let's say, for example, 1/20 of a time then the first player (ans spent much less energy). But he found a 10 PD's, cause of stupid drop function.
The second player was just lucky.
And there's no equity in that.
You can play 100 hours and craft 0 PD, and you can play 20 minutes and find 10.
Like, chance of hitting the tail of a coin not increasing in time.
That's the weird thing.
Point of my research is to explore those random generation functions in terms of player's equality.
I want for distribution to be more fair and righteous.
How do I try to build a Dreamcast toolchain:
- BlueCrab
- The Crabby Overlord
- Posts: 5658
- Joined: Mon May 27, 2002 11:31 am
- Location: Sailing the Skies of Arcadia
- Has thanked: 9 times
- Been thanked: 69 times
- Contact:
Re: Drop function for photon drops
The early versions of PSO are quite bad in the PRNG department, from what I remember. That said, drops on schtserv most likely don't have that exact same problem, as (I'm assuming) they didn't recreate the bad PSO PRNG for the server.
That said, I wouldn't count on any sane way to affect the PRNG on a server without either A) getting yourself banned or B) it taking far more work than would be useful to do.
Also note that the chance of getting each item is defined in the ItemPT file that the server uses. These have entries for each section ID and difficulty level, which also explains why some people find it easier to get certain types of items.
That said, I wouldn't count on any sane way to affect the PRNG on a server without either A) getting yourself banned or B) it taking far more work than would be useful to do.
Also note that the chance of getting each item is defined in the ItemPT file that the server uses. These have entries for each section ID and difficulty level, which also explains why some people find it easier to get certain types of items.
- K_I_R_E_E_K
- Mental DCEmu
- Posts: 302
- Joined: Mon Oct 27, 2008 6:47 pm
- Has thanked: 0
- Been thanked: 3 times
Re: Drop function for photon drops
If you need a server to test your ideas you can always ask EDEN server staff team as they have a test server exactly for that kind of stuff, it has 1 account and i think they might let you tweak a few things so you can test it yourself.
- Aleron Ives
- DCEmu Nutter
- Posts: 871
- Joined: Wed Jan 05, 2011 2:15 pm
- Location: California
- Has thanked: 0
- Been thanked: 25 times
- Contact:
Re: Drop function for photon drops
This is a fundamental flaw in all games that have fake difficulty in the form of randomised item drops and is not limited to PSO. You can change the drop formula to make drops easier, but you can't fix the inherent unfairness of random drops without removing them completely and making all items obtainable through non-random means (such as quest rewards). The game has too many items to make that a practical solution, though, which means we're forced to accept the inequity of random drops.RyoDC wrote:For example, one player can spent a lot of energy playing PSO.
But he can met only a one PD during his playtime.
At the same time, we have another player, that spent, let's say, for example, 1/20 of a time then the first player (ans spent much less energy). But he found a 10 PD's, cause of stupid drop function.
The second player was just lucky.
And there's no equity in that.
"Fear the HUnewearl."
Re: Drop function for photon drops
psobb at one point, actually used to kinda handle drops itself, haven't checked with a proxy lately but the client used to tell the server what to drop when you break a box for example, on sega they used to have very much fun with this inserting their items in to the fixed box code and getting anything they wanted. Obviously we parse the maps server side and tell the client what we want them to have not what the client wants. Solved a lot of headaches.
Anyway you're not going to be able to affect the server in any meaningful way using the client or intercepting data between them, the server also knows what should be on the floor when you kill / break a box so any attempt to manipulate this on pickup is going to be a massive red flag anyway, it actually triggers an id miss match anyway. There's no seed on the client for drops the server does all the heavy lifting and just tells the client what it wants it to have after all is said and done.
Anyway since you are being a douche bag and attempting to cheat on a server where we do not allow it i will not supply you with any more information now. If you want to cheat at pso, run your own server.
Anyway you're not going to be able to affect the server in any meaningful way using the client or intercepting data between them, the server also knows what should be on the floor when you kill / break a box so any attempt to manipulate this on pickup is going to be a massive red flag anyway, it actually triggers an id miss match anyway. There's no seed on the client for drops the server does all the heavy lifting and just tells the client what it wants it to have after all is said and done.
Anyway since you are being a douche bag and attempting to cheat on a server where we do not allow it i will not supply you with any more information now. If you want to cheat at pso, run your own server.
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
Oh thank you! Nice to hear that!Anyway since you are being a douche bag
Oh really? Did I?attempting to cheat on a server
You have completely flip and perverted my original intent inside out.If you want to cheat at pso, run your own server.
Anyway, thank you guys for your sincere thoughts and comments.
I will continue to investigate PSO protocol and random functions (as well as random processes).
I don't think this is the only one solution, actually. For example, after each unsuccessful flip of coin we can increase the probability of item drop, that it, the further you get, then more chance you get. There's a lot of solutions I think. Really lot.The game has too many items to make that a practical solution, though, which means we're forced to accept the inequity of random drops.
I'm not that stupid for not to understand all those aspects and that most of the game logic are placed on the server side, not a client side, and pretty much everything (incoming data) are validated and tested. Also I'm not that dumb to try to cheat on a schtserv from my account (or any account whatever - be banned by ip address is not a good perspective as the same by the guild card).Anyway you're not going to be able to affect the server in any meaningful way using the client or intercepting data between them, the server also knows what should be on the floor when you kill / break a box so any attempt to manipulate this on pickup is going to be a massive red flag anyway, it actually triggers an id miss match anyway. There's no seed on the client for drops the server does all the heavy lifting and just tells the client what it wants it to have after all is said and done.
What I voiced here was just some crazy assumptions, believe me, I'm not gonna spend my entire life sitting in interactive disassembler and search for answers in tons of opcodes, or analyzing it's code with static analysis tool hoping to find some strcpy accepting more symbols that it has to accept (old good buffer overflow attack).
Or you really think I'm gonna affect entropy generator or inject myself into a running code with some shellcode?
Jesus Christ, Lee, you make me sad.
How do I try to build a Dreamcast toolchain:
- Aleron Ives
- DCEmu Nutter
- Posts: 871
- Joined: Wed Jan 05, 2011 2:15 pm
- Location: California
- Has thanked: 0
- Been thanked: 25 times
- Contact:
Re: Drop function for photon drops
You could do that, although that would require storing the number of times a player has killed each type of enemy so the server would know how to influence their drop rates, which would be a real pain. With each BB account holding four characters, four difficulties per character, and several dozen different enemies spread across three episodes, that's a lot of data for the server to track for a single account.RyoDC wrote:I don't think this is the only one solution, actually. For example, after each unsuccessful flip of coin we can increase the probability of item drop, that it, the further you get, then more chance you get. There's a lot of solutions I think. Really lot.
"Fear the HUnewearl."
- K_I_R_E_E_K
- Mental DCEmu
- Posts: 302
- Joined: Mon Oct 27, 2008 6:47 pm
- Has thanked: 0
- Been thanked: 3 times
Re: Drop function for photon drops
If you think the data you're getting here needs to be filtered to the point where it becomes painfull (such as ignoring the trolling and flaming that the moderators aren't really dealing with) you can always try eden server staff team for help, either publicly or privatly as long you explain things in detail and you are honest about your intentions then it won't be a problem getting some info (teorical and pratical) without having to deal with disrespect.
Some of things i did on eden were done with staff aproval and even the staff helped me take certain screenshots, a ship problem was left unchecked so i could hang forever when entering it, that and players still had a ship to play on (main ship)
So if you really want to know how things work, maybe you can contact them, explain your goal and it's possible they might even give you an enviroment to test theories.
Obviously there will be limitations, if you for example get 10 PBs in your test, they will most likely ask you not to share them with the community players, just like the items i have by running the game once, they are only for me.
Who knows, maybe you'll end up improving the server in some new way.
Some of things i did on eden were done with staff aproval and even the staff helped me take certain screenshots, a ship problem was left unchecked so i could hang forever when entering it, that and players still had a ship to play on (main ship)
So if you really want to know how things work, maybe you can contact them, explain your goal and it's possible they might even give you an enviroment to test theories.
Obviously there will be limitations, if you for example get 10 PBs in your test, they will most likely ask you not to share them with the community players, just like the items i have by running the game once, they are only for me.
Who knows, maybe you'll end up improving the server in some new way.
- BlueCrab
- The Crabby Overlord
- Posts: 5658
- Joined: Mon May 27, 2002 11:31 am
- Location: Sailing the Skies of Arcadia
- Has thanked: 9 times
- Been thanked: 69 times
- Contact:
Re: Drop function for photon drops
Let me ask flat out, what is your intention in all of this, RyoDC? Why do you specifically want to know about Photon Drops on Blue Burst? No offense, but I've read through everything in the thread, and the only constant I see is that you are saying that not enough Photon Drops seem to drop for some people, which would logically lead many people (myself included) into believing that you wish to find some way to cheat the system and get it to drop more Photon Drops.
As Aleron Ives already said in the thread, this is a problem in any online game, pretty much. Drop rates are uneven and sometimes completely unfair to certain people that may want certain items.
Another thing to note is that many people in the PSO world don't respond very kindly to anyone wanting to even change the drop rates of PSO at all. Hell, I had people complaining about the availability of server-side drops on Sylverant even though they use the same rates as the games themselves (at least on the ship Iselia they do and pretty much will). The people complaining had no intention of ever using the server-side drops either, they were just worried that people they played with would use them and thus be tainted by the fact that I use a different PRNG than PSO does internally. Yes, just the random number stream being even slightly different made some people extremely unhappy with me having server-side drops available as a feature on Sylverant. Some people are that specific about their views that things should be played exactly to Sega's specifications.
I suggest that if you're serious about wanting to study PSO's protocols and such that you look at the code of the open-source PSO servers out there. You have 3 to pick from, each focusing efforts in different places. If you really want to learn about Blue Burst specifically, look at the code to Tethealla's ship server. It'll have the most data on Blue Burst of all the PSO servers out there with source code released. If you're more interested looking at the broad picture of all the different versions of PSO out there, then look at Newserv and Sylverant. If you're specifically interested in drops, look at Sylverant's code for a general idea of the process -- I've documented exactly what my code does in the comments in the source code for that part, so you don't even have to process my loopy code.
As Aleron Ives already said in the thread, this is a problem in any online game, pretty much. Drop rates are uneven and sometimes completely unfair to certain people that may want certain items.
Another thing to note is that many people in the PSO world don't respond very kindly to anyone wanting to even change the drop rates of PSO at all. Hell, I had people complaining about the availability of server-side drops on Sylverant even though they use the same rates as the games themselves (at least on the ship Iselia they do and pretty much will). The people complaining had no intention of ever using the server-side drops either, they were just worried that people they played with would use them and thus be tainted by the fact that I use a different PRNG than PSO does internally. Yes, just the random number stream being even slightly different made some people extremely unhappy with me having server-side drops available as a feature on Sylverant. Some people are that specific about their views that things should be played exactly to Sega's specifications.
I suggest that if you're serious about wanting to study PSO's protocols and such that you look at the code of the open-source PSO servers out there. You have 3 to pick from, each focusing efforts in different places. If you really want to learn about Blue Burst specifically, look at the code to Tethealla's ship server. It'll have the most data on Blue Burst of all the PSO servers out there with source code released. If you're more interested looking at the broad picture of all the different versions of PSO out there, then look at Newserv and Sylverant. If you're specifically interested in drops, look at Sylverant's code for a general idea of the process -- I've documented exactly what my code does in the comments in the source code for that part, so you don't even have to process my loopy code.
Re: Drop function for photon drops
Basically you're too dumb to figure out the files yourself, and too stupid to look at the source code, yet you try to insult me, the one who basically did most of the foundation work, which the server side drops system in soda's server is based on, and quite a bit of bluecrabs implementation too.
Also note it was bluecrab who mentioned you where using it to cheat the system.
You make me sad.
Also note it was bluecrab who mentioned you where using it to cheat the system.
You make me sad.
- RyoDC
- Mental DCEmu
- Posts: 366
- Joined: Wed Mar 30, 2011 12:13 pm
- Has thanked: 2 times
- Been thanked: 0
Re: Drop function for photon drops
Well, you know, we can drop in long sheaf of arguments here, but let's keep things simple.Lee wrote:Basically you're too dumb to figure out the files yourself, and too stupid to look at the source code, yet you try to insult me, the one who basically did most of the foundation work, which the server side drops system in soda's server is based on, and quite a bit of bluecrabs implementation too.
Also note it was bluecrab who mentioned you where using it to cheat the system.
You make me sad.
You insulted me, calling me 'douchebag'. As far as you can know (I hope you know), when you insult people, they strongly tend to do the same thing in return. Even more, they act pretty aggressively. They can even hit you, or harm you physically.
I'm not kinda of a guys, who get mad each time someone accused them, especially at the Internet.
But when it happens without a reason, or logic argument, I tend to wonder.
I hadn't look at the source code not because I'm dumb, or stupid.
I did it because I decided first to ask for a general information, whatever I can gather on topic. And I knew, that guys here are pretty much kind and benevolent, that they could always help.
I really didn't expected that somewhere out of the dark will came such an arrogant and unpleasant person as you, so I really didn't (and even couldn't) expect such a development of our talk.
Also, don't try to pass the buck to the BlueCrab, cause you was the first who started throwin' the snubs.
What else can I say.
At the weekend I finally will have some free time so I can look into the code (which was my initial idea to do after gathering info from forums).
Last edited by RyoDC on Fri Mar 14, 2014 5:42 pm, edited 1 time in total.
How do I try to build a Dreamcast toolchain:
Re: Drop function for photon drops
That's actually surprising, I know the PRNG in the gamecube versions is a lot better than what rand() normally does (r = r * a + b). It looks more like a hash function, which would be expected for a decent PRNG.BlueCrab wrote:The early versions of PSO are quite bad in the PRNG department, from what I remember.