English Amiga Board


Go Back   English Amiga Board > Other Projects > project.Amiga Game Factory

 
 
Thread Tools
Old 16 July 2006, 12:04   #41
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Quote:
Originally Posted by CFOU!
I a finished to resource all INF files of EOB1

and you are right all multi command finished by $EE are Branch (look my asm source joined) but not simple $ee command

not command $EE directly but:
$ff $ee
$ff $f9 $f8 $ee
$ff $f9 $ee
$fb $ee
$fe $ee
etc... and others...
Yes, and according to the JAD-sources I can tell it's stack based.
So for example, some command pushes current XP on stack, another pushes for example if a presure plate is pressed, then an $EE command followed by a sub-code pulls the last two arguments from stack and compare them depending on sub-code, for instance a <= operator. Etc.

Your asm-code, is it complete? I.e. do you know the complete meaning of the byte code?
JackAsser is offline  
Old 16 July 2006, 12:23   #42
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by JackAsser
Yes, and according to the JAD-sources I can tell it's stack based.
So for example, some command pushes current XP on stack, another pushes for example if a presure plate is pressed, then an $EE command followed by a sub-code pulls the last two arguments from stack and compare them depending on sub-code, for instance a <= operator. Etc.

Your asm-code, is it complete? I.e. do you know the complete meaning of the byte code?
$F2 is also an branch command

yes all relative codes has found !! i have already try to modify all text length of level 1 2 & 3

After to have compile & crunch files, i have test it in EOB1 without problem

My ressourcer works with the 12 levels so i have found all EOB1 commands with number of arguments but not the effect for the moment... (I have already replaced EOB WIKI SOurce)

At the end of the file there are a reloc or pointer table
CFou! is offline  
Old 16 July 2006, 13:05   #43
Xyquaatu
Registered User
 
Join Date: Jul 2006
Location: Deutschland
Posts: 24
It seems that event.c is mainly for EOB2. Some examples:

interpreting main event code:

EOB1:
Code:
loc_1266_1F1C:			  
		les	bx, [bp+var_inner_elo_pt]
		mov	al, es:[bx]
		cbw	
		mov	si, ax
		inc	word ptr [bp+var_inner_elo_pt]
		or	si, si
		jge	loc_1266_1F4E
		cmp	si, -27		 ; <--- !! 26 cases !!
		jle	loc_1266_1F4E
EOB2:
Code:
lok_ev_main_read_code:
		les	bx, [bp+inf_tr_pt] 
		mov	al, es:[bx]
		cbw	
		mov	si, ax
		inc	word ptr [bp+inf_tr_pt]	
		or	si, si
		jge	lok_ev_main_next
		cmp	si, -31		; <--- !! 30 cases !!
		jle	lok_ev_main_next
There are more differences, for example 0xFE change wall:

EOB1:
Code:
		mov	al, es:[bx]
		cbw	
		cmp	ax, 0FFEAh	  
		jnz	loc_1266_A8B
		jmp	loc_1266_B4E	; 0xEA

loc_1266_A8B:				
		cmp	ax, 0FFF7h
		jz	loc_1266_A93	; 0xF7
		jmp	loc_1266_B64	; other
EOB2:

Code:
		mov	al, es:[bx]
		cbw	
		cmp	ax, 0FFE9h
		jnz	loc_152B_C46
		jmp	loc_152B_D14	; 0xE9

loc_152B_C46:				
		cmp	ax, 0FFEAh
		jnz	loc_152B_C4E
		jmp	loc_152B_D7D	; 0xEA

loc_152B_C4E:				
		cmp	ax, 0FFF7h
		jz	loc_152B_C56	; 0xF7
		jmp	loc_152B_D93	; other code
main event 0xF8 is also different, as you can see by the positioning of text strings
Xyquaatu is offline  
Old 16 July 2006, 19:31   #44
dlfrsilver
CaptainM68K-SPS France
 
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 47
Posts: 10,526
Send a message via MSN to dlfrsilver
Once finished, how do i recompile them ? ^^

thanks



Quote:
Originally Posted by CFOU!
I a finished to resource all INF files of EOB1

and you are right all multi command finished by $EE are Branch (look my asm source joined) but not simple $ee command

not command $EE directly but:
$ff $ee
$ff $f9 $f8 $ee
$ff $f9 $ee
$fb $ee
$fe $ee
etc... and others...
dlfrsilver is offline  
Old 16 July 2006, 22:05   #45
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by dlfrsilver
Once finished, how do i recompile them ? ^^

thanks
You must recompile it and pack it

Can you send to me your work in french ? (TExt.dat.asm/ et INF.asm)?
CFou! is offline  
Old 16 July 2006, 22:12   #46
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Amiga disassembled binaries.

@CFOU: Not sure if you missed my PM, but do you by any chance have the disassembled Amiga binaries for Eye of the Beholder I? I'd like them for comparison and reference since I'm about to reverse engineer the event byte codes and the byte code interpreter.
JackAsser is offline  
Old 16 July 2006, 23:24   #47
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by JackAsser
@CFOU: Not sure if you missed my PM, but do you by any chance have the disassembled Amiga binaries for Eye of the Beholder I? I'd like them for comparison and reference since I'm about to reverse engineer the event byte codes and the byte code interpreter.
I have send it this morning i send agin it of you personal email...
CFou! is offline  
Old 16 July 2006, 23:26   #48
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by CFOU!
I have send it this morning i send agin it of you personal email...
I send again now
CFou! is offline  
Old 16 July 2006, 23:36   #49
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Quote:
Originally Posted by CFOU!
I send again now
Ahh, got it! Superb!

So, your breaks in the .inf file ReSourcing regarding the event byte codes, are those assumptional, or based on the disasembly? In other words, did you assume number of arguments for each command or did you actually checked in the sources?

Could you please point out were in the code approx the .inf file parser is resided?

Last edited by JackAsser; 16 July 2006 at 23:45.
JackAsser is offline  
Old 17 July 2006, 10:13   #50
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by JackAsser
Ahh, got it! Superb!

So, your breaks in the .inf file ReSourcing regarding the event byte codes, are those assumptional, or based on the disasembly? In other words, did you assume number of arguments for each command or did you actually checked in the sources?

Could you please point out were in the code approx the .inf file parser is resided?


no for the moment i used more simple method, only function and number of argument are found (is created for translation project so not more inverstigation was needed)

but it's an another step to understand .inf

in the source looking for "btst #" (decrunch / crunch routine and inf decrypter it seems (but to confirme)

i will try to found the start of the code and will give to you the address...
CFou! is offline  
Old 17 July 2006, 11:09   #51
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Quote:
Originally Posted by CFOU!
no for the moment i used more simple method, only function and number of argument are found (is created for translation project so not more inverstigation was needed)

but it's an another step to understand .inf

in the source looking for "btst #" (decrunch / crunch routine and inf decrypter it seems (but to confirme)

i will try to found the start of the code and will give to you the address...
Yep, ok. Based on the jad sources (which indeed seems inaccurate) i've started to understand how those scripts work.

For instance, the script that triggers at position 15,14 in the level1 maze starts at offset $725 (the table at the end points to that).

First it's an EE command which is a conditional, all conditionals are both started and terminated by EE.

So, the first few bytes EE,EF,03,00,FF,EE,34,07,EB,E2,20,03,F7,EF,03 simply means the following:

Code:
EE // Begin conditional
   EF,03 // Get maze flag 3 and push on stack.
   00 // Not sure here, but I think it pushed zero on stack.
   FF // Compare equality
EE // Conditional end
34,07 // If conditional is true, then jump to $0734

EB // Give experience
   E2 // To whole party (i think)
       20,03 // 0x320 xp

F7 // Manage flags
   EF // Set maze flag
      03 // Set maze flag #3
So, in C code:

Code:
push(getMazeFlag(3));
push(0);
if (pop()==pop())
   push(1);
else
   push(0);
if (pop()==0)
    goto _0734;
else
{
    giveExperience(WHOLE_PARTY, 0x320);
    setMazeFlag(3);
}
So, simply those few bytes are the polish stack based notation of a simple:
Code:
if (getMazeFlag(3)!=0)
{
   giveExperience(WHOLE_PARTY, 0x320);
   setMazeFlag(3);
}
So, to my understanding, clicking on those eyes in the first grate you see on level 1 will give you $320 (800) in experience (but only the first time). Then the script continiues and will change the wall set and display a message.

Last edited by JackAsser; 17 July 2006 at 11:31.
JackAsser is offline  
Old 17 July 2006, 14:57   #52
Zetr0
Ya' like it Retr0?
 
Zetr0's Avatar
 
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
heys Jack,

Just a quick note, upon the eob.inf wiki page.

The declaration of 0xfb = wall mapping structure however a little further down the page is a snippet with command codes which state 0xfb = monster create.

I have put a depiction in the upload area for the wall mapping structure for use.
Zetr0 is offline  
Old 17 July 2006, 17:22   #53
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Quote:
Originally Posted by Zetr0
heys Jack,

Just a quick note, upon the eob.inf wiki page.

The declaration of 0xfb = wall mapping structure however a little further down the page is a snippet with command codes which state 0xfb = monster create.

I have put a depiction in the upload area for the wall mapping structure for use.
Command 0xFB in the Decoration Data area == Define Wall Mapping
Command 0xFB in the Event data == Create Monster

JackAsser is offline  
Old 17 July 2006, 17:30   #54
Marcuz
Registered User
 
Marcuz's Avatar
 
Join Date: Jun 2002
Location: .
Age: 48
Posts: 5,562
sorry if i get a lil' off topic, but some of you guys will turn this huge load of info into a nice editor?
Marcuz is online now  
Old 17 July 2006, 19:23   #55
JackAsser
Registered User
 
Join Date: Jul 2006
Location: Lund / Sweden
Age: 45
Posts: 171
Quote:
Originally Posted by marco pedrana
sorry if i get a lil' off topic, but some of you guys will turn this huge load of info into a nice editor?
Hehe! Not by me at least, but it will hopefully result in a playable version for the old Commodore 64.

Today I did a converted for the wallset data. I still need to squeeze the data some more otherwise I'll never manage to fit it all in those 64kb.

Actually I got surpriced by how good looking the convert actually looks in comparison to other C64 graphics. I'll post some shots tomorrow, including a replacment VCN/VMP for the amiga graphics which effectivly turns the amiga game into a c64-looking game.
JackAsser is offline  
Old 17 July 2006, 21:36   #56
wlcina
Registered User
 
wlcina's Avatar
 
Join Date: Aug 2004
Location: Czech republic
Posts: 580
wtf they r talking about ?

bx, [bp+var_inner_elo_pt]
mov al, es:[bx]

darn I have to improve my english
wlcina is offline  
Old 17 July 2006, 21:56   #57
Marcuz
Registered User
 
Marcuz's Avatar
 
Join Date: Jun 2002
Location: .
Age: 48
Posts: 5,562
Quote:
Originally Posted by JackAsser
Hehe! Not by me at least, but it will hopefully result in a playable version for the old Commodore 64.

Today I did a converted for the wallset data. I still need to squeeze the data some more otherwise I'll never manage to fit it all in those 64kb.

Actually I got surpriced by how good looking the convert actually looks in comparison to other C64 graphics. I'll post some shots tomorrow, including a replacment VCN/VMP for the amiga graphics which effectivly turns the amiga game into a c64-looking game.
cool screenshots galore
however i really hope someone do the editor thing, i look forward to do some graphic for an hack
Marcuz is online now  
Old 17 July 2006, 22:27   #58
CFou!
Moderator
 
CFou!'s Avatar
 
Join Date: Sep 2004
Location: France
Age: 51
Posts: 4,277
Quote:
Originally Posted by JackAsser
Ahh, got it! Superb!

So, your breaks in the .inf file ReSourcing regarding the event byte codes, are those assumptional, or based on the disasembly? In other words, did you assume number of arguments for each command or did you actually checked in the sources?

Could you please point out were in the code approx the .inf file parser is resided?
how can i compile and lauch EoB viewer in java?

I am never coded in JAVa (JDK is needed?)
CFou! is offline  
Old 17 July 2006, 23:52   #59
Zetr0
Ya' like it Retr0?
 
Zetr0's Avatar
 
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
I am going to attempt to make an editor for the PC atfirst , its been a long while since i last used wb/intuition.

now writing a windows version of uncps (should work for both amiga and pc), eventualy from this you could edit the cps based files. *starting with the inf*
Zetr0 is offline  
Old 18 July 2006, 00:06   #60
Marcuz
Registered User
 
Marcuz's Avatar
 
Join Date: Jun 2002
Location: .
Age: 48
Posts: 5,562
Quote:
Originally Posted by Zetr0
I am going to attempt to make an editor for the PC atfirst , its been a long while since i last used wb/intuition.

now writing a windows version of uncps (should work for both amiga and pc), eventualy from this you could edit the cps based files. *starting with the inf*
that's cool! i prefer it windows based as i use windows anyway to do the work, as long it would be able to edit the amiga stuff. but that's my 2 cents.
i look forward to try it!
Marcuz is online now  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Buglist] EoB 1 AGA - EoB 1 ECS Multilanguage Marcuz project.Amiga Game Factory 56 20 October 2019 13:17
Little games with script engines builtin Leandro Jardim Retrogaming General Discussion 3 07 May 2013 17:36
How do pseudo-3D racing game engines work? absence Coders. General 2 29 May 2010 00:05

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 19:36.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.15158 seconds with 14 queries