Draw distances

Novis

Member
Obviously, I have no idea if the engine can handle doing something like this, but I was thinking that increasing draw distance would be a nice little "improvement" to the game. Was playing against Dragon and thought that being able to see all of the boxes all at once would be nice.
 

Andy

Toxicest player
It has been requested before. Not sure whether any progress has been made or not. Tofuman might know more as I think he was the one looking into it (I could be incredibly wrong though).
 

Novis

Member
Or, sorry for making a redundant thread then. Like I said, though, I have no idea if this is even viable with the engine without breaking something.
 

CTB

JK hate paused, busy!
I dream of CCA without ... well, blink out (can't really call it fade out)
 

Andy

Toxicest player
Or, sorry for making a redundant thread then. Like I said, though, I have no idea if this is even viable with the engine without breaking something.
I'm sure it's possible, but without the actual source code for PSO (THANKS SEGA) we're stuck with hex editing the client itself which is a pain in the ass.
 

Soly

Member
Actually quite some stuff is easy... for someone with some experience ofc xD (like Tofuman)
He'll sure come up with something.
 

Novis

Member
I never understood that about coding. Why is the source code so important? Is that code running on any machine that plays the game? Why is the source important if the code runs on other computers?
 

Soly

Member
Source code is easier to read understand and modify.
For example
Code:
unsigned GetSomeWeirdStuff(something)
{
     if (something.field == someotherthing)
     {
          return thisthing;
     }
     ....
}

  add eax, ebx
  mov ecx, eax
  mov dword ptr[edi], eax
  add edi, 4
...
 

Novis

Member
Heh! I have no idea what any of that means. So the source code is just a more accessible language then?
 

Mylandra

Member
The lack of source isn't really a problem unless you're used to high level languages such as .net and java. Anyone using lower level languages should be able to modify things to an extent as long as they understand the features they are editing. Most of the time, it happens that if someone can't edit it without the source, they wouldn't be able to do it with the source either way. Of course, people can achieve similar results by spending excessive time messing around with this stuff, but they hardly learn anything from it and the result isn't satisfying which means they won't even bother or quit really quick. Now think about it for a second, how many programmers around here can actually write a fully-working 3d game with low level direct X apis using C as the language? Don't forget SEGA used NOTHING of the outside world and made every single library on their own.
 

Novis

Member
Interesting. So the "engine" is extremely unique to just Sega because it was built from scratch?
 

Mylandra

Member
It is, you can also see by looking at the docs/coding that alot of the engine was programmed this way due to memory limitations when they first made the game for dreamcast. The game hardly takes any memory compared to newer games which was the part they tried to optimize the most back in the days. The core engine also hasn't changed much since dreamcast, it is the very same game after a few updates (BB is actually a port of the XBOX version which was a port of another previous version right up until dreamcast). Of course, few companies would bother making everything from scratch like this, the reason SEGA did is only because dreamcast was their console and they wanted to show how powerful it is and push the console to its limit.
 

Novis

Member
Also, coding wasn't as complex as it is now, since processing is crazy powerful compared to the time of the Dreamcast, right?
 

Mylandra

Member
Coding now is actually alot easier now than it was back then because there are libraries to do just about anything whereas back in the days you had to code alot of stuff on your own regardless. Some new features require alot more thinking nowadays such as multithreading for games so I'd say the expertise is very different and the programming difficulties have moved elsewhere. Anyways, that's not really a thread to discuss this, so back on topic xD
 

Andy

Toxicest player
Woops... In the time it took me to try and find good examples about the differences between everything, everyone else has answered everything ;_;
Hopefully it all makes a little bit more sense to you now
 

Novis

Member
Right-o. Interesting stuff, regardless. So basically, increasing draw distances can possibly be done, but it would be easier if the source code was open and the only one who would truly know the answer to this isn't here to answer the question. Gotcha.
 

Mylandra

Member
I remember doing something like that for this game back in 2007, I probably still have it lying around with my other relics of the past. I don't think it's hard to make per say. If tofuman doesn't make it, I could throw it somewhere eventually. However, I do know I haven't used it long enough to determine if it would add more lag to the game lol
 

tofuman

Administrator
Staff member
Making changes can be done by editing the asm. I've looked at it briefly again recently and found what the client does with the draw distance registry setting and the float that gets set based on that value. I've managed to affect the draw distance of the map but boxes and such seem to use a different float value. So when I get time ill take another look.

Although I disagree with mylandras comment about if someone couldn't make changes in asm they probably couldn't make the changes to the source. I'm sure any one that's worked on the teth project would much rather work with the source than just editing the asm. Could you add the required code for cmode, trade heck even a command to return the players online on a ship using asm? To do such a thing in c it is far easier. I'd go as far to say adding cmode to the ship using asm would be impossible for almost everyone.
 
Top