VOGONS

Common searches


DOSBox-X branch

Topic actions

Reply 860 of 2397, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

SedrynTyros, could you remove my email address, please?
Malicious spam bots circulating on the web can collect the address, making me hard to keep junk mail out of my inbox.
Few years ago, I replaced the plain text with an image on my website to prevent the situation.

I do not have my own source control repository but have been maintaining patches that can be directly applied to the source from the official svn branch. They still need to be cleaned up for a better management.
I am considering to upload a source archive to my website with previous tarballs kept every time a new build is released.
This allows to generate all the changes between the two points.

Reply 861 of 2397, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

I edited Sedryn's post.

A quick diff between your releases would probably help as well. I still need to find out why an app bundle of your code works, while it crashes with dosbox-x code...

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 863 of 2397, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

A regression regarding a recent dosbox-x change is found: case sensitivity issue in the environment variables set.
Lower-case variables should overwrite the upper-case variables.

For example, typing "set path=c:\" makes the SET command show both PATH and path variables.
The following patch should fix the problem.

--- ./src/misc/programs.cpp	2015-01-24 14:29:27.871925500 +0900
+++ ./src/misc/programs.cpp 2015-01-24 15:30:45.392255100 +0900
@@ -296,13 +297,16 @@
return false;
}

+ std::string bigentry(entry);
+ for (std::string::iterator it = bigentry.begin(); it != bigentry.end(); ++it) *it = toupper(*it);
+
env_scan = env_base;
while (env_scan < env_fence) {
/* "NAME" + "=" + "VALUE" + "\0" */
/* end of the block is a NULL string meaning a \0 follows the last string's \0 */
if (mem_readb(env_scan) == 0) break; /* normal end of block */

- if (EnvPhys_StrCmp(env_scan,env_fence,entry) == 0) {
+ if (EnvPhys_StrCmp(env_scan,env_fence,bigentry.c_str()) == 0) {
EnvPhys_StrCpyToCPPString(result,env_scan,env_fence);
return true;
}
@@ -387,7 +391,10 @@
return false;
}

- el = strlen(entry);
+ std::string bigentry(entry);
+ for (std::string::iterator it = bigentry.begin(); it != bigentry.end(); ++it) *it = toupper(*it);
+
+ el = strlen(bigentry.c_str());
if (*new_string != 0) nsl = strlen(new_string);
needs = nsl+1+el+1+1; /* entry + '=' + new_string + '\0' + '\0' */

@@ -396,7 +403,7 @@
while (env_scan < env_fence) {
if (mem_readb(env_scan) == 0) break;

- if (EnvPhys_StrCmp(env_scan,env_fence,entry) == 0) {
+ if (EnvPhys_StrCmp(env_scan,env_fence,bigentry.c_str()) == 0) {
/* found it. remove by shifting the rest of the environment block over */
int zeroes=0;
PhysPt s,d;
@@ -404,7 +411,7 @@
/* before we remove it: is there room for the new value? */
if (nsl != 0) {
if ((env_scan+needs) > env_fence) {
- LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",entry,new_string);
+ LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",bigentry.c_str(),new_string);
return false;
}
}
@@ -433,12 +440,12 @@
/* add the string to the end of the block */
if (*new_string != 0) {
if ((env_scan+needs) > env_fence) {
- LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",entry,new_string);
+ LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",bigentry.c_str(),new_string);
return false;
}

assert(env_scan < env_fence);
Show last 5 lines
-		for (const char *s=entry;*s != 0;) mem_writeb(env_scan++,*s++);
+ for (const char *s=bigentry.c_str();*s != 0;) mem_writeb(env_scan++,*s++);
mem_writeb(env_scan++,'=');

assert(env_scan < env_fence);

Reply 865 of 2397, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Sidenote: the number of times ykhwong's name has been misspelled on VOGONS by posters is appalling, I'm going to see if I can fix some of them 😉

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 866 of 2397, by SedrynTyros

User metadata
Rank Member
Rank
Member
ykhwong wrote:
SedrynTyros, could you remove my email address, please? Malicious spam bots circulating on the web can collect the address, maki […]
Show full quote

SedrynTyros, could you remove my email address, please?
Malicious spam bots circulating on the web can collect the address, making me hard to keep junk mail out of my inbox.
Few years ago, I replaced the plain text with an image on my website to prevent the situation.

I do not have my own source control repository but have been maintaining patches that can be directly applied to the source from the official svn branch. They still need to be cleaned up for a better management.
I am considering to upload a source archive to my website with previous tarballs kept every time a new build is released.
This allows to generate all the changes between the two points.

Hey, sorry about that. Obviously, I didn't consider that. I won't do that again.

Reply 867 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
ykhwong wrote:
A regression regarding a recent dosbox-x change is found: case sensitivity issue in the environment variables set. Lower-case va […]
Show full quote

A regression regarding a recent dosbox-x change is found: case sensitivity issue in the environment variables set.
Lower-case variables should overwrite the upper-case variables.

For example, typing "set path=c:\" makes the SET command show both PATH and path variables.
The following patch should fix the problem.

--- ./src/misc/programs.cpp	2015-01-24 14:29:27.871925500 +0900
+++ ./src/misc/programs.cpp 2015-01-24 15:30:45.392255100 +0900
@@ -296,13 +297,16 @@
return false;
}

+ std::string bigentry(entry);
+ for (std::string::iterator it = bigentry.begin(); it != bigentry.end(); ++it) *it = toupper(*it);
+
env_scan = env_base;
while (env_scan < env_fence) {
/* "NAME" + "=" + "VALUE" + "\0" */
/* end of the block is a NULL string meaning a \0 follows the last string's \0 */
if (mem_readb(env_scan) == 0) break; /* normal end of block */

- if (EnvPhys_StrCmp(env_scan,env_fence,entry) == 0) {
+ if (EnvPhys_StrCmp(env_scan,env_fence,bigentry.c_str()) == 0) {
EnvPhys_StrCpyToCPPString(result,env_scan,env_fence);
return true;
}
@@ -387,7 +391,10 @@
return false;
}

- el = strlen(entry);
+ std::string bigentry(entry);
+ for (std::string::iterator it = bigentry.begin(); it != bigentry.end(); ++it) *it = toupper(*it);
+
+ el = strlen(bigentry.c_str());
if (*new_string != 0) nsl = strlen(new_string);
needs = nsl+1+el+1+1; /* entry + '=' + new_string + '\0' + '\0' */

@@ -396,7 +403,7 @@
while (env_scan < env_fence) {
if (mem_readb(env_scan) == 0) break;

- if (EnvPhys_StrCmp(env_scan,env_fence,entry) == 0) {
+ if (EnvPhys_StrCmp(env_scan,env_fence,bigentry.c_str()) == 0) {
/* found it. remove by shifting the rest of the environment block over */
int zeroes=0;
PhysPt s,d;
@@ -404,7 +411,7 @@
/* before we remove it: is there room for the new value? */
if (nsl != 0) {
if ((env_scan+needs) > env_fence) {
- LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",entry,new_string);
+ LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",bigentry.c_str(),new_string);
return false;
}
}
@@ -433,12 +440,12 @@
/* add the string to the end of the block */
if (*new_string != 0) {
if ((env_scan+needs) > env_fence) {
- LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",entry,new_string);
+ LOG_MSG("Program::SetEnv() error, insufficient room for environment variable %s=%s\n",bigentry.c_str(),new_string);
return false;
}

assert(env_scan < env_fence);
Show last 5 lines
-		for (const char *s=entry;*s != 0;) mem_writeb(env_scan++,*s++);
+ for (const char *s=bigentry.c_str();*s != 0;) mem_writeb(env_scan++,*s++);
mem_writeb(env_scan++,'=');

assert(env_scan < env_fence);

Got it. Done.

I recommend getting some form of source control so that you can track revisions in your code as you apply patches. If you use git, it also makes it easier for other people to incorporate your changes by pulling your branch and then using git's merge functions, and you can git pull from other's branches as well. There's a reason the Linux kernel is developed in that fashion. It's far easier than making diffs between two tarballs and trying to figure out how to merge them together without screwing up the code.

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 868 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie
Alegend45 wrote:

Hey, would you be open to GitHub pull requests?

Sure! Just tell me where to pull/merge from and I'll do it!

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 872 of 2397, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie
TheGreatCodeholio wrote:

I recommend getting some form of source control so that you can track revisions in your code as you apply patches. If you use git, it also makes it easier for other people to incorporate your changes by pulling your branch and then using git's merge functions, and you can git pull from other's branches as well. There's a reason the Linux kernel is developed in that fashion. It's far easier than making diffs between two tarballs and trying to figure out how to merge them together without screwing up the code.

Thanks for the tip, TheGreatCodeholio.
I will take that into consideration.

Reply 873 of 2397, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie
Firtasik wrote:

Maybe a wrong thread, but DOSBox SVN Daum 20150125 gives me less fps in Blood. 😕

Not exactly sure why that happens.
However, I assume that that is caused by some vga_draw updates from DOSBox-X which are incorporated into my build.
AFAIK, the linewise (drawing line by line) is forced and the option was completely removed, possibly leading to the performance degradation.

Reply 874 of 2397, by Firtasik

User metadata
Rank Oldbie
Rank
Oldbie

I've found that launching NOLFBLIM makes that fps drop. Anyway, it looks like Blood doesn't flicker anymore, so no NOLFBLIM needed. 😀

11 1 111 11 1 1 1 1 1 11 1 1 111 1 111 1 1 1 1 111

Reply 875 of 2397, by TheGreatCodeholio

User metadata
Rank Oldbie
Rank
Oldbie

I've set up a web site and wiki for DOSBox-X

Web page: http://dosbox-x.software/
Wiki: https://github.com/joncampbell123/dosbox-x/wiki
Issues tracker: https://github.com/joncampbell123/dosbox-x/issues

DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.

Reply 877 of 2397, by Synoptic

User metadata
Rank Member
Rank
Member
TheGreatCodeholio wrote:
I've set up a web site and wiki for DOSBox-X […]
Show full quote

I've set up a web site and wiki for DOSBox-X

Web page: http://dosbox-x.software/
Wiki: https://github.com/joncampbell123/dosbox-x/wiki
Issues tracker: https://github.com/joncampbell123/dosbox-x/issues

Trying to build today's release : #include "afxres.h" not found in wines.rc

the file is indeed absent from the branch.

Reply 879 of 2397, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie
Synoptic wrote:

Trying to build today's release : #include "afxres.h" not found in wines.rc

the file is indeed absent from the branch.

Replace "afxres.h" with "windows.h" and try again.

Last edited by emendelson on 2015-02-15, 00:11. Edited 1 time in total.