English Amiga Board


Go Back   English Amiga Board > News

 
 
Thread Tools
Old 25 January 2021, 14:29   #41
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 12,597
The next release of the remake of Ambermoon has solved a bug which I first saw discussed here on EAB in 2013.

Quote:
Originally Posted by prophesore View Post
If you hire and lay off [Gryban] he says that you'll find him in Godsbane but he is not there. Mystical Map does not detect him. This is just a big error."
In Ambermoon Player-Characters data is stored in the AMBR file party_char.amb. This file is a multi-file container with one sub-file per character. Each player-character has a world map index (location) of where they go when you do not recruit them when you meet them or where they go should you release them from your party

The format of the sub-file for each character is described here :

https://github.com/Pyrdacor/Ambermoo.../Characters.md

The world map index field has been named "Character-bit-index"(?!) at offset 0x1C.

Each map has 32 possible characters like NPCs on them. So divide that value by 32 to get the map index. The value for Valdyn is 0x2400 and so his map index is 288. And ta da! This is the tavern in Burnville. Same for Selena. Take 0x22c2 and divide by 32 and you'll get 278 which is the Sylph cave.

Gryban's Character-bit-index is 0x0000 but apparently it should be 0x35c0 (The world map index of Godsbane)

http://eab.abime.net/showpost.php?p=...postcount=535]

Interesting huh? Well I guess not for everyone.

The fix can be back-ported to the Amiga version which uses the same file.

This bug like all others is recorded in technical detail here :

https://docs.google.com/spreadsheets...it?usp=sharing
alexh is offline  
Old 25 January 2021, 15:47   #42
DamienD
disengaged
DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 44
Posts: 19,674
Quote:
Originally Posted by alexh View Post
Interesting huh? Well I guess not for everyone.

The fix can be back-ported to the Amiga version which uses the same file.

This bug like all others is recorded in technical detail here :

https://docs.google.com/spreadsheets...it?usp=sharing
It would be awesome if once every bug has been fixed they can all be applied to the Amiga version; floppy disk and hard drive installed
DamienD is offline  
Old 25 January 2021, 18:34   #43
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 43
Posts: 8,671
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by DamienD View Post
It would be awesome if once every bug has been fixed they can all be applied to the Amiga version; floppy disk and hard drive installed
I fully agree with you.
dlfrsilver is offline  
Old 25 January 2021, 21:02   #44
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 12,597
Quote:
Originally Posted by DamienD View Post
It would be awesome if once every bug has been fixed they can all be applied to the Amiga version; floppy disk and hard drive installed
The spreadsheet has a column which shows which fixes have been applied in the Meynaf patch. Most are already in there.

The problem with the floppy disk version is that the files once decompressed don't fit back on the disk. The new developer has created what he believes to be an equivalent packer that the depacker in the Amiga exe can decompress but I don't have the time to test.
alexh is offline  
Old 04 February 2021, 09:33   #45
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 5
Hello guys. Finally I managed to create an account here.

First of all I want to say thank you to all of you who provided valuable information about Ambermoon and its data structures. My current work was based on all of that. I created a github repo just to gather all those information at a central point and store it for the future there: https://github.com/Pyrdacor/Ambermoon

With the help of a bunch of enthusiastic people we managed to reveal even more information.

I am not a Pro regarding Amiga. My strength lies in imperative programming and data analysis I guess. But I will try my best to help making the Amiga versions better as well.

The Ambermoon.net project is quiet advanced already. The next big chunks to implement will be places (merchants, etc), the mystic map interface, camp window, level up window and logic, window for locked doors/chests, day-night-cycle, skies and light and music. Then after some finetuning it should be done. The rest is already working.

The project is open source so if someone wants to join or can provide some information I would really appreciate it.

Since I started the project I dove deep into the data. So I think I have quiet a good understanding of the internals of the data. This includes the data hunks of the executables like AM2_CPU, AM2_BLIT, Ambermoon_intro and Fantasy_intro. I also implemented an Assembly Deploder and a File Deploder (FImp) as well as a Hunk reader to get to the assembly data. This is important to load items, UI graphics, intro graphics, game messages, UI texts and specific palettes.

So if you have any questions about how to fix or track down a specific bug, I might help.

Feel free to contact me here, on github (Issue tracker) or via email: trobt@web.de

Thanks again for keeping Ambermoon alive over all these years.
Pyrdacor is offline  
Old 04 February 2021, 09:46   #46
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 5
Quote:
Originally Posted by alexh View Post
The world map index field has been named "Character-bit-index"(?!) at offset 0x1C.
If you wonder why I named it this way: The reason is that it is no real "world map index". It is the index of a bit. The savegame stores 32768 of those bits. 32 bits for each map for a total of 1024 possible maps. So the bits for map 288 (Burnville tavern) start at bit index 288*32=9216. So bit 9216 in the savegame would (de)activate the first character on this map, bit 9217 the second character and so on. Valdyn is the first character (data-wise) on that map. So to (de)activate him in Burnville the bit 9216 must be change. 9216 in hex is 0x2400. This is exactly the value at 0x1C in his character data.
Pyrdacor is offline  
Old 04 February 2021, 09:52   #47
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 5
Quote:
Originally Posted by DamienD View Post
It would be awesome if once every bug has been fixed they can all be applied to the Amiga version; floppy disk and hard drive installed
This is my goal too. Along with finishing the remake of course.
When Ambermoon.net is in a state where it won't consume so much time, I will work on some more editors and tools to ease bugfixing and/or improving the data.

I also want to create an optional advanced version with better balancing and some other improvements that can be done purely data-based. This could be based on the bugfixed version then. And localization is another point. Would be awesome if we manage to create Ambermoon for more languages. The tricky part about languages will be the assemblies which contain a lot of messages and UI texts too. But we might find a solution for that as well.
Pyrdacor is offline  
Old 04 February 2021, 11:55   #48
DamienD
disengaged
DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 44
Posts: 19,674
Heya Pyrdacor,

Welcome to EAB

Firstly, well done with all this

Quote:
Originally Posted by Pyrdacor View Post
This is my goal too. Along with finishing the remake of course.
When Ambermoon.net is in a state where it won't consume so much time, I will work on some more editors and tools to ease bugfixing and/or improving the data.
That would indeed be awesome, cheers.
DamienD is offline  
Old 04 February 2021, 12:11   #49
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 5
Quote:
Originally Posted by DamienD View Post
Heya Pyrdacor,

Welcome to EAB

Firstly, well done with all this

Thanks a lot. Glad to be here.
Pyrdacor is offline  
Old 04 February 2021, 13:36   #50
Valken
Registered User
 
Join Date: Feb 2009
Location: Amiga
Posts: 385
Welcome to EAB Pyrdacor!

I grew up with RPG's, especially 3D dungeon raid types which lead me to 3D FPS! Look forward to your work and updates!
Valken is offline  
Old 04 February 2021, 19:49   #51
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 5
@Valken: Thanks!

@Alex: About the bug with wrong map flags on two lyramion world maps. You can easily get the coordinates from the map index. There are 16x16 lyramion world maps. Each is 50x50 tiles in size.

So the column of the map is (MapIndex-1) modulo 16. The row is (MapIndex-1) divided by 16 (rounded down).

To get the offset in tiles (in-game world coordinate) you have to multiply the map column and row by 50.

So it affected maps 00D and 094.

00D is 13. MapColumn = 12 mod 16 which is 12. MapRow = floor(12/16) which is 0.

So x is 12*50=600, y is 0*50=0.

Same for 094 which is 148.

x = (147 mod 16)*50 = 150
y = floor(147 / 16)*50 = 450

Edit: Oh I almost forgot. Coordinates in Ambermoon are 1-based.

So the final coordinates are:

Map 00D: 601, 1
Map 094: 151, 451

Last edited by Pyrdacor; 04 February 2021 at 19:57.
Pyrdacor is offline  
 


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Double Dragon remake progress update Brick Nash Amiga scene 100 25 April 2019 17:19
return to the roots settlers 2 remake open source turrican3 support.Games 4 28 July 2014 12:54
CaesarIA - Caesar III new open source remake Neil79 Retrogaming General Discussion 2 17 April 2014 15:07
A remake/sequel of Moonstone is in the progress! Ironclaw Amiga scene 13 22 July 2008 19:17
Trick Or Treat Remake - Work in Progress ant512 Amiga scene 15 16 November 2004 18:25

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 21:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Page generated in 0.07932 seconds with 15 queries