VOGONS


DOSBox Game Launcher (DOSBox Frontend)

Topic actions

First post, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

Hi everybody,

Seems like a lot of people are thinkin' about DOSBox front-ends, lately.

Looking at myself, I've been using D-Fend with great pleasure for over 1 and a half years. Unfortunately, I started noticing a couple of shortcomings and bugs in D-Fend as time went by.

So, coincidentally, only a couple of weeks ago, I decided to build a Java front-end myself, using the proven interface of D-Fend as a basis.

The font-end, which I have dubbed DBGL (DOSBox Game Launcher) so far, is by no means finished. It is a work in progress and lacking many features, but the core is working, and I think the product is somewhat usable as it is. Please bear in mind that the interface is still quite rough around the edges.

To name a few of its features:

* D-Fend profiles importing
* multiple dosbox versions support, so you can select any pre-configured version to use _per profile_
* template support (like D-Fend)
* 2 URLs supported per profile
* booter games support
* basic zipfile support (using a dosbox version that has physfs integrated, for example Ykhwong's)
* can easily handle 1000+ profiles (for those interested: DBGL uses the Java hsqldb database engine, and SWT for the GUI)
* use with DOSBox v0.70, v0.65 or CVS

DBGL can optionally use the DOSBox feature 'Multiple Config Files' to use incremental config files. What this means, is that your game profile only stores the _differences_ compared to the main dosbox.conf file. Then, suppose you want to switch all profiles from output=surface to output=opengl, you only have to alter the main dosbox.conf setting to instantaneously alter all corresponding child profiles.

Just extract the DBGL archive to any dir and run the dbgl.bat file. Please note that you MUST have the Java Runtime Environment 1.5 installed, it will not work without the JRE1.5, or with an older version. Moreover, java.exe should be in your path. See http://java.sun.com/javase/downloads/index.jsp

The zip contains DBGL with some pre-configured templates and a DOSBox build which has Multiple Config Files support, so you can try that out.

Since the front-end was written in Java, it should be relatively easy to port to another platform. If anybody is interested in another build, I'll try to make one soon. Anyways, I'm releasing the sourcecode for the entire thingy as well, so please feel free to hack away.

Of course, bug-reports and/or suggestions are very welcome. Please let me know what you think!

Kindest regards,
Ronald

DBGL is available at
https://dbgl.org/

ss1.png

Last edited by rcblanke on 2021-04-19, 20:48. Edited 17 times in total.

Reply 1 of 2061, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Nice, I've been thinking about a java-based multiplayer fronted, now I don't have to redo the frontend part 😀

1+1=10

Reply 3 of 2061, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Yeah for Java!!! I havan't bothered with the other frontends because they were platform specific. And required strange compilers like Delphi Pascal.

I want to learn Java, so this will be an excellent opportunity to learn by building on something that already works. Any plans on setting up a CVS-repository for this?

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 4 of 2061, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie
MiniMax wrote:

... Any plans on setting up a CVS-repository for this?

Hehe, well, I have CVSNT running at home, specifically for this project. But I guess you mean setting up something like a SourceForge project for this?! I think that may be a good idea if there is interest from the community. If you know how to set up a SourceForge project, please, be my guest.

In case anyone needs help compiling the source, just let me know. I've been developing in Eclipse 3.2, BTW.

Ronald

Reply 5 of 2061, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

..Attaching a couple more screenshots..
EDIT: removed them, they're on the site.

Last edited by rcblanke on 2007-04-05, 21:54. Edited 2 times in total.

Reply 6 of 2061, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

Good, zip file support is probably the first thing for frontend.

Is it possible to let your frontend know about dosbox version automatically?
For instance, "dosbox.exe -version" will write an output about version number to stdout.txt.
Then, the frontend will load stdout.txt to know which version of dosbox.exe is being used.
Furthermore, for accurancy, it can also see the creation date of dosbox.exe so that it guesses whether the dosbox.exe is official or cvs one.

Reply 7 of 2061, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie
ykhwong wrote:

Is it possible to let your frontend know about dosbox version automatically?

Hi ykhwong,

Surely this can be done, but for what purpose exactly?

Ronald

Reply 8 of 2061, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

It's for convenience for any dosbox user.
Your frontend already has preconfigured profile included, so I hoped it automatically decides to use one of the profiles by analyzing the stdout.txt
DOSBox developer created such a parameter (readme says that it can be useful for frontends), but there are no frontends that have used the feature as far as I know.

Reply 9 of 2061, by ErikGG

User metadata
Rank Member
Rank
Member

Hi,

Are there many more commands showing information in the stdout.txt?
I tried the -version command and it shows 0.65. What do CVS builds return?

Erik.

Reply 10 of 2061, by h-a-l-9000

User metadata
Rank DOSBox Author
Rank
DOSBox Author

0.65 😀

1+1=10

Reply 11 of 2061, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

we might want to change that indeed 😀

Water flows down the stream
How to ask questions the smart way!

Reply 12 of 2061, by avatar_58

User metadata
Rank Oldbie
Rank
Oldbie
DosFreak wrote:

Downloading now...

Good thing I've never bothered to setup profiles for my games otherwise I'd have alot of work to do.

/Nelson Ha Ha! Avatar_58

You missed:

rcblanke wrote:

* D-Fend profiles importing

😉 Instant sale for me. You've taken all the work away and are attempting to best D-fend at the same time. Kudos. I'll definately be watching this one closely. That multiple version feature also is music to my ears.

And this is for Dosfreak 😉

hahawhatpw6.th.png

Reply 14 of 2061, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie

@ykhwong & Qbix: Maybe when we get so far that dosbox can exactly report on its features, such as physfs support, scalers that are supported and so on, we can use that in a front-end such as mine. For the moment, I don't really see the usefulness of retrieving only it's version number, unless I'm missing something..

@avatar_58 & DosFreak: Thank you. I realized D-Fend profile importing was an important feature for many people because of the popularity of that front-end...Not to mention the nightmarish idea of having to copy hundreds of profiles by hand, myself 🙄

BTW, DBGL currently does some cleanup when importing D-Fend profiles. During import, all bogus settings ([gus]base, [gus]rate, [sblaster]base and [sblaster]type) are removed. Midi settings are redefined as to match the changed configuration specifications for the midi section, and a couple of sections are stripped entirely. Those sections are: [directserial], [modem], [ipx] and [sdl]. I choose to do this because I think either:

* these settings should be choosen in the main dosbox.conf file (so to be able to change these kind of settings for all underlying games)
* they clutter up the profile's configuration file too much

I can imagine that this decision is not what is to be expected when doing a direct import, so, if anybody wants that, I can make this 'section-stripping' optional.

Regards,
Ronald

Reply 15 of 2061, by rcblanke

User metadata
Rank Oldbie
Rank
Oldbie
DosFreak wrote:

Downloading now...

Good thing I've never bothered to setup profiles for my games otherwise I'd have alot of work to do.

/Nelson Ha Ha! Avatar_58

You mean you just use/have .conf files for each and every game, right?!
Would it be handy to have importing functionality for this situation as well? So that you can point to an existing configuration file, and just have that inserted in the profiles list in DBGL, instantly?!

Or maybe even better, you copy all your conf files to one dir and have that be inserted all at once. Of course, this will only work if you have given all your configuration files a unique name (probably the game's title)...

Reply 16 of 2061, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

I was thinking about two optional ways.
This is just my opinion. (I am sorry if I bother Dosbox developers and/or rcblanke for this.)

1) The first thing is....
Adding ALL the lines connected to dosbox configs/features that have been changed since official version released is possible like this.

gui/sdlmain.cpp

printf(VERSION "\n\n");
printf("Since dosbox 0.65 official (for frontends)\n");
printf("Configuration :\n");
printf("[sdl] : output=++direct3d,++openglhq\n");
printf("[sdl] : ++overscan=++0,++number\n");
printf("[render] : scaler=++hq2x,++hq3x,++2xsai,++super2xsai,++supereagle,++advinterp2x,++advinterp3x,++tv2x,++tv3x,++rgb2x,++scan2x,++scan3x\n");
printf("++[vsync] : ++vsyncmode=++off,++on,++force\n");
printf("++[vsync] : ++vsyncrate=++75.023426,++number\n");
printf("Features :\n");
printf("++zip mount, ++multiple config\n");

Frontend will see & add only the words after ++. (That would be a little bit hard?)

2) Another thing is...

There will be only the following lines:

gui/sdlmain.cpp

printf(VERSION "\n\n");
printf("Features :\n");
printf("zip mount, multiple config\n");

Frontend will load texts "version number 0.6x", "zip mount", and "multiple config" with the help of '-version'.

Afterwards, frontend will run dosbox.exe with parameters below.
-c "config -writeconf frontend.conf" -c "exit"

Then it will load & analyze newly created frontend.conf for configuration of profiles.

Last edited by ykhwong on 2006-08-13, 19:44. Edited 1 time in total.

Reply 17 of 2061, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

I wonder if the effort of providing support for things not in the CVS is worth it?

Those using the CVS probably don't bother to use frontends anyway (well mostly).

How To Ask Questions The Smart Way
Make your games work offline

Reply 18 of 2061, by avatar_58

User metadata
Rank Oldbie
Rank
Oldbie

Rcblanke - No, thank YOU 😉 You actually listened to what people wanted and implemented it. Very nice. What I also like is how editing profiles no longer blinks my whole screen or returns to the top like it does in D-fend.

A nice feature would be if the program memorized how I resized the window upon closing. In other words if my list was small I can leave it a little squished, if I have a giant list (which I do) I want it maximized at all times. Just a thought.

A feature I love with d-fend is making external shortcuts. You can quickly have an icon on the desktop which launches dosbox with specific settings, which is great when I make shortcuts for people who do not even know dosbox is running at all. I don't use it too often, but whenever I set it up for others I try to make dosbox as transparent as possible and this is THE easiest way (batch files and seperate configs work just as well, but this way is as painless for me as possible)

Reply 19 of 2061, by collector

User metadata
Rank l33t
Rank
l33t

A couple of thoughts, it might be nice to have the option to save the conf file in either a single directory or in the game's directory. The ability to launch a game in DOSBox from the GUI for test purposes to make decisions on settings would be handy.

Although this would not be part of this frontend, it would be nice to be able to invoke the frontend from the simple GUI of the menu bar like ykhwong includes in his builds.

But, what would make it a clear winner for me would be the ability to access it from a right click on a DOS executable, à la VDMS Launchpad and for it be able to generate a DOSBox shortcut to the game.