Misc Questions about Tethealla's Technicalities

Yume

Member
Hey!

I'm new here on the forums, came here out of passion for PSO, wanting to find how I could experience it again, and found out about the Tethealla Project (as well as the Ephinea server, which I may try out at some point).
I just started messing with Tethealla a bit, and have a few questions I would like to ask here.

(Note: All my files were acquired from the OP in the following thread, by Sodaboy:
https://www.pioneer2.net/community/threads/tethealla-server-setup-instructions.1/)

1. I noticed that the Psobb.exe provided in the client has the string "TethVer%d%d%d" in its hex code. I eventually had to change this to a version that matches my ship server, but I was left wondering: what do the multiple "%d" mean? Is the code acquiring the version from another file?
Bear in mind I have 0 experience hex editing files, aside from what little I learned to get my Psobb.exe to work :)

2. I noticed the ship server folder has a file called "bb_items.txt", where it mentions a /makeitem command and gives instructions on how to use it. I've tried using it on the first account created (which I assume has full GM rights), inputting it in-game on regular chat in Pioneer 2 area, but to no apparent avail. No items dropped or appeared in inventory. Do I need some tool to make this work?

3. On the note of special commands, is there any list with all existing commands for both GM and non-GM players implemented in Tethealla?
I found this thread for GM commands here on the forums (albeit with no information on what arguments they take and what exactly they do):
https://www.pioneer2.net/community/threads/gm-command-list.11/
Haven't found any non-GM commands, although I believe I read somewhere there's a /bank one to toggle a shared bank.

4. I am currently using the DAT version of the server. I realize that it will be (or already is) discontinued, and that it is a more rudimentary approach compared to the MySQL version.
I'd like to know a bit more about it though: aside from the limit on the number of accounts imposed in the DAT version, what other issues could I expect with the DAT version? If I only hold up to a maximum of 4 accounts and concurrent players on my server, will using the DAT version ever be an issue?

5. I'd like to know more about drop rates. I'm not too worried about making them identical to the official server's drop rates, but does Tethealla come with "near-authentic" drop rates from the start? I define "near-authentic" as: all items that dropped in official server still drop here, all items that were hard to get (red boxes or otherwise) are still hard to get here, individual enemy and Section ID specific drops are respected, etc.
I'm assuming the files that define the drop rates are in "param" folder of the ship server? I found some tools here on the forums, on a post by Soly, that should be able to allow me to check and edit drop rates (https://www.pioneer2.net/community/threads/solys-stash.1001/), but I can't get them to work (whenever I run them, I simply get the generic Windows message "Program stopped working").

6. Just something I want to make sure about, and didn't have the chance to test yet: if the server and clients are all within the same private network (physically or through a VPN), and the server is bound to a private IP within said private network, there is no need to forward ports in the router, correct?

7. Lastly, if I may ask out of curiosity, is the game client identical to the official one (aside from the Tethealla strings and IP changes in Psobb.exe), or was it already modded in other ways? Was the additional modding required to connect to a private server, or simply quality of life modifications (like Gameguard removal or something)?


Thank you in advance for your answers!

Even though I played in a private server in the past, I'm not familiar with the technical side of it at all. Now I'm interested in playing around with a PSO server, and curious about many of its technicalities, so please answer with as much info as you can bother to provide, and please excuse my noob questions ;)
I greatly appreciate the amount of work that went into this project, a very important effort in keeping the PSO love alive :D
 

Soly

Member
Hello!
I'll try to address what I can.

1. %d is a string format parameter, the game changes that to internal numbers in this case 1 25 13 I think, to make the final string.
You can use a "hardcoded" string with whatever version you want, it's ok.

2. bb_items as the file has in its contents, is to explain the item hex code formatting. To be honest you can just grab my item maker
and go from there.

3. You already saw the commands topic, it includes non gm commands too like bank, npc, ignore, lang, arrow, setpass
Most of these either take no parameters or a number.

4. There is really no drawback, but you miss things like easily editing character data or resetting a password
(i dont think is really a drawback)
For example, the most useful thing I find on mysql for a private server (really private) is to edit my own character data
and mess around with it. (I do mostly for development tho but that's other topic)
If the newest server version gets released with SQLite support, a tool will be provided to migrate your data.

5. The files are defined in the folder "drop", in the login server, they are text files but we don't use that anymore.
After I made the tool you already saw, we moved onto the original drop files. I could help you with that later on.
Those are the original drops, yes, although EP4 nobody knows cuz that was never in the hands of players/3rd party ppl (good enough for me)

As for my tools, every single one, use Net Framework 4.5,
Only work in w7 (or vista?) and above but require to install the framework
w8-10 should work right away without installing anything.

6. You shouldn't need if you are using a VPN yeah, but I don't really like that, I always just forward dem ports and be done with it.

7. It should be the same, yeah some GG patches, IME patch and some other stuff, but in terms of gameplay it should be the same.
You can also use Tofuman's launcher which has a widescreen patch (idk how outdated is atm, he an myself have fixed more UI stuff for the widescreen patch).
 

Yume

Member
Hey Soly, thanks for answering!
I'd like to further clarify some of those points.

1. %d is a string format parameter, the game changes that to internal numbers in this case 1 25 13 I think, to make the final string.
You can use a "hardcoded" string with whatever version you want, it's ok.
You mean like the parameters you use in a printf in C? Do you know where it is getting those numbers then? I had already hardcoded my own string on top of it, but I was left wondering.

2. bb_items as the file has in its contents, is to explain the item hex code formatting. To be honest you can just grab my item maker
and go from there.
I understand that the file lists the hex codes for each item and item modifier, but it also mentions, for example:
"You type this into PSO:
/makeitem 023FC8D3,57027F25,AF1D270A,78C80710"

Isn't /makeitem a command that you should be able to use in-game, or am I missing something?

5. The files are defined in the folder "drop", in the login server, they are text files but we don't use that anymore.
After I made the tool you already saw, we moved onto the original drop files. I could help you with that later on.
You mean the version I have still uses those .txt files, but the latest in development uses the files you mention in your tools thread, like the ItemRT.gsl? Looking at the source code of my version I did notice login_server.c is loading those "epX_mob_Y_Z.txt" files, but doesn't seem to load any "epX_box_Y_Z.txt" files. Are box drops being loaded elsewhere on my version?
Also, can you briefly describe me what data is being loaded from ItemPT.gsl?

Those are the original drops, yes, although EP4 nobody knows cuz that was never in the hands of players/3rd party ppl (good enough for me)
Was that because we got PSO Ep1&2 for Gamecube and we had access to its client-side drop rates files, but never got access to Ep4's which were only ever on Sega's server side? Are Gamecube's Ep1&2 drops identical to PSO BB's Ep1&2's official drops?

As for my tools, every single one, use Net Framework 4.5,
Only work in w7 (or vista?) and above but require to install the framework
w8-10 should work right away without installing anything.
Turns out I only have .Net Framework 4.0, so I guess that explains it. I'll get around to updating it and trying your tools at some point.

Thanks again ;)
 

Soly

Member
You mean like the parameters you use in a printf in C? Do you know where it is getting those numbers then? I had already hardcoded my own string on top of it, but I was left wondering.
Exactly that. They should be around 0x006F4C84 and 0x006F4D81 (virtual addresses, iirc) (Tofuman found this, I did nothing)

I understand that the file lists the hex codes for each item and item modifier, but it also mentions, for example:
"You type this into PSO:
/makeitem 023FC8D3,57027F25,AF1D270A,78C80710"

Isn't /makeitem a command that you should be able to use in-game, or am I missing something?
The command is actually /item

You mean the version I have still uses those .txt files, but the latest in development uses the files you mention in your tools thread, like the ItemRT.gsl? Looking at the source code of my version I did notice login_server.c is loading those "epX_mob_Y_Z.txt" files, but doesn't seem to load any "epX_box_Y_Z.txt" files. Are box drops being loaded elsewhere on my version?
Also, can you briefly describe me what data is being loaded from ItemPT.gsl?
Yes. the development version, Ephinea and Ultima use ItemRT.gsl, I can provide you code to use this file aswell, you'll require to recompile the login server, tho.
If you look carefully, around the function you will see 3 assignments of bytes (buffer[0xXX] = 0xYY), this is where mob or whatever it is gets changed to box.

Was that because we got PSO Ep1&2 for Gamecube and we had access to its client-side drop rates files, but never got access to Ep4's which were only ever on Sega's server side? Are Gamecube's Ep1&2 drops identical to PSO BB's Ep1&2's official drops?
Yup... I don't know if they are the same, I only played in private servers of BB (just one) but I assume they are the same or close enough, either way I'm not bothered.
 

Yume

Member
Hey Soly, let me just try to clarify a few last things ;) Unfortunately time has been short for me, and I didn't have the time to explore this project much further on my own.

Exactly that. They should be around 0x006F4C84 and 0x006F4D81 (virtual addresses, iirc) (Tofuman found this, I did nothing)
While I have some programming experience, I don't have much experience in things like hex editing and translating to virtual memory. Would you know which file (is it Psobb.exe itself or another?) and at which offset within the file these client version numbers are in? I'm mostly curious since I couldn't find any version numbers within Psobb.exe (I might've missed them), only saw the string format parameters, and it puzzles me where exactly they're physically stored.

Yes. the development version, Ephinea and Ultima use ItemRT.gsl, I can provide you code to use this file aswell, you'll require to recompile the login server, tho.
Is there a public repository with the latest development versions?
Either way, I'm assuming you guys will eventually release a new version of Tethealla in these forums when you find it to be the right time, correct? If so, I can just wait and play around with this one in the meantime ;)

Yup... I don't know if they are the same, I only played in private servers of BB (just one) but I assume they are the same or close enough, either way I'm not bothered.
Yeah, I'm not too concerned either. I simply wouldn't like if, for example, the best EP4 rares were dropping left and right, or not dropping at all, which, from what you stated, doesn't seem to be the case at all. As long as the player experience is kept identical or similar to what we love about this game, it's more than enough.

Thanks :D
 

Yume

Member
Soly, can I get some final clarifications to my questions (see post above)? After this I won't be bothering you for a while, so don't worry ;)

I'd also like to ask again (since the question apparently went unnoticed):
Can you briefly describe me what data is being loaded from ItemPT.gsl? If the version I'm using uses .txt files for drop rates, what does this file contain?

Thanks.
 

Yume

Member
Soly, your reply to my last questions was edited to the single character "s" and then deleted, leaving my last questions unanswered. Not sure why that happened or if you voluntarily did it yourself, but could you kindly leave some reply for my last questions please? ;)

Thanks.
 

Soly

Member
Weird.... I don't think I can change what you have quoted, even if I were to change my reply.

Anyway, ItemPT has quite a few things, like which tier of common weapons you get based on the area where it drops, the probability of those weapons coming with stats, meseta of enemies and boxes, if an enemy drops common weapons, armors, meseta, etc

Get the ship source code, open def_tables.h and I think the first struct there is the PT, you should be able to find everything there.
Or you can grab my PT editor and that will also have some names and stuff there.
 

Yume

Member
Hmm? You didn't change what I have quoted. For clarification, what happened was:
1. You replied to my post.
2. I noticed your reply but did not have the time to read it at that point.
3. Your reply was then edited to have only the text "s".
4. I asked why you did that and if you could revert it back, quoting the edited reply.
5. Your edited reply was then deleted.
6. I asked why it was deleted, and if you could provide me the answers again.
7. You replied back and here we are.

Not sure what happened but... moving on, this is the post that was left unanswered after your original answer was deleted:
https://www.pioneer2.net/community/...ut-tetheallas-technicalities.2673/#post-27943

If you would be so kind to answer it again, I'd appreciate it ;) Also, I recall that, in your original answer, you had shared a link to some site regarding translation between virtual and real addresses; reshare it again as well if you don't mind.

Thanks.
 
Last edited:

Soly

Member
Alright
1. Everything is in psobb.exe, all other files are just assets. The offsets I already told you where, use the SO link to help you find them.
2. No there is not a public repository.
I am nearly finished with a C# login and a C ship which is missing language stuff. Like 2 persons are testing it, but since is not ready yet there are no public binaries either.
3. Is not a question?.
 

Yume

Member
Alright
1. Everything is in psobb.exe, all other files are just assets. The offsets I already told you where, use the SO link to help you find them.
2. No there is not a public repository.
I am nearly finished with a C# login and a C ship which is missing language stuff. Like 2 persons are testing it, but since is not ready yet there are no public binaries either.
3. Is not a question?.

Yay! Guess I'll copy all the answers before someone/something removes them again :p
And yup, my last paragraph was a statement, not a question ;)

Thanks!
 
Top