gfxgfx
 
Please login or register.

Login with username, password and session length
 
gfx gfx
gfxgfx
 
Members, please note that our guidelines are located here.
 
gfx gfx
gfx
484576 Posts in 28410 Topics by 2464 Members - Latest Member: austinrobert February 28, 2020, 02:49:35 PM
*
gfx* Home | Help | Calendar | Login | Register | gfx
gfx
The Gaming Universe  |  The Archives  |  Archived Projects  |  Open Zelda  |  OZ Help (Moderator: red_team316)  |  How to Build OZ7 on Linux
gfx
gfxgfx
 

Author Topic: How to Build OZ7 on Linux  (Read 2442 times)

Offline red_team316

  • Moderator
  • Executive
  • *
  • Posts: 1,411
    • View Profile
How to Build OZ7 on Linux
« on: April 03, 2010, 11:07:38 PM »
How to Build Open Zelda 7.0 on Linux64
(but will probably work fine on Linux32 also)

1) First, you will need Linux. If you already have it, skip this part. If you don't have it, you can download an easy to use distro from here:
http://www.ubuntu.com/
http://www.kubuntu.org/

I use Kubuntu, but the following instructions will work on either.

Download and burn the ISO image to CD. Then leave the disc in your computer and reboot, and follow the installtion instructions.
Ubuntu and it's variants are touted for their ease of use so if you can install Windows, you can install Ubuntu.
Once the installation is complete, reboot your computer and proceed to the next step.

2) Open up a terminal. This can be found in the Start/Programs Menu on the taskbar. It will be called 'Terminal' in Ubuntu and 'Konsole' in Kubuntu.
This is very similar to the Command Prompt in Windows or DOS.

3) We need to install several dependencies that are required to build OZ7. Type into the terminal:
Code: [Select]
sudo apt-get update
It will prompt you for your password, so type in your user password and it will find the latest packages for you.

Next, once you are up to date, you will need to install several packages. Type into the terminal:
Code: [Select]
sudo apt-get install cvs
             build-essentials scons  
             libpng12-0 libpng12-dev
             libsdl1.2debian libsdl1.2-dev
             libsdl-image1.2 libsdl-image1.2-dev
             libsdl-ttf2.0-0 libsdl-ttf2.0-dev
             libsdl-net1.2 libsdl-net1.2-dev
             libsdl-mixer1.2 libsdl-mixer1.2-dev
             libsdl-sound1.2 libsdl-sound1.2-dev
             libsdl-gfx1.2-4 libsdl-gfx-1.2-dev

4) Next, go to:
http://www.fmod.org/index.php/download#FMODExProgrammersAPI
and download the FMOD Ex Programmers API for your platform.
Since I am running 64-bit, my package was this:
fmodapi43000linux64.tar.gz

You can right click on the Download button and 'Save Link As' or else it will download either
to your Desktop or Downloads folder. I.E. '/home/username/Desktop' or '/home/username/Downloads'

Extract the archive by clicking on it. Under Kubuntu, this will open up under Ark.
A tar.gz is just like a zip file, just a different format.

Once extracted, go into the extracted folder(mine was /home/username/Downloads/fmodapi43000linux64)
You will see a file called Makefile. Open up a terminal in this directory and type:
Code: [Select]
sudo make install
Note: Yes, this is indeed right. There is no need to configure or make first.

5) Now we need to grab the OZ7 source.The source code for Open Zelda 7.0 can be found here:
http://sourceforge.net/projects/openzelda/develop

but we will be downloading it through our terminal instead.

Create a directory somewhere that you will be using for OZ7.
I.E. /home/username/OZ7 would be a good place to make it.

open a terminal in your OZ7 directory and type:
Code: [Select]
cvs -d:pserver:[email protected]:/cvsroot/openzelda login
It will ask for a password, just leave it blank and hit enter.
Next type:
Code: [Select]
cvs -z3 -d:pserver:[email protected]:/cvsroot/openzelda checkout -P "Open Zelda 7.0"
...and it will download the full source code for OZ7 for you.


6) Next you will need to fix amx.c or else you will get nightmarish error messages about assert_static.
This step should be omitted in the future, but this is a quick hack to get it to compile. This was certainly the hardest part for me.
Open up /home/username/OZ7/Open Zelda 7.0/AMX/pawn/amx.c

Change this line in amx.c(should be line 566 or somewhere close) for Pawn Version 3.3.4127:
Code: [Select]
assert_static(sizeof(f)<=sizeof(cell)); /* function pointer must fit in a cell */
To:
Code: [Select]
STATIC_ASSERT(sizeof(f),sizeof(cell)); /* function pointer must fit in a cell */

Then add this to the very top of amx.c:
Code: [Select]
#define ASSERT_CONCAT_(a, b) a##b
#define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b)
/* These can't be used after statements in c89. */
#ifdef __COUNTER__
  /* microsoft */
  #define STATIC_ASSERT(e,m) \
    enum { ASSERT_CONCAT(static_assert_, __COUNTER__) = 1/(!!(e)) }
#else
  /* This can't be used twice on the same line so ensure if using in headers
   * that the headers are not included twice (by wrapping in #ifndef...#endif)
   * Note it doesn't cause an issue when used on same line of separate modules
   * compiled with gcc -combine -fwhole-program.  */
  #define STATIC_ASSERT(e,m) \
    enum { ASSERT_CONCAT(assert_line_, __LINE__) = 1/(!!(e)) }
#endif
Save amx.c and you are done with this file.
Reference Information came from here:
http://www.pixelbeat.org/programming/gcc/static_assert.html

7) This next step should also be omitted in the future when the build script is updated.
Open up the file /home/username/OZ7/Open Zelda 7.0/SConstruct
and add the line:
Code: [Select]
env.Append(LIBS = ['SDL','SDLmain','SDL_net','SDL_image', 'GL', 'GLU', 'png'])
after this line
Code: [Select]
env.Append(LIBPATH=Dir("Libs/api/lib"))
Save the file and your done.
Without the 'png' added, my system complains about external references to png_this_and_that, even though I know that libpng is installed.

Now open a terminal in:
/home/username/OZ7/Open Zelda 7.0
and type:
Code: [Select]
scons
If all went well you will see a line at the bottom of your terminal saying:
Code: [Select]
scons: done building targets.

8) We're not done yet. Apparently the graphics are not included in the OZ7 source at this time, so we will grab them from OZ6.

Grab all the files from OZ6's
Quest Designer 2.0.4c/sprite sheets
directory and copy them into:
/home/username/OZ7/Open Zelda 7.0/bin/

Also you will have to create several graphics. Just copy and rename some png files to:
"Open Zelda.PNG"
"lttptext.png"
"font.png"
The UpperCase PNG in "Open Zelda.PNG" is essential, because Linux is case sensitive, wheras Windows is not.

9) Now open up a terminal in:
/home/username/OZ7/Open Zelda 7.0/bin
and type:
Code: [Select]
./oz_player
and you should see OZ7 fire up to life automagically.
As you can see, mine looks a bit odd due to the fact that some of my graphics are wrong. Hopefully that will be fixed soon :P

10) Thats it. Now that I can get OZ7 to build properly, I figure I'll take some time to review the source to get familiar with it and fix some things up.
If anyone has any comments or corrections to this guide, please post it, as it's mainly for me to get up and running, but will hopefully be helpful to others too.



« Last Edit: April 03, 2010, 11:10:40 PM by red_team316 »

Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #1 on: April 04, 2010, 12:29:16 AM »
thanks for info on step 6, I also found that if you compile it as C instead of C++ that won't be a issue.
edit: or maybe not....

edit2: Adding flags -DPAWN_CELL_SIZE=64 -DHAVE_I64 does get my version of Pawn to compiled.
« Last Edit: April 04, 2010, 01:53:45 AM by Luke »

Offline red_team316

  • Moderator
  • Executive
  • *
  • Posts: 1,411
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #2 on: April 04, 2010, 05:17:47 PM »
That works great.
I took a look through the amx.h header and found the flags and agree. For some reason KDE4's find in files is doing a horrible job of finding anything...

The proper solution to step 6 would be:
6)
Open up CGame.cpp
and comment out the line:
Code: [Select]
#include "small/amx.h"
as it never supported 64-bit(only 32 and 16). I think the general idea for OZ7 was to only focus on backwards compatibility once everything else was in order.
Or try adding the typedefs for 64-bit to small's amx.h since it's already been hacked up quite a bit for OZ6.

Next, Open up SConstruct
and change the line:
Code: [Select]
     env.Append(CCFLAGS = ['-g','-Wall','-Wno-parentheses',
          '-Wno-sequence-point'])
in def OpenZelda_PrepareLinux(env):
to
Code: [Select]
     env.Append(CCFLAGS = ['-g','-Wall','-Wno-parentheses',
          '-Wno-sequence-point', '-DPAWN_CELL_SIZE=64', '-DHAVE_I64'])

Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #3 on: April 04, 2010, 06:43:57 PM »
I should point out, if you build Pawn as 64bit, you can't run script compiled for 32bit systems. see http://www.compuphase.nl/bitboard/index.php?DATEIN=tpc_mpwenttyo_1143487803

Offline KingOfHumans

  • Messiah
  • ******
  • Posts: 17,866
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #4 on: April 04, 2010, 06:51:04 PM »
At first OZ7 was going to have backwards support, but it's been changed to not worry about the older versions.
Kouruu said if we had the quest source we could convert it to work for OZ7.

Offline red_team316

  • Moderator
  • Executive
  • *
  • Posts: 1,411
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #5 on: April 04, 2010, 07:40:03 PM »
Lukex, do you think it would be a far stretch, that for 64-bit systems, to have the QD compile quests in either 32 or 64 bit then? The actual code that would create the quest could be a separate binary which is called by the QD...

KOH, I think that the conversion to OZ7 for older quests shouldn't be too big of a deal considering Lukex demonstrated awhile back how to extract quest data. Something like that would probably be handled by QD I would think rather than have OZ7 player recompile at runtime.

Can somebody attach or point me to where to get the proper graphics for:
"Open Zelda.PNG"
"lttptext.png"
"font.png"
That would be a big help in ensuring that everything is actually being displayed properly.

I did take a look at the QD, and not suprising, the reason why it exits so quickly is that there is nothing there. I took some time last night to start a basic QD using some Qt4 code I have on other projects and stripped it down to work for the project. If anyone has some screenshots of what Kronus previous QD looked like, I'd be interested. Other than that, I'll check out the OZ7 thread for other suggestions/improvements. Considering there is no work done on the QD at this point, I'm going to start it.

Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #6 on: April 04, 2010, 08:50:44 PM »
Luke, do you think it would be a far stretch, that for 64-bit systems, to have the QD compile quests in either 32 or 64 bit then? The actual code that would create the quest could be a separate binary which is called by the QD...
You would just have any QD include both version of the script in the quest, and then the engine can choose which one to run.

What "no work done on the QD"? > http://www.youtube.com/watch?v=D2xeqGnkvno :)
you can find the source for that at http://mokoi.svn.sourceforge.net/viewvc/mokoi/unsupported/loader_openzelda/src/ It can handle sprites and maps so you might find the source useful.

Offline Kouruu

  • Master Mage
  • Regimental
  • ****
  • Posts: 1,660
  • OZ Scripter
    • View Profile
    • Kouruu's Link to Open Zelda
Re: How to Build OZ7 on Linux
« Reply #7 on: April 05, 2010, 06:54:30 AM »
scrap the pawn scripts in that build RT, as those are badly implemented and need to be redone. They were added and modified to attempt to install both versions simultaneously but failed.
All OZ Members Unite


Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #8 on: May 07, 2010, 05:48:50 AM »
KOH, I think that the conversion to OZ7 for older quests shouldn't be too big of a deal considering Lukex demonstrated awhile back how to extract quest data. Something like that would probably be handled by QD I would think rather than have OZ7 player recompile at runtime.
Someone fixed my permission, so I have to post it here instead of http://www.thegaminguniverse.com/forum/index.php?topic=27566.0

Code: [Select]
/* QST Extracter
   Copyright (C) 2001-2006. Open Legends' Project
   Copyright (C) 2010. Luke Salisbury
 
   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2
   of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <unistd.h>
#include <vector>

#define readmode "rb"

struct filelist {
unsigned long start, end, enc;
char name[64];
};

FILE *fBQuest;
std::vector<filelist> quest_files;

char cEncryptionKeys[3];
char *pEncryptionKeys;
char szBuffer[128];
long lFiles;
long lCurrentPos;

long lStart;
long lFinish;
long lFilePos;

long lHeaderPost;
long lHeaderSize;

bool bEncrypted;

int ReadNextChar()
{
int n;
char c = fgetc(fBQuest);

// Increment the file position
lCurrentPos++;

if ( c == EOF )
return EOF;

// Decrypt if necessary
if (bEncrypted)
{
for (n = 0; n < 3; n++)
c ^= cEncryptionKeys[n];  // XOR the char with the Encryption keys
}

return (int)c;
}

bool Extract( filelist current )
{
FILE* pOut;
int c;
if (!( pOut = fopen(current.name, "wb")))
{
printf("Couldnt extract %s\n", current.name);
return false;
}

fseek(fBQuest, current.start + lHeaderSize, SEEK_SET);
lCurrentPos = current.start;
long lFilePos = current.start;
bEncrypted = current.enc;
if (bEncrypted)
{
/* This method is slooooowwww */
for(;;)
{
if (lFilePos == current.end)
break;

c = ReadNextChar();
fputc(c, pOut);
lFilePos++;
}
}
else
{
/* We don't need to touch each char, so this is faster. */
char * buffer = (char*) malloc(current.end - current.start);
if (buffer != NULL)
{
fread(buffer, 1, (current.end - current.start), fBQuest );
fwrite(buffer, 1, (current.end - current.start), pOut );
}
}

printf("Extracted %s\n", current.name);
fclose( pOut );
}

bool GetNextEntry(char *szString, size_t sLen, FILE *in)
{
int m;
char c;

memset(szString, 0, sLen);

for (m = 0; m < sLen; m++)
{
c = fgetc( in );
if (c == EOF)
return false;

if (c == '~')
return true;

szString[m] = c;
}

return false;
}

void LoadFile()
{
filelist currentFile;

char szBuffer[32];
char szVirtName[64];

GetNextEntry(currentFile.name, sizeof(szVirtName), fBQuest);
GetNextEntry(szBuffer, sizeof(szBuffer), fBQuest);
currentFile.enc = atoi( szBuffer );
GetNextEntry(szBuffer, sizeof(szBuffer), fBQuest);
currentFile.start = atol( szBuffer );
GetNextEntry(szBuffer, sizeof(szBuffer), fBQuest);
currentFile.end = atol( szBuffer );
printf("%s %d %d-%d\n", currentFile.name, currentFile.enc, currentFile.start,currentFile.end);
fprintf(stderr, "%s %d %d-%d\n", currentFile.name, currentFile.enc, currentFile.start,currentFile.end);
quest_files.push_back(currentFile);
}

bool ReadString( char* szString, size_t sLen)
{
bool bDone = true;
int n;
int c;

// Get the next string from the file
for ( n = 0; n < sLen - 1; n ++)
{
c = ReadNextChar();

// Check if this is the end of file
if ( lCurrentPos > lFinish )
{
bDone = false;
break;
}

if ( c == EOF || c == '\n' || c == '\0' )
break;

szString[n] = c;
}

if (bDone)
szString[n - 1] = '\0';

return bDone;
}

long ReadLong()
{
bool bDone = false;
char szLong[32];
int c;
int n;

// Get the next string from the file
for ( n = 0; n < 30; n ++)
{
c = ReadNextChar();

// Check if this is the end of file
if ( lCurrentPos >= lFinish )
{
bDone = true;
break;
}

if ( c == EOF || c == '\n' || c == '\0' )
break;

szLong[n] = c;
}

szLong[n] = '\0';
return atol(szLong);
}



int main(int argc, char *argv[])
{
if (!argv[1])
return false;
lHeaderSize = 0;
cEncryptionKeys[0] = 8;
cEncryptionKeys[1] = 0;
cEncryptionKeys[2] = 0;

freopen( "error.txt", "w",stderr);
if ( !(fBQuest = fopen( argv[1], readmode)) )
{
printf("Error: Couldn't Open Quest!");
return false;
}
mkdir("qst");
chdir("qst");
// Load the File Header and make sure its an archive file
if (!GetNextEntry(szBuffer, sizeof(szBuffer), fBQuest))
{
printf("Error: Not A quest!\n");
return false;
}
//fseek(fBQuest, 0, SEEK_SET);
// Check First entry is the archive header
if ( strcmp(szBuffer, "Virtual Archive File"))
{
printf( "Not a valid QST file: '%s'\n", argv[1]);
return false;
}

// Get the number of file in archive
GetNextEntry(szBuffer, sizeof(szBuffer), fBQuest);

lFiles = atol(szBuffer);

if (lFiles < 1)
{
printf( "Empty Quest '%s'\n", argv[1]);
return false;
}
// Get the Size of the header


//Load each file entry
for ( int n = 0; n < lFiles; n++ )
LoadFile( );

lHeaderSize = ftell( fBQuest );

for( int i = 0; i < quest_files.size(); i++ ) {
Extract( quest_files[i] );
}

fclose( fBQuest );
chdir("..");
return EXIT_SUCCESS;
}

A bonus, lines 63-66 are my favorite. Also it might fix broken quests such http://www.thegaminguniverse.com/forum/index.php?topic=40036.0
Code: [Select]
/* QST creator
   Copyright (C) 2001-2006. Open Zelda' Project
   Copyright (C) 2010. Luke Salisbury
 
   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2
   of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <unistd.h>
#include <map>
#include <sys/stat.h>
#include <dirent.h>

struct filelist {
unsigned long start, end, len;
char filename[64];
};

FILE * fBQuest;
std::map<std::string, filelist> quest_files;


bool list_files()
{
dirent * entry = NULL;
DIR * dir = opendir( "." );

FILE * temp;

while ( (entry = readdir(dir)) != NULL )
{
if ( entry->d_name[0] != '.' )
{
filelist file;
std::string name(entry->d_name);

file.filename[63] = 0;
strncpy( file.filename, entry->d_name, 63);

temp = fopen( entry->d_name, "rb" );
fseek( temp, 0, SEEK_END );
file.len = ftell( temp );
fclose( temp );

std::string::size_type size = name.length();
if ( size > 5 )
{
if ( !name.substr( size - 4).compare(".png") )
{
name.replace( size - 4, size, ".bmp" ); // Use PNGs instead :)
}
}
quest_files[name] = file;
}
}
closedir(dir);
return true;
}

void write_header()
{
unsigned long c = 0;
fprintf( fBQuest, "Virtual Archive File~%d~", quest_files.size() );
for( std::map<std::string, filelist>::iterator iter = quest_files.begin(); iter != quest_files.end(); ++iter ) {
fprintf( fBQuest, "%s~0~%d~%d~", (*iter).first.c_str(), c, c+(*iter).second.len ); // F' encryption
c += (*iter).second.len;
}
}

void write_files()
{
FILE * temp;
char * buffer;
for( std::map<std::string, filelist>::iterator iter = quest_files.begin(); iter != quest_files.end(); ++iter ) {
buffer = ( char *)malloc( (*iter).second.len );
//Read File
temp = fopen( (*iter).second.filename, "rb" );
fread(buffer, 1, (*iter).second.len,  temp);
fclose( temp );
//Write File
fwrite(buffer, 1, (*iter).second.len, fBQuest );
free( buffer );
}
}

int main(int argc, char *argv[])
{
if (!argv[1])
return false;

freopen( "error.txt", "w", stderr);
if ( !(fBQuest = fopen( argv[1], "wb")) )
{
printf("Error: Couldn't Open Quest!");
return false;
}
chdir("qst");
list_files();
write_header();
write_files();
chdir("..");
fclose( fBQuest );
return EXIT_SUCCESS;
}

Offline red_team316

  • Moderator
  • Executive
  • *
  • Posts: 1,411
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #9 on: May 09, 2010, 10:54:11 PM »
not quite sure what changes there are just yet compared to the old code, but I just replaced it with the new script, but rather than hacking it up this time around, here is a small patch which gets it to build on *nix. Seems to work fine.

qstextractor mkdir patch
Code: [Select]
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <unistd.h>
#include <vector>

//mkdir is not portable
#ifndef WIN32
#include <sys/stat.h>
#define mkdir(a) mkdir(a, 0777)
#endif

#define readmode "rb"
mkdir portability reference: http://www.brainbell.com/tutorials/C++/Creating_A_Directory.htm

Also, adding return true to the end of the Extract function cleans up a warning.

EDIT: I see the diff mainly has NULL replaced with "\0" and a faster extraction method.

Thanks for the post. I must have missed the qstcreator previously or could not find it.
« Last Edit: May 09, 2010, 11:12:59 PM by red_team316 »

Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #10 on: May 09, 2010, 11:47:05 PM »
I thought I would upgrade it, as it has the same issue* as OZ6, see Bad Sounds thread, personally it a ugly bit of code ripped from OZ which I would totally rewrite if I was still using OZ.
QST creator is new code I quickly wrote up, which just takes extracted files and put it back in a qst unencrypted, to test that bug. Plus ever I since found out that OZ6 supported PNGs I wanted to see quests use them**.

* Windows can open file as text or binary, and using text can freak up binary data. not a issue you would see on other os.
** Only version before 6.4 can use the alpha channel/
« Last Edit: May 09, 2010, 11:48:39 PM by Luke »

Offline Dandel

  • Global Moderator
  • Accepted
  • *
  • Posts: 191
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #11 on: May 10, 2010, 01:04:02 AM »
not quite sure what changes there are just yet compared to the old code, but I just replaced it with the new script, but rather than hacking it up this time around, here is a small patch which gets it to build on *nix. Seems to work fine.

qstextractor mkdir patch
Code: [Select]
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <unistd.h>
#include <vector>

//mkdir is not portable
#ifndef WIN32
#include <sys/stat.h>
#define mkdir(a) mkdir(a, 0777)
#endif

#define readmode "rb"
mkdir portability reference: http://www.brainbell.com/tutorials/C++/Creating_A_Directory.htm

Also, adding return true to the end of the Extract function cleans up a warning.

EDIT: I see the diff mainly has NULL replaced with "\0" and a faster extraction method.

Thanks for the post. I must have missed the qstcreator previously or could not find it.

The make directory command on windows is a little different... it has two methods that can be used on windows 2000 and up...
CreateDirectory Function Reference
CreateDirectoryEx Function Reference

Offline Luke

  • Regimental
  • ****
  • Posts: 1,823
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #12 on: May 10, 2010, 02:08:56 AM »
The make directory command on windows is a little different... it has two methods that can be used on windows 2000 and up...
CreateDirectory Function Reference
CreateDirectoryEx Function Reference
Is there any reason to use these function over mkdir/_mkdir? (just to create a directory)

Offline Dandel

  • Global Moderator
  • Accepted
  • *
  • Posts: 191
    • View Profile
Re: How to Build OZ7 on Linux
« Reply #13 on: May 10, 2010, 01:30:58 PM »
they have a few pro's and cons, the pro is that on windows 2000 and up you get to enforce a specific file security methods. However, for anything older than windows 2000 it looses support.

Offline lucas92

  • Adept
  • ***
  • Posts: 51
    • View Profile
How to Build OZ7 on Linux
« Reply #14 on: May 24, 2010, 01:03:39 PM »
Wait, you've made a sdl version or what? I'd love to have one too on windows. XD

The Gaming Universe  |  The Archives  |  Archived Projects  |  Open Zelda  |  OZ Help (Moderator: red_team316)  |  How to Build OZ7 on Linux
 

gfxgfx
gfx
SMF 2.0.17 | SMF © 2019, Simple Machines Page created in 0.172 seconds with 22 queries.
Helios Multi © Bloc
gfx
Powered by MySQL Powered by PHP Valid XHTML 1.0! Valid CSS!
anything