Project

General

Profile

Download (5.48 KB) Statistics
| Branch: | Revision:

boxedwine-source / buildFlags.txt @ master

1
SDL2             This will cause SDL2 to be used instead of SDL1.  You will need to link to the correct libraries.
2
UNALIGNED_MEMORY This is necessary if the host isn't little endian, necessary for asm.js (but not WASM)
3
BOXEDWINE_64BIT_MMU    This will reserve 4GB of memory for each emulated process so that emulated memory can be mapped to host memory with a single offset.  Currently only Win64 build supports this.
4
BOXEDWINE_VM     Requires: BOXEDWINE_64BIT_MMU. Translates x86 machine code to x64 on the fly.  Only supported on the Win64 build.
5
BOXEDWINE_ZLIB   Will allow the file system to be in a zip file (-zip command line argument).  This requires that you link against zlib.
6
BOXEDWINE_HAS_SETJMP  Will allow memory exception to be caught, this should be used for all builds.  Emscripten doesn't use it because it slows things down, but this also means some games won't work.
7
BOXEDWINE_MSVC   Should use this on Windows platform
8

    
9
To compile, you need one and only one of the follow 2 flags
10

    
11
BOXEDWINE_ES     SDL OpenGL ES code will be used.  OpenGL calls will be translated to ES.
12
BOXEDWINE_SDL    SDL OpenGL context will be used
13

    
14
To compile for Windows it is recommended to use Visual Studio 2013 Community Edition
15
https://www.visualstudio.com/en-us/news/releasenotes/vs2013-community-vs
16

    
17
Javascript
18

    
19

    
20
buildjs.sh/boxedwine-shell.js/shellfs.html
21
This build script integrates the browserfs library [https://github.com/jvilk/BrowserFS].
22
It introduces a writeable file store for the HOME_DIRECTORY directory. 
23
3 options for setting variable storageMode:
24
- STORAGE_DROPBOX (requires configuration - see below)
25
- STORAGE_LOCAL_STORAGE
26
- STORAGE_MEMORY (default)
27

    
28
settings:
29
 - specify an alternate root zip file system.
30
 	i.e. root=win32.zip. If not set it is assumed the root fs is boxedwine.zip.
31
 - specify a zip file to appear uncompressed mounted on d:
32
 	i.e. app=chomp.zip would appear as /home/username/.wine/dosdevices/d:/chomp/. Use: zip -r9qdgds 10m chomp.zip ./chomp/*
33
 - change the program to execute via ?p=/home/username/chomp/CHOMP.EXE. surround in quotes if path includes spaces. Can call a .BAT file.
34
 - set the working directory via ?work=chomp. This simplifies p as it can then be relative to the working directory.
35
 - set an overlay via ?overlay=more.zip;files.zip. Where each zip file contains additional files to add to the root file system. Existing files are overridden.
36
 - use c:/ as shorthand for /home/username/.wine/dosdevices/c:/ (also works for d:/)
37
Some simplifications are possible:
38
boxedwine.html?p=notepad - run notepad in the root fs
39
boxedwine.html?root=win32&app=chomp&work=chomp&p=CHOMP.EXE - no need to add .zip for root and app zip file name
40
boxedwine.html?app=chomp&p=CHOMP.EXE - if p does not start with a ‘/‘ and app is set, then the working directory is set to dir + app, i.e. d:/chomp
41

    
42
Remote serving of files
43
The default browserfs ZipFs takes as an argument the zipped contents of the file system and lazily unzips files upon request.
44
Using the &ondemand parameter changes the behaviour to only request the individual zip file entries on demand.
45
This can affect the loading of &root filesystem
46
ie
47
&ondemand=root&root=fullWine1.7.55-v8&overlay=wine1.7.55-v8-min
48
- files in wine1.7.55-v8-min are downloaded on startup, any files not found are loaded on demand from fullWine1.7.55-v8.zip
49

    
50
This approach has the advantage that the downloaded zipped filesystems are smaller, but it has the disadvantage that
51
the network requests for on demand files are synchronous (may block ui thread and also potentially crash the emulator when retrieving large files) and the web server must support range requests.
52
Provided in /project/linux/buildFiles is wine1.7.55-v8-min.zip which contains the minimum files necessary to load a basic wine application
53
To generate your own minimal set of files follow the instructions in /tools/common/Main.java
54

    
55
Dynamically sending files
56
The *-payload parameters can be used to pass in a base64 encoded zip file. 
57
They mirror the existing &app and &overlay parameters but allow the client to supply the app/program/files.
58
Beware that browsers and web server likely have request size limits.
59
example:
60
&app-payload=[base64 string] 
61
&overlay-payload=[base64 string]&p=c:/demo/run.bat
62

    
63

    
64
Other configuration options:
65
AUTO_RUN - indicates if start button is shown or page auto-runs. default true
66
ALLOW_PARAM_OVERRIDE_FROM_URL - indicates if url can be appended with params as above for dir, app, m & p.
67

    
68
notes on file system modes:
69
DROPBOX - OAuth dance provided via dropbox.js library [https://github.com/dropbox/dropbox-js] and oauth_receiver.html.
70
Because of this boxedwine must be served from a web server when using this option (make sure you copy and comment back in dropbox.min.js script).
71
Also must set DROPBOX_APP_KEY and RECEIVE_URL (absolute path) inside the html.
72
Remember to also set the receive_url in your dropbox app console.
73
LOCAL_STORAGE - There are limits depending on browser and OS.
74

    
75
other dials/tweaks inside boxedwine-shell.js
76
see var Module and configure as appropriate
77
You can avoid using url params and hardcode the values.  Search for MANUAL:
78

    
79
Drag and drop is supported. Set AUTO_RUN to false. Simply drag a directory into the page. A dialog will appear and list entries for all executable files found. This is very useful.
80
Getting files into/out of the emulator is provided behind the SHOW_UPLOAD_DOWNLOAD flag. Jszip is used to download a directory as an archive.
81
By default uploading/downloading occurs inside the directory mapped to d:
82

    
(4-4/6)