Just a few questions from a newbie.

Sylverant is a homebrew open source server for Phantasy Star Online. Dreamcast users still play PSO online with this server even today! This is the official forum for both the online game server as well as the open source project itself. Feel free to post and get a gathering started online! We can also show you how to get connected!

Moderators: BlueCrab, Aleron Ives

Post Reply
XS-Nitrogen
DCEmu Newbie
DCEmu Newbie
Posts: 2
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Fri Mar 11, 2011 12:35 pm
Has thanked: 0
Been thanked: 0

Just a few questions from a newbie.

Post by XS-Nitrogen »

Salutations :D

I was pretty happy to see that there's another PSO server out there, particularly one for *nix. I'm interested in trying to host a server, for personal use more than anything (My friends with PSO don't have BBAs, so if we play, it's splitscreen), and I have some questions.

1) In regards to the save and restore commands, I could be wrong, but I think Schthack had something similar that only worked on DreamCast and PC. Could the one on Sylverant be expected to work with PSO GC? And, the million-dollar question (For me, at least) is whether or not it works cross-region, so I can move a US-region character to my JP-region memory card. That's the main reason I'd want to have my own server, actually; Moving characters between my US memory card for splitscreen with my friends, and moving them back to play on my Q (Which is horribly underplayed). If we aren't sure, I could probably find a spare couple of memory cards and try it out.

2) I didn't see anything specifically relating to this, but could I configure Sylverant to have an option to forward to another server such as Schthack or the official Sylverant server? This is more of a convenience thing than anything. I could always forward to either manually, but this would be a lot easier.

3) I know I'm probably the only one who's ever asked this, and might be the only one who ever will, but how much work would one need to do in order to compile Sylverant on a SPARC machine running Solaris 10?
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5652
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Just a few questions from a newbie.

Post by BlueCrab »

XS-Nitrogen wrote:Salutations :D

I was pretty happy to see that there's another PSO server out there, particularly one for *nix. I'm interested in trying to host a server, for personal use more than anything (My friends with PSO don't have BBAs, so if we play, it's splitscreen), and I have some questions.

1) In regards to the save and restore commands, I could be wrong, but I think Schthack had something similar that only worked on DreamCast and PC. Could the one on Sylverant be expected to work with PSO GC? And, the million-dollar question (For me, at least) is whether or not it works cross-region, so I can move a US-region character to my JP-region memory card. That's the main reason I'd want to have my own server, actually; Moving characters between my US memory card for splitscreen with my friends, and moving them back to play on my Q (Which is horribly underplayed). If we aren't sure, I could probably find a spare couple of memory cards and try it out.
In theory it should work on PSOGC. The only requirement for /save and /restore is that the user have the same guildcard number (so you need to use the same SN/AK to make it work, really). I dunno if the US and JP versions of PSOGC will let you do that or not. You could, of course, modify this if you were just running a server for yourself. It should be pretty easy to figure out how to do so in the code, as the code itself isn't all that complex (you'd be looking for stuff in shipgate and ship_server, you can ignore the other parts for /save and /restore functionality).
2) I didn't see anything specifically relating to this, but could I configure Sylverant to have an option to forward to another server such as Schthack or the official Sylverant server? This is more of a convenience thing than anything. I could always forward to either manually, but this would be a lot easier.
It is possible, but it causes many problems, and I don't recommend trying it. Actually, really I never released the code to do that, mainly because it can cause corruption of character data. :roll:
3) I know I'm probably the only one who's ever asked this, and might be the only one who ever will, but how much work would one need to do in order to compile Sylverant on a SPARC machine running Solaris 10?
SPARC is big-endian, correct? I wouldn't necessarily count on everything working properly on a big-endian machine, as I haven't tested thoroughly on one in a long while. I know that it should work well enough to get a basic game going, but I haven't done anything beyond that on a Big Endian machine in a while (my initial testing was on a PowerPC G4 Mac Mini running Mac OS X 10.4, by the way... so it did work on big endian machines for a while).

The prerequisites aren't terribly hard to deal with (MySQL, libxml2, and libcrypto from OpenSSL) and they should all be readily available for just about everything. Note, though, that I don't really support running the full server, especially not on such a strange platform to me (since I quite obviously don't have a SPARC running Solaris 10, and I don't even have the time to work on the code much lately). Now, I really only test things on the main Sylverant server, which runs FreeBSD 8.x on x86-64. Also, most of the server configuration except for ship_server is horribly outdated (partially because I hate writing documentation anyway). The stuff for PSOGC can be especially annoying to deal with, since there's a lot more database work required for it than PSODC, and I've not really done any work on making the stuff easier to deal with... :? Basically, I wasn't really thinking anyone would want to run Sylverant other than me when I was writing it, so I kinda haphazardly put things together. :roll:

If you do manage to get it running, let me know any modifications you had to make. I ask though that people don't make a bunch of small public servers, since that only tends to fragment the community more than it already is. That's really one of the things that I fought with myself over when I was setting up my server for Sylverant. That's why I was happy to have support from the two communities that essentially merged themselves with Sylverant in the end (DC-Talk, who already ran their own server (they ran Sylverant for a while before I even knew they were doing so), and PSO Palace (which didn't have their own server before hand)). I really don't like fragmenting people up any more than they already are, since that to me makes the game less fun...
XS-Nitrogen
DCEmu Newbie
DCEmu Newbie
Posts: 2
Joined: Fri Mar 11, 2011 12:35 pm
Has thanked: 0
Been thanked: 0

Re: Just a few questions from a newbie.

Post by XS-Nitrogen »

Thanks for the quick reply, BlueCrab. I appreciate it. :)
BlueCrab wrote:In theory it should work on PSOGC. The only requirement for /save and /restore is that the user have the same guildcard number (so you need to use the same SN/AK to make it work, really). I dunno if the US and JP versions of PSOGC will let you do that or not. You could, of course, modify this if you were just running a server for yourself. It should be pretty easy to figure out how to do so in the code, as the code itself isn't all that complex (you'd be looking for stuff in shipgate and ship_server, you can ignore the other parts for /save and /restore functionality).
When you say I could modify it, you mean I could force a save/restore through the server if it doesn't work normally? Skip whatever region check may exist, or something to that effect? I'm not at all familiar with how PSO handles it's save data, aside from that I expect it checks a memory card ID of some sort, assigned at the time the card's formatted, to prevent it from being copied easily - Moving a save file to another memory card, or to the same card after a memory card format, causes PSO to say that the data is corrupt, so I think that's what it's trying to do. Restoring an older save file over one on the same card works fine.

Either way, I'll give it a shot on a "stock" Sylverant first, as (I hate to say it) I haven't done a lot of programming lately and I may be in over my head with this.
It is possible, but it causes many problems, and I don't recommend trying it. Actually, really I never released the code to do that, mainly because it can cause corruption of character data. :roll:
Alright. Fuzziqer's original server had that problem too, but I figured I'd ask. I don't know about newserv - I never tried that one.
SPARC is big-endian, correct? I wouldn't necessarily count on everything working properly on a big-endian machine, as I haven't tested thoroughly on one in a long while. I know that it should work well enough to get a basic game going, but I haven't done anything beyond that on a Big Endian machine in a while (my initial testing was on a PowerPC G4 Mac Mini running Mac OS X 10.4, by the way... so it did work on big endian machines for a while).

The prerequisites aren't terribly hard to deal with (MySQL, libxml2, and libcrypto from OpenSSL) and they should all be readily available for just about everything. Note, though, that I don't really support running the full server, especially not on such a strange platform to me (since I quite obviously don't have a SPARC running Solaris 10, and I don't even have the time to work on the code much lately). Now, I really only test things on the main Sylverant server, which runs FreeBSD 8.x on x86-64. Also, most of the server configuration except for ship_server is horribly outdated (partially because I hate writing documentation anyway). The stuff for PSOGC can be especially annoying to deal with, since there's a lot more database work required for it than PSODC, and I've not really done any work on making the stuff easier to deal with... :? Basically, I wasn't really thinking anyone would want to run Sylverant other than me when I was writing it, so I kinda haphazardly put things together. :roll:

If you do manage to get it running, let me know any modifications you had to make. I ask though that people don't make a bunch of small public servers, since that only tends to fragment the community more than it already is. That's really one of the things that I fought with myself over when I was setting up my server for Sylverant. That's why I was happy to have support from the two communities that essentially merged themselves with Sylverant in the end (DC-Talk, who already ran their own server (they ran Sylverant for a while before I even knew they were doing so), and PSO Palace (which didn't have their own server before hand)). I really don't like fragmenting people up any more than they already are, since that to me makes the game less fun...
Yeah, SPARC is big-endian. I wouldn't be surprised if it gives me problems trying to compile, but I'll give it a shot.

I promise that I won't try to set up yet another public server :P I certainly think there should be options, but between DCtalk and Schthack I think we already have that. If anything, my server would just be for me and my friends if they ever decide they want BBAs, and for my own cross-region stuff like moving items between characters and (If it works) moving characters between memory cards. Maybe download quests. The reason I want to try to do it on my SPARC box is just something to get myself back into programming, and hopefully learn something in the process.
User avatar
BlueCrab
The Crabby Overlord
The Crabby Overlord
Posts: 5652
Joined: Mon May 27, 2002 11:31 am
Location: Sailing the Skies of Arcadia
Has thanked: 9 times
Been thanked: 69 times
Contact:

Re: Just a few questions from a newbie.

Post by BlueCrab »

XS-Nitrogen wrote:Thanks for the quick reply, BlueCrab. I appreciate it. :)
No problem. 8-)
When you say I could modify it, you mean I could force a save/restore through the server if it doesn't work normally? Skip whatever region check may exist, or something to that effect? I'm not at all familiar with how PSO handles it's save data, aside from that I expect it checks a memory card ID of some sort, assigned at the time the card's formatted, to prevent it from being copied easily - Moving a save file to another memory card, or to the same card after a memory card format, causes PSO to say that the data is corrupt, so I think that's what it's trying to do. Restoring an older save file over one on the same card works fine.

Either way, I'll give it a shot on a "stock" Sylverant first, as (I hate to say it) I haven't done a lot of programming lately and I may be in over my head with this.
Essentially, all I'm saying is that if you're going to be the only person ever running it, you can short-circuit some of the stuff to force it to work for you. The way it works currently is that /save is associated with your guildcard number and a slot number. Each guildcard is allowed to have 4 slots by the code (although there's no real reason for 4, I just figured it would be enough). When you restore, you give it a slot, and it pulls the guildcard number from your client structure on the server. Essentially, if you just hard-coded in a guildcard number in the code for the save/restore, you could make it so it doesn't do that check, allowing you to restore a character that isn't given with the same serial number/access key pair.

Also, you could just have it hard-code the guildcard number given out on the login server, and that should work just as well (although player tracking features and such won't work then, unless the hard-coded value is what it would actually give you... not that this matters when you're dealing with a single client ever being on).
Alright. Fuzziqer's original server had that problem too, but I figured I'd ask. I don't know about newserv - I never tried that one.
Its more to do with the fact that schtserv and sylverant most likely won't agree on your guildcard number. The game gets very confused if your guildcard number changes after its been given to you the first time on a connection (it doesn't care if it changes between connections though). So, if you go the hard-coded guildcard in login server route, make sure you hard code it everywhere in login server.
Yeah, SPARC is big-endian. I wouldn't be surprised if it gives me problems trying to compile, but I'll give it a shot.
The big-endianness won't cause any compilation errors, for certain. Oh, one thing I didn't mention is that I use some GCC-isms in the code like __attribute__((packed)), so it probably won't compile with anything other than GCC or Clang at the moment.
I promise that I won't try to set up yet another public server :P I certainly think there should be options, but between DCtalk and Schthack I think we already have that. If anything, my server would just be for me and my friends if they ever decide they want BBAs, and for my own cross-region stuff like moving items between characters and (If it works) moving characters between memory cards. Maybe download quests. The reason I want to try to do it on my SPARC box is just something to get myself back into programming, and hopefully learn something in the process.
Keep in mind that DC-Talk's server and mine are one and the same now (although, they still host their ship off my server machine -- they do connect to my shipgate though). I recommend that if you and your friends all play online that with the exception of any odd hackery you do with the server code, you play on one of the established servers. We'd of course be happy to have you play on Sylverant. :wink:
Post Reply