forked from Henne/Bright-Eyes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.brighteyes
170 lines (127 loc) · 5.28 KB
/
README.brighteyes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Bright Eyes / (ehem. freeDSA)
This is a fork of DOSBox 0.74 with customiziations for "Das schwarze Auge - Die Schicksalsklinge" (aka "Realms of Arkania - Blade of Destiny").
The projects goal is to make that game runnable on newer computers,
with focus on:
* logging (show how the game makes decisions),
* bugfixing (wipe out the last bugs to make the game ultra stable),
* power consumption (let your laptop (or n900) not waste that much power, like running an unpatched DOSBox)
This is done by tracing function calls.
If a function is interesting for the gamer we print a logging output.
If we already know the exact behavior of a function, we can replace it.
E.g. instead letting DOSBox emulate a known decompression function
we decompress it on our own host processor (incredible fast)
and skip the emulation.
Prequisites:
* the original game (currently the german CD V3.02, other may follow)
(Bright Eyes will never run without the original.
Make sure you own a copy of it. DSA1 is no abandonware.)
* at least one newer computer with an operating system
like (Linux, BSD, MacOS, Windows)
* a toolchain for building DOSBox (C++ compiler, SDL, SDL_Sound),
since atm no precompiled binaries are available.
For SDL, a subversion of 1.2 is needed. A suitable Debian package is libsdl1.2-dev
* For checking the equivalence of the source code with the original
game:
Borland CPP 3.1 Compiler, including the Application Frameworks
(for example https://winworldpc.com/download/f7396558-9ba2-11e9-ab10-fa163e9022f0)
Make sure you own a copy of it!
Configuration Hints for dosbox.conf :
* The CPU emulation must be set to core=auto or core=normal, to bypass all
rewritten functions.
* DSA1/RAK1 has no working EMS support, so memsize=1 is fine.
Improvements and changes to the Original:
I could not resist to fix some Bugs in this early state.
M302de (Main V3.02 german CD - Version):
Game logic:
* broken item counters will be corrected
* the schedule for ships was broken
* reactivation of informants in taverns
Crashes:
* infinite loop in get_random_hero()
Story fixes:
* It's not possible to visit Umbrik after finish him
* You can identify an item more than once in the academy
* The informers Eliane and Asgrimm will not be reset
by tavern gossip
Usability:
* If a character has permanent damage LE max is red
Grammar:
* Grammar at "Ecliptifactus"
G105de (Generation V1.05 german CD - Version):
* avoid negative skill-/spell_attempts in novice mode
Links:
git-tree: git://github.com/Henne/Bright-Eyes.git
githhub: https://github.com/Henne/Bright-Eyes
Documentation: http://freedsa.schattenkind.net
Forum: http://www.crystals-dsa-foren.de
---
Configuration hints for developers.
For comparing the equivalence of the BrightEyes source code to the original game,
the original compiler is needed, which is Borland CPP 3.1, including the
Application Frameworks.
It is the same version as the one at
https://winworldpc.com/download/f7396558-9ba2-11e9-ab10-fa163e9022f0
Make sure you own a valid license!
Starting with the floppy disks, you can install the compiler as follows:
https://www.crystals-dsa-foren.de/showthread.php?tid=5383&pid=166341#pid166341
* Copy the content of all floppy disks into a common folder <all_disks>.
* Create a folder <install> where you want the compiler to be installed.
* Run dosbox and type
mount a <all_disks>
mount c <install>
a:
install
* In the install process, unselect everything at "Windows Options", then
select "Start Installation".
* After the installation, there will be a folder BORLANDC in <install>.
Copy the content of <install>/BORLANDC to
src/custom/drive_c/BORLANDC/
such that the compiler binary BCC.EXE is located at
src/custom/drive_c/BORLANDC/BIN/BCC.EXE
For setting up the remaining framework, do the following:
https://www.crystals-dsa-foren.de/showthread.php?tid=5383&pid=166290#pid166290
* Make sure you have compiled BrightEyes once in the usual way:
make clean && ./autogen.sh && ./configure && make -j4
* Copy the original SCHICKM.EXE from the German CD-Version V3.02
(size 556208 Bytes) to
src/custom/schick/rewrite_m302de/tools/
* cd src/custom/schick/rewrite_m302de/tools/ && ./disassemble.sh
[ prerequisites: 'python' must be Python 3, 'ndisasm' disassembler is needed,
disassemble.sh must be executable ]
to partition the original SCHICKM.EXE into disassembled segments which
will be placed at
src/custom/schick/rewrite_m302de/temp/disasm_orig/
Now a file seg***.cpp can be checked for binary compatibility by commenting out
the corresponding line in
src/custom/schick/rewrite_m302de/compile.bat
and then running bc.sh like
cd src/custom/schick/rewrite_m302de && ./tools/bc.sh
To do a full check automatically when committing changes, add the following to
.git/hooks/pre-commit
(file must be made executable)
#!/bin/sh
# build with gcc
g++ -v 2>/dev/null >/dev/null
if [ $? -ne 0 ]; then
echo "g++ not installed";
exit 1
fi
#check it builds on this system
echo "Host build check"
make 2>lastbuild.log >/dev/null
if [ $? -ne 0 ]; then
echo "Build failure";
exit 1
fi
#check no working files are damaged
echo "DOS build check"
BAK=$PWD
cd src/custom/schick/rewrite_m302de/
SDL_VIDEODRIVER=dummy ./tools/bc_ready.sh
RETVAL=$?
cd $BAK
if [ $RETVAL -gt 0 ]; then
echo "Good files were broken";
exit 1
fi
exit 0