Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / help needed with new product release

Author
Message
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 16th Feb 2015 15:23
Hey everyone. I am just a little bit upset. I have spent 3 years developing a commercial product, TOWER CAB, and have just released it to the public. I used DarkBasic Pro because supposedly, it was a compact language, all the user would need on his end is DirectX 9.0c, and I wouldn\'t have to include an installer, just provide the compiled program folder, etc.
Well, this is proving to not be the case. I\'ve had to create an installer to include DLLs that I did not know the program would have to install, primarily MS VC++ runtimes 7.1.
Now, when the customer tries to run the program, it reports that MFC71.DLL cannot be found or the exe times out with an \"access denied\" report. If I provide the MFC71.DLL then the customer is told, \"error 1507 screen mode not supported\" or something to that effect. So, what I thought was going to be a breeze is turning into a configuration nightmare. Any thoughts?
TheComet
17
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 16th Feb 2015 16:36
Quote: "error 1507 screen mode not supported"


This means that your application was unable to get the resolution it's trying to get from the graphics driver.

It could be anything from the GPU not supporting the resolution you're trying to set, to the computer not supporting accelerated 2D/3D rendering.

Make sure the user has directx 9.0c August 2007 or later installed. He can check this by running "dxdiag" after pressing Win+r.

The only way to do great work is to love what you do -- Steve Jobs
James H
18
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 16th Feb 2015 16:37
I could be wrong but the missing dll is something I think is required by IanM's matrix utility plugin - are you using this? If so then you will need to provide this to the user. From what I remember it goes in system32 folder but its better to just have the dll file(s) packed in the same folder as the exe. For vanilla DBP I can't say I have ever needed anything other than dx9c to get a dbp compiled exe running on other machines. If your just using vanilla dbp then what update version of dbp did you use? (not sure if vanilla is right term to use or not given my mention of updates - essentially I mean dbp with whichever update you have but no plugins at all)
If the other error is "display mode not supported" or similar then that's a hardware or driver issue at the users end I should think, you would be better off giving control back to the user to choose which resolution they want perhaps by reading from a config file prior to changing the display mode in your code - assuming that you compiled the exe with a low resolution setting like 640*480 in the IDE to ensure compatability.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 16th Feb 2015 20:25
I am not setting a screen mode, the game is running in a window and it is simply sizing it to the users' desktop screen width and screen height. I purposely left out any attempt to alter the users' screen and simply fit the window to whatever they are using.

I did package the MVC++ runtimes for the MatrixUtil in the setup program, but MFC71.DLL is not one that was supposedly required. As a matter of fact, the PC that I have done most of the writing of the program on, does not even have that file on the PC.
Green Gandalf
VIP Member
20
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 16th Feb 2015 21:14 Edited at: 16th Feb 2015 21:14
Quote: "I am not setting a screen mode"


Not even in the default project properties settings when you compile it? I've often been caught out by that when I change it from the almost (?) universally supported 640x480. If the mode you've chosen isn't supported by the user's system the program will fail before it even gets to the line changing the mode to the user's system value.

See image:





Powered by Free Banners

Attachments

Login to view attachments
James H
18
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 16th Feb 2015 21:46 Edited at: 16th Feb 2015 21:48
Even though you aren't setting the display mode in your code, when the program initially starts to run, a display mode is set in accordance to the IDE settings for the project. I would double check you have not got a display mode set in the IDE that is a high resolution at the time you compile - 640*480 is default. I think we would need more information such as when is the error thrown? Is it immediately after the exe is run or is it later than that? Have you tried a simple exe on the end users machine that has a single 3d object created at the touch of a button to see if it then throws a wobbly or even just a compiled exe with barely any code other than say a main loop? Do you have details of the users hardware?

Your saying its not the dll that you previously said it was? I'm confused!! I can only assume you mean its a similar name such as mscvr71 or mscvp71? If not which dll are we talking about? This aside you must have the file(s) on the pc you did most of the writing on or IanM's plugin commands won't work as far as I know. Do you even use any commands from matrix utils? Easiest way to check if you have a big project is to temporarily remove any dll from plugins folder that belong to matrix utils then open your project and compile. If you used a command from the plugin it wont recognise that command and so you will therefore know you have used it. If you have, then you must have the dll file on the machine you think you don't.

EDIT I should have refreshed before posting, didnt see GG's post, also didn't even realise TheComet posted earlier until now as we posted almost the same time! Ah well
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 17th Feb 2015 00:13
I took everyone's advice and changed how it starts. I set the default mode to 800x600, not 640x480 and will see how it goes. Instead I am having the user choose a screen resolution using this code.



Then it should set the screen each time it starts. I've tested it and its working fine. So I've sent to a few users having issues.

I included in my installer the DLLs that Ian's Matrix1Util require. But the users have been reporting that they are getting an error saying missing dll MFC71.DLL. So I provide them with that DLL, then the next error says, error 1507.

Hopefully this new approach will end the madness. Thanks for your tips guys. I'll tell you what happens.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 17th Feb 2015 19:29
Well, I have made some progress. The game will prompt for their screen mode, save it, and then use it the next time the game runs. Others, need MFC71.DLL to be placed in the Windows\System32 or SysWOW64 folder for the game to run, others are just experiencing a lock up altogether. I have no clue what's causing the lockup.
Green Gandalf
VIP Member
20
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 17th Feb 2015 19:50
Sounds encouraging - apart from the lock up .

What are the symptoms precisely? System hanging? Permanent black screen? Or something else?



Powered by Free Banners
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 17th Feb 2015 23:07
I designed the program to start in 800x600 and ask to user to choose a screen resolution. This is what happens;

1. Some need to place MFC71.DLL in their System32 or SysWOW64 folder. Others don't, but the game will run as it should and the initial screen request code works.

2. The cursor spins and spins, but the executable timesout with an APPCRASH error. Even if I provide MFC71.DLL it doesn't matter, it simply does not run at all.

I had to create an installer to provide these 2 files;

[email protected],$(WinSysPath),,$(Shared),2/21/03 1:42:22 PM,348160,7.10.3052.4
[email protected],$(WinSysPath),,$(Shared),3/19/03 5:14:52 AM,499712,7.10.3077.0

I also provide the direct09credist.exe to install DirectX 9.0c
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 17th Feb 2015 23:27
the APPCRASH code is "c000005" - access denied.
Green Gandalf
VIP Member
20
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 17th Feb 2015 23:50
Hmm? Haven't come across that one. Sounds like something security related. Have they tried simple things like Run as administrator etc?

Did you get that code before, during or after putting the missing DLLs into the system folders? Could it be that step that's causing trouble?



Powered by Free Banners
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 18th Feb 2015 06:18
There doesn't seem to be a common cause. Some are getting the game to run to a point before crashing. And they getting a message, bitmap not found line xxxx. But, yet others are running the exact same code for hours without an error at all.
With some, the program never starts, just hangs and then errors with a timeout error.
I can give a person the MFC71.DLL and have them put it all 3 folder, the game folder and Windows\System32 and Windows\SysWOW64, and it will fix it and it will run. Others do the same thing and nothing...no change whatsoever.
I've had them do compatibility of Windows XP/SP3, Run As administrator, uncheck any Read Only settings of the folder, Check all exe's to be the same compatibility, etc.
It will work for some, and then a total failure for others. I am unable to find any kind of pattern at all.
They sometimes get file not found errors on .txt files used in the game. I'll have them check the folder and they are there even though the error occurred. It is absolutely bizarre.
Could it be possible, some CPUs are so fast that when reading large .x files, the system is not waiting for a flag to say the load is complete, thus reporting file not found later in my code? I do have some rather large scenery and 3d objects being loaded. There are 700+ support files in the game folder. Mostly PNG and .X files for the game.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 18th Feb 2015 06:21
Here is a screen shot from the game.

Green Gandalf
VIP Member
20
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 18th Feb 2015 12:59
Quote: "And they getting a message, bitmap not found line xxxx. "

Quote: "They sometimes get file not found errors on .txt files used in the game. I'll have them check the folder and they are there even though the error occurred. It is absolutely bizarre."


Both those errors ring bells for me. Sadly, I can't recall the circumstances. Both had simple explanations and solutions if I recall correctly. Perhaps someone else can cast light on this? As you say, bizarre - and very irritating.

Where have these particular users installed the game?



Powered by Free Banners
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 18th Feb 2015 14:16
The game is purposely installed under c:\towercab

I have found if you avoid using \Program Files or \Program Files(x86), there are less issues with the UAC system.

And I am not real certain on which redist version of DirectX to give them. I am giving them 09c, August of whatever year that is, I think.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 18th Feb 2015 14:17
If there is someone reading this who has experience getting past this type of issue, email me and I will gladly give you a copy to test.
James H
18
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 18th Feb 2015 17:04
I just noticed you use Dark Clouds and Extends. I can't speak for Dark Clouds - I don't have it - but Extends I do(and have not used for years now for reasons about to mention). Extends does have some issues when used on some systems with later OS's than when it was created, certain demo's didn't work unless the exe once compiled was then run in compatibility mode for win98 if I remember it right, but then that put limits on either memblock sizes or how much ram could be used, or something like that - I don't exactly remember as its a very long time ago. There where other issues I can not recall at this time unfortunately. My only suggestion at this point is to go through all your plugins and search for issues using forum google search. See if you can find similar issues. Alternatively depending on how heavily your software relies on various plugins you could a)remove the need for them with other solutions or b)temporarily remove the code for them to see if you can't get your users past points of hanging/crashes etc - not as a means to fix but to test with later fixes in mind - obviously. I will keep searching and thinking to see if I can narrow this down/help in any way, if I come up with anything I will post back, right now my gut is telling me Extends or another plugin but its just a feeling and not fact.
wattywatts
15
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 18th Feb 2015 22:36
I'd try nixing full screen exclusive mode and use this or something like it:


I do have a bit of experience with errors of this type. It will also solve the alt+tab crash issues prevalent with DBP applications.
Also when you compile, make sure on the side, (see GG's image above) screen type is set to window.
If you haven't, I'd also recommend a mandatory install of the exact dx package included with your dbpro disc.
I think getting rid of full screen exclusive mode will stop those missing bitmap errors.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 18th Feb 2015 22:43
I was using a window mode in the beginning; but I can guess I can try this on someone experiencing the lockup. Thanks, I'll give it a shot.
wattywatts
15
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 18th Feb 2015 22:50 Edited at: 18th Feb 2015 22:54
Ah sorry, should have read better. Well, I'm assuming any image not found related errors are just caused by whatever crash occurred and not indicative of the crash itself.
It seems like it's got to be caused by Matrix1Util?

edit
I do have one other idea, although I don't know for sure if it would isolate the problem - you could code a quick app that loads images and displays them, etc and ask your customers to see if it crashes or not. You could at least tell what isn't causing the crash.
Maybe also make an app that loads and uses the plugin for testing.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 19th Feb 2015 01:10
The bizarre thing is it runs fine on some users PC without an error at all.

I just created a window mode again, not better.

The only plugins I am using are Dark AI and Dark Clouds.

I am hearing reports that they never see the cloud system start before it crashes. I wonder if I need to provide DLLs used by DarkClouds.
wattywatts
15
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 19th Feb 2015 02:06
Possible.. I don't know much about dark clouds. Maybe you could add an option to turn off clouds before the game starts? (I don't know if you have a splash screen with options set up or not)
James H
18
Years of Service
User Offline
Joined: 21st Apr 2007
Location: St Helens
Posted: 19th Feb 2015 03:06
Quote: "The only plugins I am using are Dark AI and Dark Clouds"

On your thread in Program Announcements you said
Quote: "It is using DBPro 7.61, DarkClouds, MatrixUtil28 and Extends"

Assuming you are using Extends then please take note of the warning on the products page
Quote: "Please note that eXtends is NOT compatible with Windows Vista and Windows 7"

I would check which OS each customer who is having issues uses. In fact I would just scrap the use of extends all together unless of course your happy with limiting your software to older OS's.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 19th Feb 2015 03:14
If I said Extends, that must have been from my original intent. The program was written on a Windows 7 Ultimate PC (32 and 64 bit). And I just checked, and I am pretty certain I never used any Extends calls. So, I am fairly certain Extends is not the issue. But thanks for the warning.
Ortu
DBPro Master
17
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 19th Feb 2015 22:18
Sorry to hear about the problems you're having and wish i could be more help.

You aren't going to want to hear this right now, but this illustrates why it is so important to have a beta test phase / demo to ensure compatibility on a wide variety of hardware and os outside the development environment before going to a live retail release.

Can you provide users with a debug version that can produce detailed log files? Can you identify anything in common among users with issues? Anything in common among users without issues? Can they provide you a dxdiag? It contains a lot of good system info as well as dx. The problem here is a lack of information to pinpoint the root cause.

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 20th Feb 2015 02:50
Ortu,

Sounds like you think this is my first attempt at software development. I've been a developer for 35 years, I am not an amateur.

I made the move to DarkBasic from the .NET Visual Studio world (VB6, 2005,2008,2010,2012) to get away from DLL hell. I was lead to believe that all you needed for your DBPro app, was DirectX 9.0c, and the folder your app resided in. Had I known that I would still have to account for all these DLLs and package them with my application, I may have not made the move. This is still DLL-hell.

It didn't have anything to do with beta testing. I've been testing this app for 3 years. The information needed now is exactly what DLLs are needed that I assumed wouldn't have to be identified.

I guess had I ONLY used strictly DBPro code and none of the addons, then perhaps what I thought might have been true.
Ortu
DBPro Master
17
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 20th Feb 2015 08:51
I'm not meaning to imply that you are an amateur or inexperienced. It does appear however that this product was not tested on a wide range of external hardware/os by users not involved in its development, which would have revealed these issues before it's retail release to the general public. You have been testing for 3 years, but that seems that it did not involve deployment testing, which is just as important as stability, performance, and functionality.

Perhaps I'm wrong in this, but that is how it appears. I'm sorry if this offends you, that's not my intention, rather this is a cautionary tale for all of us who are looking to release dbpro games in the future.

That aside, please refer to the last portion of the post, my advice is to try to identify anything that problem users have in common as well as anything good users have in common, compare the two. Get the dxdiag files. Provide a debug version to get detailed log files leading up to the crash.

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 20th Feb 2015 20:08 Edited at: 20th Feb 2015 20:08
So, the list of missing DLLs has been identified. And that is where I went wrong with DBPro in general. I was lead to believe that with DBPro, there was no need to be concerned with distributing DLLs with your compiled program. That all the user needed was DirectX and your compiled program and any content you created for it. So, I made no attempt to include ANY DLL, just the DirectX 9.0c installer, because I did not know I needed to. And none of the documentation for Dark Basic or any plugin identifies the need to do so either.

So I will now package my application, just like I did in Visual Studio, DLL hell since 1990 and move on. But thanks for your feedback. So like the saying goes, "if something sounds too good to be true, it probably is..."
tiresius
22
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 20th Feb 2015 22:57
So giving the user all the DLLs in question fixed their problems with file not found errors and other hangs/crashes?

wattywatts
15
Years of Service
User Offline
Joined: 25th May 2009
Location: Michigan
Posted: 20th Feb 2015 23:24
Quote: "I made no attempt to include ANY DLL, just the DirectX 9.0c installer, because I did not know I needed to."


Quote: "I've been testing this app for 3 years."


I'm not getting it man, if the problem was due to missing DLL's wouldn't you have caught it the first time you tested on a clean OS install?
Rudolpho
19
Years of Service
User Offline
Joined: 28th Dec 2005
Location: Sweden
Posted: 21st Feb 2015 00:14
Quote: "I was lead to believe that with DBPro, there was no need to be concerned with distributing DLLs with your compiled program."

If you use the DBPro libraries themselves and nothing else this is likely the case as well.
However when it comes to third party libraries TGC can of course make no such guarantees, if they did with DBPro in the first place (I don't recall seeing any mention of such, but perhaps they did).

Quote: "I'm not getting it man, if the problem was due to missing DLL's wouldn't you have caught it the first time you tested on a clean OS install? "

It indeed should, I'm guessing the testing systems weren't completely clean installs.
I myself usually catch dependency errors simply by having a friend try out a program; they almost always manage to have absolutely no runtimes installed, even if we went through the same thing for a similar program just a month ago...

Green Gandalf
VIP Member
20
Years of Service
User Offline
Joined: 3rd Jan 2005
Playing: Malevolence:Sword of Ahkranox, Skyrim, Civ6.
Posted: 21st Feb 2015 00:22
Quote: "I myself usually catch dependency errors simply by having a friend try out a program"


My grandson's machine is a good test for such things. He regularly fouls his system up so much that he has to reinstall Windows about once a month - it's called DL hell.

Quote: "So, the list of missing DLLs has been identified."


Was that the main problem after all?



Powered by Free Banners
Attila
FPSC Reloaded TGC Backer
20
Years of Service
User Offline
Joined: 17th Aug 2004
Location:
Posted: 22nd Feb 2015 11:19 Edited at: 22nd Feb 2015 11:21
Use the following function to find and set the best available screen resolution. Simply use the function on top of your program and you will always set a valid and working screen resolution in a fullscreen.

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 26th Feb 2015 23:48
Thanks Attila, nice piece of code there.
aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 9th Mar 2015 21:12
Finally have determined all of the requirements for my product release;

1. DirectX 9.0c
2. .NET Framework 3.5 SP1
3. Microsoft C++ 2005 Runtimes
Kevin Picone
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 10th Mar 2015 05:25
just out of curiosity, why would does it require the .NET framework ?

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 11th Mar 2015 02:57
the 3.5 framework is not something that every PC will have installed on it. The Installshield scan app also reported that it was needed.
Kevin Picone
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th Mar 2015 03:11
dbpro exe's aren't dependent upon .NET, but some 3rd party plug can be. Depending upon the plug in, you may be able to find an alternative and remove that giant boat anchor.

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 11th Mar 2015 04:09
from what I know about C++, it is a .NET technology, it sure isn't COM.
Kevin Picone
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th Mar 2015 05:01
Quote: "from what I know about C++, it is a .NET technology, it sure isn't COM.
"


No. C++ has nothing to do with NET. There are of C++/CLR compilers that can target/output CLR bytecode, much like C#/VBNET do.

All standard Dbpro command sets are all compiled native! However, there's no guarantee that 3rd party plugs are. Which is where such a dependency would come from.

aerostudios
15
Years of Service
User Offline
Joined: 20th May 2009
Location: Oklahoma City OK (USA)
Posted: 11th Mar 2015 05:13
Really? are you trying to tell me C#/VB.NET (emphasis .NET) are not .NET technology? I think you better go back and read the .NET documentation, especially since VB.NET began with .NET framework 1.0 and DID NOT EXIST prior to .NET framework. C# came even later.
Kevin Picone
22
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th Mar 2015 05:34
Quote: "Really? are you trying to tell me C#/VB.NET (emphasis .NET) are not .NET technology?"


erm.. that's not what I said.

Ortu
DBPro Master
17
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 11th Mar 2015 06:36 Edited at: 11th Mar 2015 06:38
Quote: "C++ has nothing to do with NET."


would be what he said

Anyway, so have your problem users received/installed these and had their issues fully resolved?

Login to post a reply

Server time is: 2025-05-15 07:44:47
Your offset time is: 2025-05-15 07:44:47