OT: I got AESOP/32 engine compiler/manuals from John Miles
Moderator: ScummVM Team
OT: I got AESOP/32 engine compiler/manuals from John Miles
Hi
I apologize if it does not belong here (feel free to move it elsewhere), but I think this is something in which people here could be interested...
"Eye of Beholder 3" and "Dungeon Hack" are based on one (though modified) engine: AESOP/16. Virtually nothing was known about it. After some mailing with John Miles (better known for the Miles Sound System) I received sources for the script complier (the engine uses its own bytecode) and the documentation. I do not have interpreter (too much SSI copyrighted code), but maybe interpreters from EOB 3/DH could be used (not tested) or maybe - if somebody is interested (I certainly do not feel to the task myself!) - a new interpreter written...
In any case - I have explicit permission to do whatever I want with it from John Miles (he is the only copyright holder for AESOP), so feel free to download it/modify it/upload elsewhere.
At the moment it is for download on VOGONS in the thread I mention at the end of this post (read it also to get some background info - e.g. why there were slowdowns in EOB 3 when the game was shipped etc.), but feel free to do whatever you want with it/make your own web for it etc.
Just give credits to John Miles, he is very nice to the open source community.
Here is the thread with the download:
http://vogons.zetafleet.com/viewtopic.php?p=91341#91341
Mirek
I apologize if it does not belong here (feel free to move it elsewhere), but I think this is something in which people here could be interested...
"Eye of Beholder 3" and "Dungeon Hack" are based on one (though modified) engine: AESOP/16. Virtually nothing was known about it. After some mailing with John Miles (better known for the Miles Sound System) I received sources for the script complier (the engine uses its own bytecode) and the documentation. I do not have interpreter (too much SSI copyrighted code), but maybe interpreters from EOB 3/DH could be used (not tested) or maybe - if somebody is interested (I certainly do not feel to the task myself!) - a new interpreter written...
In any case - I have explicit permission to do whatever I want with it from John Miles (he is the only copyright holder for AESOP), so feel free to download it/modify it/upload elsewhere.
At the moment it is for download on VOGONS in the thread I mention at the end of this post (read it also to get some background info - e.g. why there were slowdowns in EOB 3 when the game was shipped etc.), but feel free to do whatever you want with it/make your own web for it etc.
Just give credits to John Miles, he is very nice to the open source community.
Here is the thread with the download:
http://vogons.zetafleet.com/viewtopic.php?p=91341#91341
Mirek
I have received one more thing from John Miles (again, freely usable/distributable, download from the mentioned thread on VOGONS). I did not have a look on it yet
Mirek
From mail by John Miles:
Mirek
From mail by John Miles:
...
I managed to dig up some runtime
code that is free of any IP owned by SSI or other parties, if it helps:
<go to VOGONS for dl link>
This is absolutely all I can release, unless you can figure out who owns the
game code these days and convince them to open-source it.
-- john
...
Just a short information: I have made some attempts to compile the runtime (using as much original tools as possible - AIL, VFX libraries, Open Watcom...). I produced an EXE, though it does not work yet (needs more debugging).
If somebody wants to try this as well, there are some usefull information in the mentioned VOGONS thread (e.g. I spent a lot of time by finding out that I need to set a proper structure alignment in Watcom - RES files depend on it and Watcom has changed its default settings since the AESOP was made in the beginning of 1990s).
See the VOGONS thread for details...
Mirek
If somebody wants to try this as well, there are some usefull information in the mentioned VOGONS thread (e.g. I spent a lot of time by finding out that I need to set a proper structure alignment in Watcom - RES files depend on it and Watcom has changed its default settings since the AESOP was made in the beginning of 1990s).
See the VOGONS thread for details...
Mirek
DAESOP 0.40
I have been slowly developing a utility to analyze AESOP resource files (RES, like EYE.RES) etc. At the moment it can provide some information about the file or individual resources and also extract resources. I hope I will add AESOP disassembler in future.
The utility is called DAESOP. At the moment its version is 0.40.
It can be downloaded from the above mentioned thread on VOGONS.
Mirek
The utility is called DAESOP. At the moment its version is 0.40.
It can be downloaded from the above mentioned thread on VOGONS.
Mirek
DEAESOP 0.50
DAESOP 0.50 released
I made a new version of my DAESOP utility, this time adding the AESOP bytecode disassembler. This enables to disassemble the script code resources in the "Eye of Beholder 3", "Dungeon Hack" or even custom made AESOP based programs.
The syntax is the same as before. The disassembly is generated when using switches /j or /k on code related resource (code/import/export resources).
So for example use this line to generate disassembly of the "start" resource in the "Eye of Beholder 3":
daesop /j eye.res start start.txt
See the generated file start.txt for the disassembly of the "start" resource:
See the Vogons for download: http://vogons.zetafleet.com/viewtopic.php?p=94056#94056
Mirek
I made a new version of my DAESOP utility, this time adding the AESOP bytecode disassembler. This enables to disassemble the script code resources in the "Eye of Beholder 3", "Dungeon Hack" or even custom made AESOP based programs.
The syntax is the same as before. The disassembly is generated when using switches /j or /k on code related resource (code/import/export resources).
So for example use this line to generate disassembly of the "start" resource in the "Eye of Beholder 3":
daesop /j eye.res start start.txt
See the generated file start.txt for the disassembly of the "start" resource:
Code: Select all
...
*** CODE RESOURCE DISASSEMBLER (resource name start, resource number: 2388) ***
.DISASSEMBLER_VERSION 1
;Warning: imported/exported variables are not handled yet in this version.
;
;main data.OBJECT_NAME start
.PARENT #ffffffff ;-1
;
;other original settings
.ORIGINAL_CODE_RESOURCE_SIZE 735
.ORIGINAL_IMPORT_RESOURCE_SIZE 398
.ORIGINAL_IMPORT_RESOURCE_NUMBER #0952 ;2386
.ORIGINAL_EXPORT_RESOURCE_SIZE 65
.ORIGINAL_EXPORT_RESOURCE_NUMBER #0953 ;2387
.ORIGINAL_STATIC_SIZE 0
;
;
.MESSAGE_HANDLER_NAME enter game
.LOCAL_VARIABLE_SIZE 2
16 (000010): 20 00 00 RCRS "C:create_program" ;import_resource_number: 00
19 (000013): 04 PUSH
20 (000014): 1d 00 SHTC 0
22 (000016): 04 PUSH
23 (000017): 1e 66 05 INTC 1382
26 (00001a): 21 02 CALL 2
28 (00001c): 1d 00 SHTC 0
30 (00001e): 04 PUSH
31 (00001f): 2e 00 00 LAD 0
34 (000022): 22 01 fa 00 SEND 1, "enter game" ;message_number: 250
38 (000026): 20 04 00 RCRS "C:destroy_object" ;import_resource_number: 44
41 (000029): 04 PUSH
42 (00002a): 1d 00 SHTC 0
44 (00002c): 21 01 CALL 1
46 (00002e): 56 END
;
.MESSAGE_HANDLER_NAME create
.LOCAL_VARIABLE_SIZE 14
49 (000031): 20 08 00 RCRS "C:peekmem" ;import_resource_number: 88
52 (000034): 04 PUSH
...
Mirek
DAESOP 0.60
I made another version of my DAESOP utility yesterday (DAESOP 0.60). It can be again downloaded from Vogons.
Here is the information about what is new (copied from README):
...
The version 0.600 adds a lot of new things into the disassembler introduced in DAESOP 0.500. It concerns mainly variables. For most of variables (with exception of local "auto" variables) symbolic names are used. When possible (imported/exported variables), the real names are used. When it is not possible (private static variables, "table" variables), simple symbolic names are made. In future versions of DAESOP this will be done also for local variables.
The tables showing import/export resources were reworked and they now show properly all available items. The problem of not disassembling procedures (instructions JSR/RTS) was fixed.
Various minor things were fixed/improved.
...
Mirek
Here is the information about what is new (copied from README):
...
The version 0.600 adds a lot of new things into the disassembler introduced in DAESOP 0.500. It concerns mainly variables. For most of variables (with exception of local "auto" variables) symbolic names are used. When possible (imported/exported variables), the real names are used. When it is not possible (private static variables, "table" variables), simple symbolic names are made. In future versions of DAESOP this will be done also for local variables.
The tables showing import/export resources were reworked and they now show properly all available items. The problem of not disassembling procedures (instructions JSR/RTS) was fixed.
Various minor things were fixed/improved.
...
Mirek
Does anybody know the format of bitmaps in EOB 3?
I am progressing nicely with my explorations of the AESOP engine (see on Vogons). I also try to make EOB 3 run with the AESOP/32 engine. At the moment I figured out that I need to replace the table of low level functions in EYE.RES (no problem) and to convert all bitmaps in EYE.RES (see Vogons thread for more information).
I have one problem at the moment:
Does anybody know the format of the bitmaps (images) in the "Eye Of Beholder 3"?
I can extract the binary bitmaps with my DAESOP utility, but I do not know their format or how to convert them to something else ...
See the the thread on Vogons for more information and samples.
Mirek
I have one problem at the moment:
Does anybody know the format of the bitmaps (images) in the "Eye Of Beholder 3"?
I can extract the binary bitmaps with my DAESOP utility, but I do not know their format or how to convert them to something else ...
See the the thread on Vogons for more information and samples.
Mirek
Re: Does anybody know the format of bitmaps in EOB 3?
Looks like this guy might now.mirekluza wrote:Does anybody know the format of the bitmaps (images) in the "Eye Of Beholder 3"?
Eugene
DAESOP 0.66
There is a new version (DAESOP 0.66) available for download on VOGONS (http://vogons.zetafleet.com/viewtopic.php?p=95733#95733).
Since the version 0.60 the following things were added to DAESOP:
- command line parameter /ir (showing even more information about resources: original filenames if available, resource types, values of string resources)
- command line parameters /r, /rh (enabling to replace any resource in an existing RES file by another one)
JackAsser from the "English Amiga Board" did some good work with analyzing BMP format used in the "Eye of Beholder 3" (http://eab.abime.net/showthread.php?t=24436&page=7), so hopefully I will be able to implement in the near future the bitmap conversion (AESOP/16 > AESOP/32) to DAESOP (necessary step to make the EOB 3 run in the AESOP/32).
Mirek
Since the version 0.60 the following things were added to DAESOP:
- command line parameter /ir (showing even more information about resources: original filenames if available, resource types, values of string resources)
- command line parameters /r, /rh (enabling to replace any resource in an existing RES file by another one)
JackAsser from the "English Amiga Board" did some good work with analyzing BMP format used in the "Eye of Beholder 3" (http://eab.abime.net/showthread.php?t=24436&page=7), so hopefully I will be able to implement in the near future the bitmap conversion (AESOP/16 > AESOP/32) to DAESOP (necessary step to make the EOB 3 run in the AESOP/32).
Mirek
I implemented the bitmap conversion (EOB 3 > AESOP/32) in DAESOP 0.70 http://vogons.zetafleet.com/viewtopic.php?p=96111#96111.
This enables to convert the "Eye of Beholder 3" to the AESOP/32 engine and the game is partially playable using the EXEs we got from John Miles (I did not build a proper runtime from the provided sources yet - I will bother with this after having the conversions done).
The game runs, the graphic is ok, but the texts are missing (I think the fonts need conversion as well) - therefore I say "partially playable".
Mirek
This enables to convert the "Eye of Beholder 3" to the AESOP/32 engine and the game is partially playable using the EXEs we got from John Miles (I did not build a proper runtime from the provided sources yet - I will bother with this after having the conversions done).
The game runs, the graphic is ok, but the texts are missing (I think the fonts need conversion as well) - therefore I say "partially playable".
Mirek
DAESOP 0.75
I added the font conversion to the DAESOP 0.75. This means that all texts in the "Eye of Beholder 3" are now show when it runs in AESOP/32.
You can download DAESOP 0.75 in the above mentioned thread on VOGONS.
Mirek
You can download DAESOP 0.75 in the above mentioned thread on VOGONS.
Mirek
EOB 3 save/load bug in the AESOP/32 was fixed
I found out how to fix the crashing bug when loading/saving when running the "Eye of Beholder 3" in the AESOP/32 (by changing 4 bytes in EYE.RES). Details are in the thread on VOGONS.
This makes the game playable in the AESOP/32 (though I played just a short time at the beginning of the game, so there may be problems later).
Mirek
This makes the game playable in the AESOP/32 (though I played just a short time at the beginning of the game, so there may be problems later).
Mirek
DAESOP 0.85, AESOP/32 build from sources
There are following news concerning the AESOP since I posted here last time:
DAESOP 0.85
It can now fully convert the "Eye of Beholder 3" to be able to run in the AESOP/32. This works with the binary provided by John Miles and with the binary I compiled on my own (see below for more information about the build).
http://vogons.zetafleet.com/viewtopic.php?p=98090#98090
AESOP/32 interpreter build from sources is available
I managed to make a build from sources. You can download on VOGONS the whole project for "Open Watcom" which enables to build an interpreter. It works ok, though there may be a small bug in sound mixer (see on Vogons) - so at the moment I recommend it only for testing.
This package could be a base for porting the AESOP/32 to other OSes if anybody wants to do it (read on Vogons for details).
http://vogons.zetafleet.com/viewtopic.php?p=97017#97017
Source code for the AESOP/32 sound mixer is available
I already used it in the build above. The original code can be downloaded on Vogons as well.
http://vogons.zetafleet.com/viewtopic.php?p=96771#96771
At the moment I am planning to start to work on porting "Dungeon Hack" to the AESOP/32 (basically implementing missing runtime functions - after finding out/guessing what they do).
Mirek
DAESOP 0.85
It can now fully convert the "Eye of Beholder 3" to be able to run in the AESOP/32. This works with the binary provided by John Miles and with the binary I compiled on my own (see below for more information about the build).
http://vogons.zetafleet.com/viewtopic.php?p=98090#98090
AESOP/32 interpreter build from sources is available
I managed to make a build from sources. You can download on VOGONS the whole project for "Open Watcom" which enables to build an interpreter. It works ok, though there may be a small bug in sound mixer (see on Vogons) - so at the moment I recommend it only for testing.
This package could be a base for porting the AESOP/32 to other OSes if anybody wants to do it (read on Vogons for details).
http://vogons.zetafleet.com/viewtopic.php?p=97017#97017
Source code for the AESOP/32 sound mixer is available
I already used it in the build above. The original code can be downloaded on Vogons as well.
http://vogons.zetafleet.com/viewtopic.php?p=96771#96771
At the moment I am planning to start to work on porting "Dungeon Hack" to the AESOP/32 (basically implementing missing runtime functions - after finding out/guessing what they do).
Mirek