DCEmulation

dreamcast development • homebrew software • hardware hacking • indie games • emulators • and more!
Back to main site
It is currently Sun May 28, 2017 11:39 am

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 67 posts ]  Go to page 1, 2, 3, 4  Next
Author Message
PostPosted: Mon Aug 24, 2015 6:11 pm 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Hi everyone!

I've been feeling so welcome to the community and you guys gave me so much, I think it's time I give something back.

I'm trying to get my friends to play PSO with me (I got one person already, more to come soon) but obviously most of them don't have their DCs anymore, so the only choice is PSO for PC.

So I set out to setup it on my computer (I had a copy of PSO PC from around 2004) and I wanted to make sure I could make it run in Sylverant. Turns out it was quite easy with the executables available in PSO Palace so that was a great achievement.

The thing is... with these days wide screen monitors, PSO looks horrible, because it sets the monitor resolution to 640x480 and it displays stretched. I'm running Windows 10 which looks even worse because there's a constant bar on top. So my obvious choice was to run it windowed. It so happens that PSO, instead of launching on it's native resolution, seems to try to adapt to your screen size and make it proportional to it, thus getting stretched by wide screen monitors as well. Luckily the borders aren't locked, so you can run around with your mouse and grab the borders and move them until they reach precision, and make it look just right.

But let's agree that it's terribly inconvenient having to do that every time you launch the game. So I decided to write a small program to resize PSO to the correct aspect ratio, and resize the window for me, with pixel perfect precision.

Quote:
Image
This is how the program looks right after it's
launched, see the strange window size that
looks stretched.


The program allows to select a pixel perfect preset (1x, 2x, and 3x the native 640x480 resolution) or a desired custom resolution.

This is how the game looks on all of it's native resolution glory.
Image

So that's it. For a detailed explanation about how the program works and how to use it there's a Readme included in the compressed file. I hope someone out there using windowed PSO on PC enjoys this program as much as me and my PSO buddies do. With that I think the game experience is more pristine, and it's free of the undesired stretching, for great justice!

You can download it here.

I welcome any suggestions and feedback to the program, I'm subscribed to this thread so you can post a reply here or PM me. If anyone would like to host the tool on their site, feel free to do so too.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Mon Aug 24, 2015 9:53 pm 
Offline
Psychotic DCEmu
Psychotic DCEmu
User avatar

Joined: Wed Jan 05, 2011 1:15 pm
Posts: 699
Location: California
You can also use the window mode in deathrabbit's loader to do the same thing, at least if you want to use one of the common resolutions. I'm not sure how you're setting the size, but his loader makes assumptions about the size of the window border and sizes the window accordingly. If you simply size to 640x480, that includes the pixels used for the window border, so the AR of the actual game image won't be quite right. I'm not sure if there's a way to universally compensate for that regardless of the Windows theme you're using.

There's also a tool called Sizer that lets you set shortcuts for resizing any window to a particular shape. The reason window mode doesn't assume the correct AR or hold its AR when you stretch the window is that it's a hack. PSO PC was made to run full screen only, so the window mode patch is a bit, shall we say, primitive. It's also worth noting that window mode breaks the game's screenshot functionality, so you need something like Fraps to take screenshots if you use window mode.

_________________
"Fear the HUnewearl."
Image


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 4:31 am 
Offline
Mental DCEmu
Mental DCEmu
User avatar

Joined: Mon Oct 27, 2008 4:47 pm
Posts: 302
I actually use window mode a lot considering i do a lot of things in the background and having to alt tab everytime would be a pain.
For accuracy i guess your tool would be really nice, for me however i just change the shape of the window at my own will.

Fraps actually takes a screenshot at the correct resolution of the game, no matter what shape it is, however some of the programs that take screenshot will use the game's window to do it and having an incorrect ratio or size will result in some weird screenshots, so your tool will certainly fix that, trying to manually nail the correct shape (of the window) might be hard.

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 7:21 am 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Aleron Ives wrote:
I'm not sure if there's a way to universally compensate for that regardless of the Windows theme you're using.

My program does just that. It considers the size of the internal DC rather than the entire window. The calculation is simple, get the Window size, then the Client size. Subtract to find the difference (therefore finding the border sizes for your running windows/theme) and then adding that value to the desired resolution when resizing the window, so there's no assumption about the border size of a specific windows or theme. :)

I could possibly attempt to add a screenshot functionality, to eliminate the need of fraps. If anyone is interested, let me know.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 10:14 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
I'm glad you made this program, I'll be using it for sure, thanks!
I've always had window issues with pso.exe, even deathrabbits loader doesn't resize to the selected resolution. Maybe you could integrate a button to load pso.exe from your app?


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 10:26 am 
Offline
The Crabby Overlord
The Crabby Overlord
User avatar

Joined: Mon May 27, 2002 9:31 am
Posts: 5163
Heh, good to see some interesting programs coming from people around the server.

I'm assuming your program requires an exe already patched for windowed mode and doesn't work properly with a fullscreen exe?

EDIT: Also, just to let you know, your program doesn't appear to work in a base install of Wine. I'm guessing it uses .NET of some sort, since I see a bunch of stuff related to .NET exceptions. What version of the runtime does it require?


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 10:51 am 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Treamcaster wrote:
I'm glad you made this program, I'll be using it for sure, thanks!
I've always had window issues with pso.exe, even deathrabbits loader doesn't resize to the selected resolution. Maybe you could integrate a button to load pso.exe from your app?

If someone tells me what the loader does, I sure can integrate it on my program.

BlueCrab wrote:
Heh, good to see some interesting programs coming from people around the server.

I'm assuming your program requires an exe already patched for windowed mode and doesn't work properly with a fullscreen exe?

EDIT: Also, just to let you know, your program doesn't appear to work in a base install of Wine. I'm guessing it uses .NET of some sort, since I see a bunch of stuff related to .NET exceptions. What version of the runtime does it require?

Yeah it was built in C#.

I lowered the framework specs to the minimum possible, so it's using framework 2.0. It should work on most windows machines, but yeah, it requires the framework to be installed.

Considering the simplicity of this program I could really build it on anything (Visual Basic 6, c++) I just choose C# because it offers the quickest path to build an interface and it's more tailored for "modern" systems. VB would be the next choice since it's still quick to build the interface, but it also requires the VB runtime. .Net is quite standard these days so I'm pretty sure wine has some way of installing / mapping it.

The program will only resize an already patched windowed exe... I'm thinking about possible solutions to work with a fullscreen exe but I don't think it'd be easy since PSO switches the screen resolution to go fullscreen, etc...

Again, I'll research more and try improving it if there is interest from the community. Adding the screenshot button should be fairly simple... solutions over the fullscreen exe are a tad more complex... but I don't know that it's impossible.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 12:29 pm 
Offline
Psychotic DCEmu
Psychotic DCEmu
User avatar

Joined: Wed Jan 05, 2011 1:15 pm
Posts: 699
Location: California
Call me old fashioned, but since PSO is technically compatible with Windows 98, I'm of the opinion that PSO tools should be as compatible as possible and not use .NET when it isn't necessary for the desired functionality. ;)

It is indeed possible to patch the exe for window mode in memory; that's what deathrabbit's loader does. You use it with a full screen pso.exe, and the loader supplies the window mode patch. Making a loader requires you to patch the registry keys for toggling online/offline mode, and that's about it.

_________________
"Fear the HUnewearl."
Image


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 3:14 pm 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Sounds good.

I added screenshot functionality to my program, and based on your information about the launcher, added it as well. Now the program can launch PSO in Online or Offline mode and resize the window, as well as take screenshots, which will be saved on the same folder as the Screenshots from PSO would, same naming convention, same format.

As for patching it to a window, well, I must admit I don't have enough knowledge/information about how to do that yet, so I'll have to go on a quest to research it. For now, it's great to work with the windowed exe provided at PSO Palace.

As for using C#... well, as I said, it's for making interfaces quickly. I started this program yesterday morning so I haven't really spent much time on it, nevertheless the functions it does now are quite cool, and it will work with any computer that runs windows XP or above. (Techincally it runs on windows 98 too, but it requires some kernel updates.)

If there's really a demand for making this program work with a fullscreen exe and to run without the framework, I'll work on it. But I'd like to hear about the people who want to use it! :)

If there are any other functionalities it could perform, please tell me about it too.

Download the updated program here. it's the same URL as above.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 3:58 pm 
Offline
The Crabby Overlord
The Crabby Overlord
User avatar

Joined: Mon May 27, 2002 9:31 am
Posts: 5163
I certainly don't have any problem with using C# or .NET. Heck... I wrote my own loader/patcher for PSO that is in C# (and requires a newer version of the .NET runtime than yours does). :wink:

For even more fun, my loader/patcher loads a .NET-based C# DLL into PSO to do some of the fun runtime patching that it does. :lol:

I'm not sure why it wouldn't work under Wine for me, as I definitely have the 2.0 runtime installed... Oh well, was worth asking anyway.


Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 4:18 pm 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
TulioAdriano, your new version is great!! I'll definitely use it, it's probably the best loader around I would say.
I'll just point a few nitpicks if you don't mind: "Laucher" is misspelled; and in the buttons I would just put "Online" and "Offline".

Off-topic: Now that we're talking about pso.exe loaders, there's one neat loader out there that I don't know if many people are aware of its existence... check it out: http://www.sappharad.com/14-uncategoris ... al-release

Edit:
Suggestion: Just in case you have nothing more interesting to do, since this is not important at all, but I was thinking what other features your loader could have under the "Tools" section, I thought that maybe you could add "IP Patch"? Should be easy for you... "camera hack" would be interesting too. But that's probably more complicated and out of scope of a simple pso.exe loader...


Last edited by Treamcaster on Tue Aug 25, 2015 4:29 pm, edited 2 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Tue Aug 25, 2015 4:25 pm 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Hi Treamcaster,

I updated the launcher according to your suggestion.

I'd like to further improve the launcher, to make it eventually work with any PSO, patched or unpatched. It won't come out as fast as this one which basically started +/- 24 hours ago, but in time, if there's interest I'll surely continue developing it.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 6:24 am 
Offline
Mental DCEmu
Mental DCEmu
User avatar

Joined: Mon Oct 27, 2008 4:47 pm
Posts: 302
I really liked if i had a launcher that would patch the exe with the high resolution version of PSO, sadly all i have are numerous exes that i use to replace the original, also the large majority are still alpha versions and have no hud adjustements, the exe that has partial hud adjustment only has it for 1 resolution and i was unable to figure out where these adjustments are made to make them available for other resolutions.
Still it's something to consider in the future.

_________________
Image


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 7:20 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
K_I_R_E_E_K wrote:
I really liked if i had a launcher that would patch the exe with the high resolution version of PSO, sadly all i have are numerous exes that i use to replace the original, also the large majority are still alpha versions and have no hud adjustements, the exe that has partial hud adjustment only has it for 1 resolution and i was unable to figure out where these adjustments are made to make them available for other resolutions.
Still it's something to consider in the future.


Mee too... that demo you had on your blog (link's broken) really showed up its potential, too bad nobody figured out yet how to adjust the hud.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 7:53 am 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Step by step we add functionalities here and there, hopefully one day we can get that far.

For now, I've updated the program (same download url), added a button to launch the game options, screenshot shutter noise and auto resize checkbox.

Note that the program can be run before or after PSO is launched, it doesn't matter, if PSO is already running the program will detect it and make its functions available.

I'm studying some code sent by BlueCrab and understanding the basics of run-time patching. So far it seems quite daunting, so those fancy functions may take quite some time to appear, as I'm still new to all of these techniques.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 8:07 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
Bug report:
I had PSO running in the background when I launched your new loader and these windows kept popping up..
Image


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 9:42 am 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Sorry about that.

It seems I left one line from my prototype (handling PSO fullscreen) before I built that version.

It has been fixed. :)

Thansk for reporting.

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 10:04 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
I'm glad you added the "Options" button, as I was going to suggest that.
Can you make your loader to remember the windows size settings from previous use? For eg. I normally set Custom Size to 800x600 every time I run the loader.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 10:08 am 
Offline
DCEmu Freak
DCEmu Freak
User avatar

Joined: Tue Aug 18, 2015 7:32 am
Posts: 55
Yeah I thought I was going to need adding that sooner or later, so I might as well do it now. New update coming in a few hours. Anything else while I'm at it?

_________________
There are 10 types of people. Those who understand binaries and those who don't.


Top
 Profile  
Reply with quote  
PostPosted: Wed Aug 26, 2015 10:15 am 
Offline
Insane DCEmu
Insane DCEmu
User avatar

Joined: Mon Jul 02, 2007 11:11 am
Posts: 136
TulioAdriano wrote:
Yeah I thought I was going to need adding that sooner or later, so I might as well do it now. New update coming in a few hours. Anything else while I'm at it?


I guess it's all for now. Kireek should send you his high res pso.exe for you to check out. Maybe you two can work it out together.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 67 posts ]  Go to page 1, 2, 3, 4  Next

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group