Author Topic: DOSBox 0.74 SVN for GCW0  (Read 36691 times)

Thraka

  • Posts: 51
Re: DOSBox 0.74 SVN for GCW0
« Reply #40 on: October 21, 2013, 12:13:44 am »
Great to hear!

kuwanger

  • Posts: 29
Re: DOSBox 0.74 SVN for GCW0
« Reply #41 on: November 04, 2013, 03:30:33 am »
So, DOSBox for the GCW0 is just great. :)  Well, except for some games/demos that use mid-screen palette changes, but then DOSBox on the PC doesn't do a good job of that either.

In any case, two of the things that bothered me is no way to specify -exit and that the graphics don't always scale or scale well to the screen.  So, I made a few changes.  The result is a version that is slightly slower, but it's worth it to me to use the whole screen...and support the various games (ZZT comes to mind) that are larger than 320x240 but aren't 640x400 or 640x480.

Anyways, the changed source files are included with my modified version.  Oh, and I chose to use -Os instead of -O2 and mips32r2, although they didn't seem to make a difference performance wise (not a real surprise given the dynrec is likely the main CPU usage and would require manual optimization.  So, I hope others find this useful.

DOSBox 0.74 (w/ more general scaling)

dmitry_smagin (OP)

  • Posts: 423
Re: DOSBox 0.74 SVN for GCW0
« Reply #42 on: November 04, 2013, 08:01:19 am »
kuwanger,
thanks for the effort. Actually I didn't include downscaling from resolutions bigger than 640x480 because it would be very slow anyway. And I thought nobody will try to run any hi-res game. :)

But I can't agree with your upscaling from anything smaller than 320x240 as I see no point in this. 1) It slows down performance 2) most old games use 320x200 anyway 3) there are some rare games and demos which use 256x224.

It would have sense if we had a bigger LCD. In any case the future firmware updates will have hardware rescaling (someday, not very soon).

Dmitry.
GCW-Zero prototype, Dingoo a320, Ritmix rzx-50, Dingoo a380, Xperia Play

kuwanger

  • Posts: 29
Re: DOSBox 0.74 SVN for GCW0
« Reply #43 on: November 05, 2013, 06:54:27 am »
Quote
Actually I didn't include downscaling from resolutions bigger than 640x480 because it would be very slow anyway. And I thought nobody will try to run any hi-res game.

EGA 640x350 (text mode, especially)

Quote
But I can't agree with your upscaling from anything smaller than 320x240 as I see no point in this. 1) It slows down performance 2) most old games use 320x200 anyway 3) there are some rare games and demos which use 256x224.

Well, the intention was to use it for all the games that were already fast enough to take the small performance hit.  To that end, I decided to just add new output surfaces "surface_dingux_scale" and "surface_dingux_smooth" (I just replaced the link above with the newer version).  The former scales up to 320x240 and has a really marginal (from what I can determine) performance penalty.  The latter scales up to 320x240 as well but uses COLORMIX to blur the pixels (and makes some old CGA games look sort of decent).  In any case, leaving it up to the dosbox-SVN.conf gets the best of all worlds...except you can't readily switch on the fly between the available options. :(

Quote
It would have sense if we had a bigger LCD. In any case the future firmware updates will have hardware rescaling (someday, not very soon).

Yea, I figured as much anyways.  This is really just a temporary stop-gap and I figured I'd share it for those who would find it useful now.  As for whether it makes sense or not, well, probably not.  But I rather like not having black borders if it's readily avoidable. :)

dmitry_smagin (OP)

  • Posts: 423
Re: DOSBox 0.74 SVN for GCW0
« Reply #44 on: November 05, 2013, 07:09:13 am »
Thanks for the answer.
My idea was to have as little overhead as possible for low-res games (320x240 and smaller) and to avoid unnecessary transformations, as only low-res games are really playable with decent speed. Shrinking bigger resolutions is just for general understanding what's going on (to navigate with Dos Navigator for example) and not for real playing.

But you are right, a general resizing is reasonable.
GCW-Zero prototype, Dingoo a320, Ritmix rzx-50, Dingoo a380, Xperia Play

TimeDevouncer

  • Posts: 231
Re: DOSBox 0.74 SVN for GCW0
« Reply #45 on: November 13, 2013, 04:13:25 pm »
I need help, i've Little Big Adventure in CD Version, I copy all the files to my Zero and run with dosbox, but the game runs without music and without voices & movies. I copy the content of "FLA" & "VOX" folders to the "LBA-CD" folder and doesn't works. I extract de tracks of the CD's (cda to wav) but nothing.

Any help?

Thanks!

P.D. Sorry for my poor english.

EDIT: Is there any way to run an ISO?
« Last Edit: November 13, 2013, 04:46:44 pm by TimeDevouncer »
Look behind you! A three-headed monkey!

Wild Penguin

  • Posts: 69
Re: DOSBox 0.74 SVN for GCW0
« Reply #46 on: December 20, 2013, 05:30:15 pm »
Hi!

I understand that you can run the game, but you are only missing the music?

You can (must) mount an ISO to use it in dosbox (e.x. "mount D /path/to/image.iso"). If you want CDDA, you need a cue/bin format of the image. IIRC, even then, dosbox won't recognize CDDA's in the same bin file (which is possible though, according to the standard), but only separate audio tracks specified in the CUE file. I could be in the wrong here, though.

Also, even though dosbox would support mp3's as tracks, on GCW-Zero, it most probably doesnt.
My Hocoslamfy highscore: 107. Also try Freedroid for GCW0!

Wild Penguin

  • Posts: 69
Re: DOSBox 0.74 SVN for GCW0
« Reply #47 on: December 20, 2013, 07:53:38 pm »
Hi d_smagin,

Thanks for dosbox, it works great!

Just a few suggestions:

Could you include the default mapper.txt? For some games it might come handy, to re-define the keys, in case the game does not allow redefining them - for example, I'm looking forward to playing psycho pinball or pinball fantasies from the shoulder buttons! I could figure out the keycodes by myself, but that will be quite tedious, and wont help others.

Also, just a suggestion: perhaps we could associate dosbox with .conf files so, that dosbox could be invoked as such: 'dosbox -userconf -conf CUSTOM.conf' (equivalent to dosbox -conf ~/.dosbox/dosbox-SVN.conf -conf CUSTOM.conf).

As the custom config file will override everything in the default config file, this will simplify running every game. The config file can have a custom [autoexec] -section (which will actually, btw., be appended to the default one), so no need to brose the folders and looking for the .exe/.bat/.com every time. But also, everything else could be configured, too, if desired (such as a custom mapper.txt). This will require  some knowledge from the user (i.e. to setup a common C drive in the common config file, or a separate one in the custom ones for each game), but, won't change current usage for those who don't want to. I looked at the Freedesktop .desktop specification, and, unfortunately, there can be only one Exec -key, so this approach is only alternative to the current one, unless two applications are made.

I already do the above on my linux box, but especially on a gaming console without a real keyboard, it would rock!
My Hocoslamfy highscore: 107. Also try Freedroid for GCW0!

Wild Penguin

  • Posts: 69
Re: DOSBox 0.74 SVN for GCW0
« Reply #48 on: December 25, 2013, 03:38:26 pm »
Hi!

I've made a patch (that works for me) that allows to re-define the key to bring up the virtual keyboard, and also, re-defines some of the keys in the virtual keyboard, so that the buttons on the GCW-Zero can be mapped independently. This is dirty, and reguires a mapper.txt file to be used (attached).

Also, I'm not a programmer so I had really no idea what I was doing  8). I made the changes via trial and error.

Comments? Also, maybe some real programmer would have a better idea how to implement something like this.

Code: [Select]
diff --git a/gcw0.sh b/gcw0.sh
index b42f78c..be10a71 100755
--- a/gcw0.sh
+++ b/gcw0.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-./configure --host=mipsel-linux --disable-opengl --disable-alsa-midi --disable-dynamic-x86 --disable-fpu-x86 --enable-core-inline CXXFLAGS="-g -O2 -G0 -march=mips32 -mtune=mips32 -pipe -fno-builtin -fno-common -mno-shared -ffast-math -fomit-frame-pointer -fexpensive-optimizations -frename-registers" LIBS="-lSDL_gfx -lSDL_image"
+./configure --host=mipsel-linux --disable-opengl --disable-alsa-midi --disable-dynamic-x86 --disable-fpu-x86 --enable-core-inline CXXFLAGS="-O2 -G0 -march=mips32 -mtune=mips32 -pipe -fno-builtin -fno-common -mno-shared -ffast-math -fomit-frame-pointer -fexpensive-optimizations -frename-registers" LIBS="-lSDL_gfx -lSDL_image"
 
 OLD="\/\* #undef C_ATTRIBUTE_ALWAYS_INLINE \*\/"
 NEW="#define C_ATTRIBUTE_ALWAYS_INLINE 1"
diff --git a/src/gui/sdl_vkeyboard.cpp b/src/gui/sdl_vkeyboard.cpp
index c24074d..911bfd0 100644
--- a/src/gui/sdl_vkeyboard.cpp
+++ b/src/gui/sdl_vkeyboard.cpp
@@ -13,12 +13,14 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
-
+
 #include <SDL/SDL.h>
 #include <SDL/SDL_image.h>
 #include <SDL/SDL_gfxPrimitives.h>
 #include <SDL/SDL_gfxPrimitives_font.h>
 
+#include <control.h>
+
 #include "sdl_vkeyboard_font.h"
 #include "sdl_vkeyboard_image.h"
 
@@ -29,17 +31,26 @@ typedef struct {
  bool pressed;
 } KEY;
 
+/*
+ * As GCW-0 uses real kestrokes for the buttons (shoulder buttons, start, select, A, X , B, Y), re-defining them in dosbox
+ * also re-defines the virtual keyboard. As a dirty workaround, I've remapped the said keys (ESCAPE, BACKSPACE, TAB, RETURN,
+ * LEFT SHIFT, CTRL, ALT and SPACE keys) to WORLD_[0-7] (keysyms 160-167). This way, one also HAS TO make a mapper.txt
+ * file, in which WORLD_[0-7] are mapped to the above keys (so that the virtual keyboard works), but also enables to bind the
+ * real GCW0 buttons to whatever is needed.
+ *
+ */
+
 KEY keyvalues[5][21] = {
 {
- {4, 5, 13, 14, SDLK_F1},          {17, 5, 13, 14, SDLK_F2}, {33, 5, 13, 14, SDLK_ESCAPE}, {46, 5, 13, 14, SDLK_BACKQUOTE},
+ {4, 5, 13, 14, SDLK_F1},          {17, 5, 13, 14, SDLK_F2}, {33, 5, 13, 14, SDLK_WORLD_0}, {46, 5, 13, 14, SDLK_BACKQUOTE},
  {59, 5, 13, 14, SDLK_1},          {72, 5, 13, 14, SDLK_2},  {85, 5, 13, 14, SDLK_3},      {98, 5, 13, 14, SDLK_4},
  {111, 5, 13, 14, SDLK_5},         {124, 5, 13, 14, SDLK_6}, {137, 5, 13, 14, SDLK_7},     {150, 5, 13, 14, SDLK_8},
  {163, 5, 13, 14, SDLK_9},         {176, 5, 13, 14, SDLK_0}, {189, 5, 13, 14, SDLK_MINUS}, {202, 5, 13, 14, SDLK_EQUALS},
- {215, 5, 13, 14, SDLK_BACKSPACE}, {231, 5, 13, 14, 0},      {244, 5, 13, 14, 0},          {257, 5, 13, 14, 0},
+ {215, 5, 13, 14, SDLK_WORLD_1}, {231, 5, 13, 14, 0},      {244, 5, 13, 14, 0},          {257, 5, 13, 14, 0},
  {270, 5, 13, 14, SDLK_KP_DIVIDE}
 },
 {
- {4, 19, 13, 14, SDLK_F3},  {17, 19, 13, 14, SDLK_F4},           {33, 19, 20, 14, SDLK_TAB},           {53, 19, 13, 14, SDLK_q},
+ {4, 19, 13, 14, SDLK_F3},  {17, 19, 13, 14, SDLK_F4},           {33, 19, 20, 14, SDLK_WORLD_2},           {53, 19, 13, 14, SDLK_q},
  {66, 19, 13, 14, SDLK_w},  {79, 19, 13, 14, SDLK_e},            {92, 19, 13, 14, SDLK_r},             {105, 19, 13, 14, SDLK_t},
  {118, 19, 13, 14, SDLK_y}, {131, 19, 13, 14, SDLK_u},           {144, 19, 13, 14, SDLK_i},            {157, 19, 13, 14, SDLK_o},
  {170, 19, 13, 14, SDLK_p}, {183, 19, 13, 14, SDLK_LEFTBRACKET}, {196, 19, 13, 14, SDLK_RIGHTBRACKET}, {209, 19, 19, 14, SDLK_BACKSLASH},
@@ -50,12 +61,12 @@ KEY keyvalues[5][21] = {
  {4, 33, 13, 14, SDLK_F5},          {17, 33, 13, 14, SDLK_F6},      {33, 33, 24, 14, SDLK_CAPSLOCK}, {57, 33, 13, 14, SDLK_a},
  {70, 33, 13, 14, SDLK_s},          {83, 33, 13, 14, SDLK_d},       {96, 33, 13, 14, SDLK_f},        {109, 33, 13, 14, SDLK_g},
  {122, 33, 13, 14, SDLK_h},         {135, 33, 13, 14, SDLK_j},      {148, 33, 13, 14, SDLK_k},       {161, 33, 13, 14, SDLK_l},
- {174, 33, 13, 14, SDLK_SEMICOLON}, {187, 33, 13, 14, SDLK_QUOTE},  {200, 33, 28, 14, SDLK_RETURN},  {0, 0, 0, 0, 0},
+ {174, 33, 13, 14, SDLK_SEMICOLON}, {187, 33, 13, 14, SDLK_QUOTE},  {200, 33, 28, 14, SDLK_WORLD_3},  {0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0},                   {231, 33, 13, 14, SDLK_DELETE}, {244, 33, 13, 14, SDLK_END},     {257, 33, 13, 14, SDLK_PAGEDOWN},
  {270, 33, 13, 14, SDLK_KP_MINUS}
 },
 {
- {4, 47, 13, 14, SDLK_F7},      {17, 47, 13, 14, SDLK_F8},      {33, 47, 31, 14, SDLK_LSHIFT}, {64, 47, 13, 14, SDLK_z},
+ {4, 47, 13, 14, SDLK_F7},      {17, 47, 13, 14, SDLK_F8},      {33, 47, 31, 14, SDLK_WORLD_4}, {64, 47, 13, 14, SDLK_z},
  {77, 47, 13, 14, SDLK_x},      {90, 47, 13, 14, SDLK_c},       {103, 47, 13, 14, SDLK_v},     {116, 47, 13, 14, SDLK_b},
  {129, 47, 13, 14, SDLK_n},     {142, 47, 13, 14, SDLK_m},      {155, 47, 13, 14, SDLK_COMMA}, {168, 47, 13, 14, SDLK_PERIOD},
  {181, 47, 13, 14, SDLK_SLASH}, {194, 47, 34, 14, SDLK_RSHIFT}, {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},
@@ -63,8 +74,8 @@ KEY keyvalues[5][21] = {
  {270, 47, 13, 14, SDLK_KP_PLUS}
 },
 {
- {4, 61, 13, 14, SDLK_F9},      {17, 61, 13, 14, SDLK_F10},     {33, 61, 20, 14, SDLK_LCTRL},  {65, 61, 20, 14, SDLK_LALT},
- {85, 61, 90, 14, SDLK_SPACE},  {0, 0, 0, 0, 0},                {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},
+ {4, 61, 13, 14, SDLK_F9},      {17, 61, 13, 14, SDLK_F10},     {33, 61, 20, 14, SDLK_WORLD_5},  {65, 61, 20, 14, SDLK_WORLD_6},
+ {85, 61, 90, 14, SDLK_WORLD_7},  {0, 0, 0, 0, 0},                {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},                {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},
  {175,61, 20, 14, SDLK_RALT},   {208, 61, 20, 14, SDLK_RCTRL},  {0, 0, 0, 0, 0},               {0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0},               {231, 61, 13, 14, SDLK_LEFT},   {244, 61, 13, 14, SDLK_DOWN},  {257, 61, 13, 14, SDLK_RIGHT},
@@ -122,8 +133,30 @@ bool vkeyb_active = false; // vkeyb show flag
 bool vkeyb_last = false; // vkeyb delete flag
 static bool vkeyb_bg = true; // background on/off
 
+int VKB_SDLK = SDLK_ESCAPE;
+
 void VKEYB_Init(int bpp)
 {
+ Section_prop *section = static_cast<Section_prop *>(control->GetSection("sdl"));
+ std::string vkbkey=section->Get_string("vkbkey");
+ if (vkbkey == "a") { VKB_SDLK = SDLK_LCTRL; } // R or L?
+ else if (vkbkey == "b")      { VKB_SDLK = SDLK_LALT; }
+ else if (vkbkey == "x")      { VKB_SDLK = SDLK_LSHIFT; }
+ else if (vkbkey == "y")      { VKB_SDLK = SDLK_SPACE; }
+ else if (vkbkey == "select")      { VKB_SDLK = SDLK_ESCAPE; }
+ else if (vkbkey == "start")      { VKB_SDLK = SDLK_RETURN; }
+ else if (vkbkey == "up")      { VKB_SDLK = SDLK_UP; }
+ else if (vkbkey == "down")      { VKB_SDLK = SDLK_DOWN; }
+ else if (vkbkey == "left")      { VKB_SDLK = SDLK_LEFT; }
+ else if (vkbkey == "right")      { VKB_SDLK = SDLK_RIGHT; }
+ else if (vkbkey == "shoulder_left")      { VKB_SDLK = SDLK_TAB; }
+ else if (vkbkey == "shoulder_right")      { VKB_SDLK = SDLK_BACKSPACE; }
+ // else if (vkbkey == "power")      { VKB_SDLK = SDLK_ }
+ else if (vkbkey == "lock")      { VKB_SDLK = SDLK_PAUSE; }
+ else { VKB_SDLK = SDLK_ESCAPE;
+ LOG_MSG("SDL:VKB:Falling back to escape");
+ };
+
  if(!vkeyb.surface) {
  vkeyb.surface = SDL_CreateRGBSurface(SDL_SWSURFACE, 287, 80, bpp, 0, 0, 0, 0);
  }
@@ -181,7 +214,7 @@ int VKEYB_CheckEvent(SDL_Event *event)
  bool update_screen = false;
  bool keystate = (event->type == SDL_KEYDOWN) ? true : false;
 
- if(keystate && event->key.keysym.sym == SDLK_TAB) {
+ if(keystate && event->key.keysym.sym == VKB_SDLK) {
  vkeyb_active ^= 1;
  if(!vkeyb_active) vkeyb_last = true;
  ret = 0;
diff --git a/src/gui/sdlmain.cpp b/src/gui/sdlmain.cpp
index 7336efc..8d824ca 100644
--- a/src/gui/sdlmain.cpp
+++ b/src/gui/sdlmain.cpp
@@ -1755,6 +1755,16 @@ void Config_Add_SDL() {
  Pstring->Set_help("What video system to use for output.");
  Pstring->Set_values(outputs);
 
+ const char* gcw0keys[] = {
+ "a", "b", "x", "y", "select", "start",
+ "up", "down", "left", "right",
+ "shoulder_left", "shoulder_right",
+ "power", "lock",
+ 0 };
+ Pstring = sdl_sec->Add_string("vkbkey",Property::Changeable::Always,"select");
+ Pstring->Set_help("What key to use to bring up the virtual keyboard.");
+ Pstring->Set_values(gcw0keys);
+
  Pbool = sdl_sec->Add_bool("autolock",Property::Changeable::Always,true);
  Pbool->Set_help("Mouse will automatically lock, if you click on the screen. (Press CTRL-F10 to unlock)");
 
My Hocoslamfy highscore: 107. Also try Freedroid for GCW0!

dmitry_smagin (OP)

  • Posts: 423
Re: DOSBox 0.74 SVN for GCW0
« Reply #49 on: December 25, 2013, 05:27:30 pm »
Wild Penguin, thanks for your effort. I didn't hack keyboard input too much intentionally because someday GCW-Zero will shift to joystick input, not keyboard. I'll see if I can find a more elegant solution.
GCW-Zero prototype, Dingoo a320, Ritmix rzx-50, Dingoo a380, Xperia Play

Game Dude

  • Posts: 88
Re: DOSBox 0.74 SVN for GCW0
« Reply #50 on: January 10, 2014, 05:11:23 am »
Hello, everybody.

Here's DOSBox 0.74 SVN r3820 for GCW-Zero with mipsel32 recompiler and screen keyboard

Controls:
D-PAD - cursor arrows
A - Ctrl
B - Alt
Y - Spacebar
X - Shift
L - Screen keyboard
R - Backspace
Start - Enter
Select - Escape

Screen keyboard controls:
A - normal press
B - 'sticky' press (to do keycombos)
Y - toggle keyboard opaque/transparent
X + D-PAD - move keyboard around the screen

On first run the default dosbox-SVN.conf will be created at ~/.dosbox, you can edit it freely later.
Gmenu2x's file browser is used to launch dos .exe's; *.bat and *.com are not visible for now because they lack in shared-mime library (to be fixed very soon).
UPDATE *.com and *.bat are also shown by file browser (needs gcw OpenDingux update 2013-09-13).

Download
http://www.sendspace.com/file/jflk6d

Sources
https://github.com/dmitrysmagin/dosbox-gcw0/

Screenshots




Is it possible to remap the keyboard controls in DOSBOX? I know that it is not possible on open msx which is another computer emulator.

l00k

  • Posts: 52
Re: DOSBox 0.74 SVN for GCW0
« Reply #51 on: April 17, 2014, 11:15:53 am »
Fantastic job on this thank you.

I've started playing through Alone in the Dark again :)


Atlantis_Risen

  • Posts: 535
Re: DOSBox 0.74 SVN for GCW0
« Reply #52 on: April 19, 2014, 10:30:48 pm »
Can you play 'Castles' with Dosbox?

l00k

  • Posts: 52
Re: DOSBox 0.74 SVN for GCW0
« Reply #53 on: April 20, 2014, 08:18:55 pm »
Can you play 'Castles' with Dosbox?

I'll test it and let you know

yeah it works but mouse mode would be better with analogue stick support
« Last Edit: April 20, 2014, 08:58:51 pm by l00k »

Atlantis_Risen

  • Posts: 535
Re: DOSBox 0.74 SVN for GCW0
« Reply #54 on: April 21, 2014, 05:18:44 am »
Can you play 'Castles' with Dosbox?

I'll test it and let you know

yeah it works but mouse mode would be better with analogue stick support

cool.  thanks!

Kloppix

  • Posts: 36
Re: DOSBox 0.74 SVN for GCW0
« Reply #55 on: June 05, 2014, 02:35:40 pm »
A mapper for each game is crucial!

The best solution I found so far is to have several mapper-SVN.map. Then I choose what I need and use DinguxCmdr to copy it to /usr/local/home/.dosbox, but then the virtual keyboard stops working.

Is there a way I can use a mapper without disabling the virtual keyboard?

Arrakis

  • Posts: 6
Re: DOSBox 0.74 SVN for GCW0
« Reply #56 on: June 20, 2014, 01:06:09 am »
Hi d_smagin,

Thanks for dosbox, it works great!

Just a few suggestions:

Could you include the default mapper.txt? For some games it might come handy, to re-define the keys, in case the game does not allow redefining them - for example, I'm looking forward to playing psycho pinball or pinball fantasies from the shoulder buttons! I could figure out the keycodes by myself, but that will be quite tedious, and wont help others.

Also, just a suggestion: perhaps we could associate dosbox with .conf files so, that dosbox could be invoked as such: 'dosbox -userconf -conf CUSTOM.conf' (equivalent to dosbox -conf ~/.dosbox/dosbox-SVN.conf -conf CUSTOM.conf).

As the custom config file will override everything in the default config file, this will simplify running every game. The config file can have a custom [autoexec] -section (which will actually, btw., be appended to the default one), so no need to brose the folders and looking for the .exe/.bat/.com every time. But also, everything else could be configured, too, if desired (such as a custom mapper.txt). This will require  some knowledge from the user (i.e. to setup a common C drive in the common config file, or a separate one in the custom ones for each game), but, won't change current usage for those who don't want to. I looked at the Freedesktop .desktop specification, and, unfortunately, there can be only one Exec -key, so this approach is only alternative to the current one, unless two applications are made.

I already do the above on my linux box, but especially on a gaming console without a real keyboard, it would rock!

This is important for all GOG dos based files.  They run two conf files as standard: dosboxGAMENAME.conf (which loads the standard dosbox stuff) and dosboxGAMENAME_single.conf (which mounts the actual game files and auto runs the game)

Without loading the second conf file, the games I've tried (HOMMs) complain that there's no CD drive found - presumably because the ISO that the second conf file mounts has not been mounted.

Perhaps a patch could be added that, instead of having to start an EXE or BAT file, would also allow a .conf file to be selected.  If this conf file auto launches a programme then run it.  If not update the conf settings and allow the user to select another BAT / EXE / Conf file
« Last Edit: June 20, 2014, 01:08:44 am by Arrakis »

Arrakis

  • Posts: 6
Re: DOSBox 0.74 SVN for GCW0
« Reply #57 on: June 20, 2014, 01:08:04 am »
Have just got the first HOMM from GOG to work, by appending their doshomm1_single.conf file to the end of ~/.dosbox/[conf file].  Then I had to change their mounting commands from relative file paths (which are not relative to the [conf file] directory) to absolute file paths.  Obviously this means I will have to swap around a conf file for every GOG game I play (see post above for suggestion).

As the game is mouse based i used the PWR + B trick.  Would be nice if this allowed you to use the analogue nub for mouse as it's DPAD only.  Would also be nice if the DPAD / NUB could be specified in the DOSBOX settings (maybe it can, someone let me know)

Game was a bit slow with sometimes jerky sound.  Not unusably slow, but I probably wouldn't have the patience to use it at that performance.

Thanks for the work!
« Last Edit: June 21, 2014, 01:25:22 pm by Arrakis »

Wild Penguin

  • Posts: 69
Re: DOSBox 0.74 SVN for GCW0
« Reply #58 on: June 25, 2014, 07:57:50 pm »
Perhaps a patch could be added that, instead of having to start an EXE or BAT file, would also allow a .conf file to be selected.  If this conf file auto launches a programme then run it.  If not update the conf settings and allow the user to select another BAT / EXE / Conf file

This is exactly what I have done (EDIT: Minus the detection of running a program). Actually, all it requires, is a different default.desktop -file inside the OPK. See the other thread, I've been using it in combination with the patch in this thread (which will enable re-defining the VKB key). This will require you to recompile dosbox, and make the OPK yourself, and making your own C drive for the game(s).

It could be simplified even further with a simple fronted / menu, but that would require some work (by some programmer / hacker) - and it will not remove the fact, that running dos games may require some knowledge from the user to set things up properly sometimes (since it is difficult to make a fronted that will cover all kinds of games / setups, I believe. Editing the few text files by hand will always be more versatile than a frontend will ever be).
My Hocoslamfy highscore: 107. Also try Freedroid for GCW0!

sergeylukin

  • Posts: 5
Re: DOSBox 0.74 SVN for GCW0
« Reply #59 on: October 19, 2014, 12:47:15 am »
Also, just a suggestion: perhaps we could associate dosbox with .conf files so, that dosbox could be invoked as such: 'dosbox -userconf -conf CUSTOM.conf' (equivalent to dosbox -conf ~/.dosbox/dosbox-SVN.conf -conf CUSTOM.conf).

This is important for all GOG dos based files.  They run two conf files as standard: dosboxGAMENAME.conf (which loads the standard dosbox stuff) and dosboxGAMENAME_single.conf (which mounts the actual game files and auto runs the game)

Hi everyone,

Just FYI. I was also challenged with this and have created a small tool that allows loading DOSBox for GCW0 with game-specific configuration. You can learn more about it here: https://github.com/sergeylukin/cfgmock

Hope it helps