GithubHelp home page GithubHelp logo

pyrdacor / ambermoon Goto Github PK

View Code? Open in Web Editor NEW
89.0 18.0 10.0 1.23 GB

Resources for the incredible Amiga game Ambermoon

HTML 3.02% C# 7.12% PowerShell 0.09% Batchfile 0.01% Shell 0.02% Assembly 89.74%
amiga fantasy file-formats games reverse rpg

ambermoon's People

Contributors

iancrossfield avatar pyrdacor avatar skdubg avatar zimadaniel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ambermoon's Issues

Game doesn't start on a 68060

I believe this is actually an old Ambermoon bug. I recently got a TF1260 card, and with this card installed the game doesn't launch anymore and gets stuck on a black screen. It works fine on an 030 accelerator. I was able to reproduce this behaviour in FS-UAE by trying different CPU configurations.

Missing Race name for animal NPCs

@Pyrdacor wrote on twitter that he had found a bug which leads to missing race names for animal NPCs.

There are 16 race names. Race 13 is animal and 14 is monster. But there seems to be a bug as the animal text is in slot 14. So if you talk to the only animal NPC in the game "Necros" he has no race name.
The race strings are one off at the end so that the mapping is wrong. Should be a really easy fix by moving a zero byte around.

Did this ever get fixed? Presumably it was inside AM2_CPU/AM2_BLIT which you've now consolidated?

[Feature Request] All button on inventory

It would be amazing to add an "all" button to any inventory interaction. Don´t know how difficult it would be to add, but currently the fastest way is to pick up whichever item you only have one of, and then drop it on a stack to pick the entire stack up fast.

An alternative might be that when you select a stack of items the default value is not 0 but the max number you currently have.
In general, shouldn´t the default value be 1?

Tools have no version number

Not a big deal but would be good if the release number was included in the USAGE section.

I don't know if there is some part of the Git Release System you can use so that the GitHub release number is added to the code automatically?

Don't waste too much time on this.

Luminor's flame issue

The map events in Luminor's tower 5 are broken.

Some information beforehand:

  • There is a map event which will deactivate itself and activate another event which burns you when you approach the flame that spawned Luminor. This event can be triggered by moving around. It is located on the 5 tiles around the flame.

  • The button in the wall does many things:

    • Reopen the door to the boss room
    • Removes the flame (visuals)
    • Deactivates the event which burns you when you approach the flame
    • Removes the big flame and its hurt event at the first floor (tower level 2)
    • Other things like deactivating its own event chain and showing the pressed button

Bug:

The button removes the visual flame and also its burn event (including the text popup). But there is the event which activates the burn event when moving over it. So when you press the button, the visual flame is gone but when you approach that spot, the hurt event will trigger as it is activated by the event around the flame spot.

I am not sure why this event even exists. The flame hurt event is initially deactivated inside the savegame but I don't know why. The visual flame is spawned by the event which also spawns Luminor. So why use another event to activate the hurt event of the flame?

Fix:

There are three possibilities to fix this:

  1. Also deactivate that additional event by the button.
  2. Remove the additional event and activate the flame hurt event once when entering the room (together with the visual flame)
  3. Remove the additional event and just activate the hurt event from the beginning in the savegame

I would prefer 2. as this won't break savegames and the control of the hurt event is connected to the control of the flame visual which makes sense.

Ambermoon tools on linux fail with "undefined symbol: __clock_nanosleep"

When trying to start any of the ambermoon tools (except MonsterValueChanger, which works fine) on linux, I get the following error message. It is always the same except for one part, which I will mark with [???]. This part changes on each run, no matter the tool and seems to contain random values, often represented as invalid characters.

Failed to load [???], error: /snap/dotnet-runtime-31/21/shared/Microsoft.NETCore.App/3.1.19/../../../lib/x86_64-linux-gnu/librt.so.1: undefined symbol: __clock_nanosleep, version GLIBC_PRIVATE
Failed to bind to CoreCLR at '/snap/dotnet-runtime-31/21/shared/Microsoft.NETCore.App/3.1.19/'
Failed to create CoreCLR, HRESULT: 0x80008088

I have the .NET runtime 3.1 installed via snap. librt.so.1 is symlink and the linked file exists.

[Documentation] Fixing the "out of memory handles" crash

The quick fix

Here is the final quick fix with a hex editor. This example uses english 1.07 AM2_BLIT.

Search for hex 10 28 00 10. You will find two occurences. Start with the first one. It should be at 00006E7E.

Cut out the 4 bytes and insert them before the preceeding 12 bytes which are 4E B9 00 02 7F 22 4E B9 00 02 13 8A. Or cut out the 12 preceeding bytes and insert them after the mentioned 4 bytes. Do as you wish.

Before:
    4E B9 00 02 7F 22 4E B9 00 02 13 8A 10 28 00 10
After:
    10 28 00 10 4E B9 00 02 7F 22 4E B9 00 02 13 8A

Now go to the second occurence of 10 28 00 10. Should be at 0000BDF8. Cut the 4 bytes but this time insert before the preceeding 6 bytes (4E B9 00 02 7F 22).

Before:
    4E B9 00 02 7F 22 10 28 00 10
After:
    10 28 00 10 4E B9 00 02 7F 22

Now search for the first occurence of 4E F9 in the file. It should be at 00000038 in AM2_BLIT. A search for 4E F9 00 00 00 2A should also work and also return a single hit. This marks the beginning of the first code hunk btw. ;)

Now take a calculator. Use the initial found offsets:

  • 00006E7E
  • 0000BDF8

Subtract the offset you found just a second ago:

  • 00006E7E - 00000038 = 00006E46
  • 0000BDF8 - 00000038 = 0000BDC0

Now subtract 0A and 04 from the first and 04 from the second value:

  • 00006E46 - 0A = 00006E3C
  • 00006E46 - 04 = 00006E42
  • 0000BDC0 - 04 = 0000BDBC

Now search for those 3 values. There should be only 1 occurence if you include the zero bytes into the search! The first two values should be found right next to each other: 00 00 6E 3C 00 00 6E 42.

Replace each long (4-bytes value) with the value + 4:

Before:
    00 00 6E 3C
After:
    00 00 6E 40

Before:
    00 00 6E 42
After:
    00 00 6E 46

Before:
    00 00 BD BC
After:
    00 00 BD C0

This is it.


Old stuff following

The fix

Open AM2_CPU and AM2_BLIT into a hex editor.

Search for the hex sequence "10 28 00 10 4E B9 00". If you find two occurences, go to the last one. Cut out the 6 bytes just in front of the found sequence and paste it back in after the "10 28 00 10".

Then search for the hex sequence "00 00 BD BC 00 00 BD C6". If you find more than one, pick the first one. Replace the "BC" with a "C0" and you are done.

This will work for english and german.

Explanation

The first change fixes the order of the first two instructions:

image

The function FUN_FreeMemoryHandleById releases a memory handle by its id. The id must be in D0 which is performed by the move instruction. Unfortunately there is a function call just above which clears (0x10,A0) internally. This way the move instruction will then only move the value 0 to D0 and thus FUN_FreeMemoryHandleById tries to free the memory handle with id 0.

Valid memory handle ids are 200 to 224 (there are 25 slots). With the above bug, the slot is not freed and can no longer be used. If this is called often enough, all 25 slots will be occupied and the error is raised. Moreover FUN_FreeMemoryHandleById will clear some long-word at the address 800 bytes before the memory handle slots as the function just subtracts 200 from the given id (for 0 this will be -200), multiplies this by 4 and adds it to the start of the memory handle section. Then it clears the long-word there. So this will be -800 bytes relative to the memory handle section.

The above bugged code is called by the "Call Eagle" spell function. This is why calling the eagle will mess up the memory handles.


The second change adjusts the relocation table as we moved a function call which uses a global 32 bit address. As we moved the move instruction before the function call and the instruction has 4 bytes, the offset inside the RELOC32 hunk must be increased by 4. This is the BC to C0 part.


Btw the function we moved (FUN_00246f22) looks exactly like this, so you see that it clears our memorized memory handle id.

image

EDIT 04-07-2022:

There is a second bug. The above bug avoided freeing the eagle sprite memory handle when calling the eagle. But when unmounting the eagle, there is similar code with the exact same issue. To fix it, again search for 10 28 00 10. This time take the other spot. Move those bytes before the function call (4e b9 00 02 7f 22) again. This will fix the whole issue once and for all!

Running Ambermoon.net ouside X11 on GNU/Linux

Hi there

I just discovered this project via some comment on the Scummvm forum and I am amazed on how awesome this is, Ambermoon is a legend of a game for me!

Now, I only do C coding, so I have never touched anything C#.
So, how does this run on GNU/Linux? I seem to understand that Monogame is the way to go, right? Does that allow to run on SDL2 or some other GLES-driven API that would run outside X11 like SDL2 does on KMSDRM?

THE OS HAS RUN OUT OF MEMORY (and link to PARTY_DATA.SAV)

THE OS HAS RUN OUT OF MEMORY (and link to PARTY_DATA.SAV)

Such error after choosing and confirming character (starting new game). 1.08 from ambermoon_english_1.08_extracted.lha. Real amiga, apollo 040, 2mb chip, 32mb fast, kick 31 (mapped), classicwb

Unused Text : NPC Drongeb

The following string associated with character "Drongeb" seem to have no event trigger

"DOREB, THE LANDLORD OF DOR KIREDON, ACTUALLY SUCCEEDED IN BREWING AN ENJOYABLE TYPE OF ALE FROM THE PLANTS GROWING AROUND HERE. WHAT ELSE DO WE NEED?"

Possibly related to NPC_texts.amb 034.amb

"WE HAVE MANAGED TO BREW SOME REAL DWARF ALE FROM A FEW OF THE PLANTS HERE. THIS IS OUR FAMILY SECRET. TRY SOME!"

Tower 2D movement issue

image

From my advanced savegame, when I teleport to this isle and try to enter the tower (Lebab's Tower if I remember correctly) the 2D sprite enters the tower for at least 2 blocks before it stops.... Long time since I completed this part, but as far as I can remember you can't enter the Tower anymore after you completed the sub-quest so this should be fine. Not sure, but what's wrong is the sprite movement "into" the door...

Map Events and Scripting

Hey, thought I'd put some notes here based on my investigations into Albion, hopefully they'll be useful.

NpcFlags

Bit 6 of the NPC flags in Albion acts as 'noclip', i.e. NPCs ignore walls. Maybe one of the unknown Ambermoon flags does the same.

Also, in Albion there seems to be a concept of "version 1" and "version 2" NPC data. Which one is used depends on a map flag (0x2000, if the first two bytes of the map data are interpreted as a 16-bit flags enum). Might be a candidate for the unknown flag 5 that's always set in Ambermoon (all maps except some unused test maps in Albion have 0x2000 set).

In Albion, when the flag is not set (only test maps + my own investigations):

  • bits 0 & 1 are used for the NPC type (mirroring Ambermoon: 0=Player 1=NPC 2=Monster 3=Prop)
  • bits 2 & 3 are used for the NPC movement type (0=FollowWaypoints 1=RandomWandering 2=Stationary 3=ChasePlayer)

When it is set (every real map):

  • bits 0,1,2 are used for the NPC type (0..3 are the same, the extra ones don't seem useful)
  • bits 8,9,10,11 are used for the movement type (0..3 are the same as above, 4=follow waypoints again and the rest seem to be stationary)

Map Events

These aren't actually in a linked list structure. Because 'Query' events (the name "Query" comes from debug strings left in the Albion exe, in this repo they're referred to as Condition events, type number 0xD) will jump to the two-byte event index at offset 0x6 when the condition is false and to the index stored at offset 0x8 when true, the appropriate data structure is actually a directed graph of maximal out-degree 2. Because of this, any arbitrary programming control flow structure can be represented, making things much more complicated.

To make Albion modding easier I've been working on a higher-level scripting language for these events, along with a compiler and decompiler so the directed graphs encoded in the map and event-set data can be converted into nice human-readable scripts (and back again). The language itself is quite simple: there's no type system, it's really just some control flow structures put on top of the Albion script events, things like if-else, while, goto etc. As an example here's a decompiled Albion script involving conditions and looping:

{
    Chain35:
    disable_event_chain Map.Kenget2D 35 1 0
    sound Sample.Hissing 0 0 90 0
    map_text MapText.Kenget2D 187 ; "Suddenly a call echoes out of a concealed side passage!"
    do_script Script.Unknown25
    while (!(prompt_player MapText.Kenget2D 190)) {
        map_text MapText.Kenget2D 191 ; "{INK 002} \"You want the honor of combat? Very good!\" ^ ^ {INK 001} The Kenget Kamulos attack!"
        encounter 170 7
        if (result) {
            disable_npc 33
            disable_npc 34
            disable_npc 35
            disable_npc 36
            wipe 0
            do_script Script.Unknown26
        } else {
            map_text MapText.Kenget2D 193 ; "The Kenget Kamulos attack again immediately!"
        }
    }
    pause 30
    map_text MapText.Kenget2D 194 ; "\"Bring them to the prison area!\""
    teleport Map.KengetPrison 4 36 North 255 0
}

The code for the scripting language compiler & decompiler is in https://github.com/csinkers/ualbion/tree/master/src/Scripting - perhaps it could be useful for Ambermoon as well. The only dependencies of the scripting sub-project are Superpower (a C# parsing library) and a couple of fairly simple types in the UAlbion.Api project (IEvent, IEventNode, IBranchNode are the main ones), so it might be feasible to fork it and replicate the required interfaces from UAlbion.Api, although it does also require having a system for reliably round-tripping events between binary and text forms, and that the text form of the events adhere to certain conditions.

In its current state it can't handle every possible control flow structure, but it does handle all the ones
that occur in Albion's data files, so hopefully it would be general enough.

I'll keep an eye out for any other correspondences between data structures, but it looks like most of the parts that are the same in the two games have already been decoded, and the unknown parts don't line up.

Unpacking with hex file numbering

Pyrdacor, what is the command if I want to unpack an archive with with hex filename instead of numbers ?

Add -x like AmbermoonPack.exe UNPACK 2Map_data.amb 2Map_data -x

I tried with with the latest release for Windows64 and this doesn't work. It just prints the --help information.

[Bug report] - typo in Clementine's English text

Describe the bug
Very minor. When talking to NPC Clementine in the Spannenberg House of Healing, she will speak when asked about "MADMAN." She says "...do not go into his cellar. Speak to him only through the bars." From context, 'cellar' here seems a probable typo for 'cell'.

Expected behavior
The word should probably be 'cell' instead of 'cellar'

Screenshots
Screenshot from 2022-01-15 14-07-50

[Change request] timestopper - no feedback

there was already in the original: if you destroy the hourglasses in sansries tempel there is no feedack, a text like "with the help of the time stopper you destroyed the hourglass" would be really great. In my opinion, there is feedback in the game for all other actions, here there is only the visual.

gab es auch schon im original: wenn man in sansries tempel die sanduhren zerstört gibt es kein feedack, ein text wie "mit hilfe des zeitstoppers zerstörten sie die sanduhr" wäre echt toll. im spiel gibt es bei allen anderen aktionen meines erachtens ein feedback, hier gibt es nur das optische.
01
02

Text Issue Sansri/Sansrie (world map/ingame)

hi,

as is sometimes the case, you don't realize it until afterwards.
On the world map it says "Sansri's Insel", ingame it says "Sansrie".

How often does "Sansrie" appear in the files (without the xxx_texts.amb)?
Does a correction to "Sansri" make sense? Unfortunately we can't change the map

I'm for the adaptation to the map ;)

No trigger/event with Lady Heidi

Hello,

I don't know if this is already known or I just haven't read it.
When you talk to the cook of Baron George, you should then turn to Lady Heidi with the word "fairies".
She tells that the sylphs took spoons.

Both at Grandpa's and in the Sylphs' cave you will find that silverware, but Lady Heidi does not react to these things.

AmbermoonTextImport tool on Linux: scrambles AMB text file?

Following up on the thread in #25 , but now this seems more like an 'issue' discussion:

On my Ubuntu 20.04 system, the Linux version of AmbermoonTextImport seems to produce a 'scrambled' version of the referenced text file (see details below). First, the incorrect text file rears its head as shown in the following example:

Example :

Successfully Export the original AMB file:

./AmbermoonTextImport -e /path/to/Amberfiles NPC_texts.amb ~/temp/nt2/

Reading texts from sub-file 1 ... done
Writing texts to '.../temp/nt2/NPC_texts.amb/001' ... done
Reading texts from sub-file 2 ... done
Writing texts to '.../temp/nt2/NPC_texts.amb/002' ... done
... [usw.] ...
Reading texts from sub-file 70 ... done
Writing texts to '.../temp/nt2/NPC_texts.amb/070' ... done

Successfully re-import the exported files:

./AmbermoonTextImport -i path/to/Amberfiles NPC_texts.amb ~/temp/nt2/

Looking for text data in '.../temp/nt2/NPC_texts.amb' ... done
Found 454 texts in 70 filled sub-directories.
Collecting text data ... done
Writing data to '/path/to/Amberfiles/NPC_texts.amb' ... done

But then the second export (to a new directory) fails:

./AmbermoonTextImport -e /path/to/Amberfiles NPC_texts.amb ~/temp/nt3/

Failed to load game data: Index was outside the bounds of the array.

Demonstration that resulting file is 'scrambled':

Opening my new version of NPC_texts.amb and comparing to the original reveals that they contain large bits of the same data , but with these chunks in a different order. Perhaps the two files even have identical contents, but in a different order? They do have the same size, which is curious...

Anyway, this screenshot shows the hex values of the two files side-by-side: portions that should be near the top of the file in the original file (at right) are ~75% of the way down my new version of the file:
Screenshot from 2022-02-17 21-46-14

I've also attached the two NPC_texts.amb files (renamed so GitHub accepts the upload) in case that helps track this down. Unfortunately my C# skills are nonexistent and unlikely to improve - thanks to anyone who has any thoughts on this.
NPC_texts.amb.mine.txt
NPC_texts.amb.original.txt

Unused Text : NPC Ketnar

The following string associated with character "Ketnar" seem to have no event trigger

"LOOK AROUND HERE! REMEMBER THAT YOU WILL LIVE ON THIS WORLD FOR THE REST OF YOUR DAYS! NEW PEOPLE ARE ALWAYS WELCOME HERE IF THEY ARE PREPARED TO LEARN INSTEAD OF FIGHTING BLINDLY."

NPC_texts.amb 03A.amb

Unused texts?

NPC_texts.amb - sub-file 0x36 (54)

prophesore wrote that the following NPC events of character "Brog" seem to have no event trigger

  1. "YOU KNOW ABOUT MY LOVE FOR MAGIC. WHAT A SHAME THAT SO FEW OF THE PEOPLE HERE FEEL THE SAME!"
  2. "HOW HAPPY I WOULD BE IF DORINA RETURNED TO US!"
  3. "MY FRIENDS, MY PLEASURE ABOUT DORINA RETURNING TO US IS AT LEAST AS GREAT AS KIRE'S! AND HOW SHE HAS DEVELOPED HER TALENTS! TREMENDOUSLY WELL! AS I HEARD, YOU HAD A FEW PROBLEMS BECAUSE OF THAT ..."

@Pyrdacor investigated and said the 3 strings cannot be triggered in the current state of the game data.

  1. This text should be used when you say the word "MAGIC" and global variable 48 would be 1.
  2. This text should be used when you say the word "DORINA" and global variable 49 would be 1 and Dorina has not received Kire's letter.
  3. This text should be used when you say the word "DORINA" and global variable 49 would be 1 and Dorina has received Kire's letter.

The problem now is that there are no events in the entire game which set either global variable 48 or 49 to 1.

From the context of the texts that are used when those variables are not set, I am sure that these variables should be set by the Brog events themselves.

Cpt. Torle (Spannenberg) house glitches

Hi, today I noticed I can move outside of the map on the left at Torle's in Spannenberg:
image

Moreover Cpt. Torle and his assistant will still talk about a free boat waiting "for the heros" even if you already accomplished the task... can't remember exactly (savegame was from 2001 :D).
Tested with an advanced save-game though, so maybe it has something to do with v.1.10 fix: "- Fixed ship dealer in Spannenberg. Ships will now correctly be spawned." and is simply not a retro-active fix? Should this be fixed starting a new game?

/ ! \ data files from v1.08 up to v1.10 are faulty / ! \

Pyrdacor, i made different tests, and i have found where the problem comes from.

Basically, v1.07 from Thalion webshrine works fine on A500 512 chip +512 fast.

Version v1.08, v1.09, v1.10 just fail on A500 configuration.

I did a simple test : load the program from disk with disk A v1.07, then use disks B to I from the v1.10 set containing your data files modified.

It crash no matter what. So, there are 2 news, one good and one bad.

The good news is that all the modifications you did to fix the game data files are OK, no problem there.

The bad news is that you changed the data files byte structure (at least text data files like xMap_Texts.amb for instance).

How did i noticed that ? Simple :

I use the automatic Ambermoon data files ressourcer that CFOU, my partner in crime programmed for me in 2013 when i did the translation in french of the game.

The data files are crippled, because the ressourcer once i process the files from files 'xMap_Texts.amb' for example, outputs all the texts with the first character and the last character chopped off.

The problem never happen with v1.07 data files.

The game parser is very unforgiving on that matter. I seem to remember that you shorten some bytes in the text data files, but the parser seems to not like it......

What should we do now ?

Unused Texts : HOUSE OF THE HEALERS - BURNVILLE

@prophesore reported three strings at this location he was never able to get to appear

IN THE BED BEFORE YOU LIES A MAN WITH SEVERE BURNS. HE MURMURS:^ "HOW CAN I EVER THANK YOU FOR FREEING ME FROM LUMINOR'S PRISON? A FEW DAYS LONGER AND I WOULD HAVE JUST BEEN A PILE OF ASH.

BEFORE YOU LIES AN OLD WOMAN IN BED. ALMOST ALL OF HER BODY IS WRAPPED IN BANDAGES. HER FOREHEAD IS WET WITH PERSPIRATION AND SHE JABBERS AND CRIES DELIRIOUSLY:^ "NO, PLEASE, NOT THE RED HOT HOOK, NO, NO, NO!" PLEASE, YOU CAN TELL LUMINOR THAT I WILL NEVER SPEAK AGAINST HIM EVER AGAIN AND WILL ALWAYS BE HIS SLAVE, IF YOU JUST STOP THIS TORTURE." PLEASE, PLEASE.....!!"

A YOUNG HEALER COMES RUNNING TO HER BED AND TAKES THE WOMAN'S HEAD LOVINGLY IN HER HANDS. SHORTLY AFTERWARDS THE OLD WOMAN QUIETENS DOWN AND APPARENTLY FALLS ASLEEP. THE HEALER SMILES AT YOU AND SAYS:^ "OLD MERIL SUFFERED BADLY IN LUMINOR'S PRISON. IT WILL TAKE A LITTLE LONGER FOR HER TO BE ABLE TO LEAD A NORMAL LIFE AGAIN. BUT THAT IS STILL BETTER THAN DYING AT THE HANDS OF LUMINOR.^ THANK YOU AGAIN FOR RELEASING US.

https://gitlab.com/ambermoon/research/-/wikis/Amberfiles/Map_texts - 286.003

Maybe these have been fixed too following the fix for bug #45 with global var 27 now being set?

Unused Text - NPC Sandra

"I CANNOT THANK YOU ENOUGH FOR RELEASING MY DAUGHTER FROM THE CLAWS OF LUMINOR. SO I HAVE ASKED FATHER ANTHONY TO SUPPLY YOU AT HALF THE NORMAL RATES." - NPC_texts.amb : 005.amb

Broken portals

A few broken portals still left (Lyramion's Islands) with bad tiles on the 2D map at:
X: 283, Y: 253
X: 310, Y:736

e.g.:
image

Can't exactly remember the story since the last time I played Ambermoon... but they should appear restored, because they do work in this old save-game.

Text bug

NPC text 028.003:

"I WISH YOU WELL ON YOUR WAY AND MAY THE EAGLES OF IMMERDAR BE OUR FRIENDS!"

The word "IMMERDAR" is an old German word for "always". I guess the translator didn't know it and thought that was some kind of name.

It should be something like:

"I WISH YOU WELL ON YOUR WAY AND MAY THE EAGLES ALWAYS BE OUR FRIENDS!"

Is there some cool old word for "always" in english?

analysis of the differences from v1.01, v1.04, and v1.05

I got my hands on a complete v1.04 original floppy disk set:
https://gitlab.com/ambermoon/research/-/tree/master/data/df/v104-1993-11-18-german

v1.01 -> v1.04 checksum diff of the floppy disk contents:

a39c8d8f7212ae7cf851cc5a615e5f3b *AMBER_A/AM2_BLIT                   |  9bb53a553df9e6a9b7cd49d357b968b7 *AMBER_A/AM2_BLIT
7f9d0db08d3fe83faaf90f133ad7cc6b *AMBER_A/AM2_CPU                    |  accb5855accd5337576252edd51faf15 *AMBER_A/AM2_CPU
1ce8f9e51477d3fa46b912127b61365f *AMBER_A/Ambermoon                  |  35ed630dcd977b5bcf91bc74060c8c75 *AMBER_A/Ambermoon
31193beb407c41f2d38f2830022e184b *AMBER_B/Ambermoon_intro            |  40eebd75a1b9779a410578e29b407c70 *AMBER_B/Ambermoon_intro
0b27cc13b2ee9d1699bdb4fb96bbefd9 *AMBER_B/Fantasy_intro              |  8f522725cd04f13573314ed4aa5a1cab *AMBER_B/Fantasy_intro
ce7e1f9be854d3f8bd40a8a5563f71bd *AMBER_G/Event_pix.amb              |  bcee95c9346c75080eac0dfa4c3b8f55 *AMBER_G/Event_pix.amb
dda8b58b068714fe0c03678f1144a470 *AMBER_G/Layouts.amb                |  8d1cee3c11be284fd9d34975a526eb19 *AMBER_G/Layouts.amb
76710b853f0e625e993f882ea2836c11 *AMBER_G/NPC_char.amb               |  c9fdfb921188ad7554fdf8ef2a4d0763 *AMBER_G/NPC_char.amb
d0f172b6d354bf52214ac5ad76143e39 *AMBER_I/Ambermoon_extro            |  874792b97eee95254ec3b0337f9723bd *AMBER_I/Ambermoon_extro

The interesting parts might be the changes on AMBER_G. However, it might be only the compression and/or random values in pad bytes. Maybe someday someone has time for a detailed analysis...

Kire's treasure room open

I saw in a Let's Play that the door to the treasure room was open at first visit. With open I mean you can just pass and no event occurs.

I know the bug from a long time ago but thought I already fixed it.

I have to double check but I guess it is the following:

The door uses door index 0. Which happens when someone has forgotten to set the right index. But index 0 is a valid index which is used by a real door. Iirc in the thieves guild. When you unlock a door, the savegame will mark it as open and so the door unlock screen will never occur again.

As I tested the door at Kire today, the door wasn't open for me. But I didn't open the door in the thieves guild. I only remembered later that there was this bug.

So the fix is to use the right door index here. I will also check if there are more doors with index 0. Iirc there was another one.

I want to improve the door anyway.

More tile bugs?

At the tile up left and right left of the door to Kire's treasure room, the player stands in front of the wall. Can't upload images right now because of some internet issues.

Typos in 'liesmich.txt' inside 'ambermoon_german_1.07_extracted.zip'

hi,

another batch of typos found.
number of the entry (correct words marked as bold/italic):

  • [1] Sansrie's Schlüssel funktioniert nun in Sansries (Sansrie's) Tunnel.
  • [2] ...als Partymitglied erscheint is (ist) nun...
  • [3] Reg der Hügelriese is (ist) nun korrekt als Boss gekennzeichnet, so dass (sodass) er...
  • [4] Zwei Teile der Lyramion Weltkarte wurden gefixt, so dass (sodass) dort...
  • [9] Alle Pflanzen auf Kire's Mond wurden behoben, so dass (sodass) man...
  • [10] Ein Text-Popup in Nalvens (Nalven's) Magieschule wurde behoben, so dass (sodass) es nun...
  • [11] Im geheimen Thalion Büro wurden zwei fehlenden (fehlende) Text-Popups hinzugefügt.
  • [13] Der Start (Stadt) S'Angrila wurde eine Bodentextur hinzugefügt.
  • [14] Die Blickrichtung wurde korrigiert, wenn man in Luminors (Luminor's) Turm von Ebene 4 auf 3 wechselt.

Ambermoon v1.08/v1.09 back to disks?

Because @Pyrdacor implemented LOB packing, is it possible to put the v1.08/v1.09 files back into disk images for distribution?

Do they still physically fit?

It's just I think it would be easier (for Amiga users) if v1.08/v1.09 were re-distributed as un-installed ADF images.

Previous patches without LOB packing it was impossible to put them back on disks because of the sizes of the uncompressed files.

[Bug report] kire's residence

bug on the forest moon left at kire's residence, his "treasure chamber":
when you go there for the first time no door is locked, only the boxes are empty, when you have solved the quest from dorinia and you get a key from kire, the "treasure chamber" is suddenly locked and the boxes are now full. this bug already existed in the originial. however there is now another bug at ambermoon.net. I can open the door but if I want to go through it says that the door is locked = I can't go through.

bug auf dem waldmond links bei kirs residenz, seine "schatzkammer":
wenn man das erste mal hingeht ist keine tür verschlossen nur die kisten sind leer, wenn man die quest von dorinia gelöst hat und man von kire einen schlüssel bekommt ist plötzlich die "schatzkammer" verschlossen und die kisten sind nun voll. diesen bug gab es bereits im originial. jedoch gibt es nun bei ambermoon.net einen weiteren bug. ich kann zwar die tür öffnen aber wenn ich hindurchgehen möchte steht wieder da das die tür verschlossen ist = ich kann nicht hindurchgehen.
01
02
03
04

[Bug report] schleuderdolche

the bug already existed in the original: the slinging daggers were actually only intended for the dagger throwing. However, you could only put the sling daggers (attack +28 !!) in the other hand and thus get permanent attacks of +28. That is certainly a bug, but another one is that you don't throw away the slinging daggers in a fight (as it was actually intended with the dol slinging. That is illogical and a bug for me because you are overpowered by it.

den bug gab es auch schon im original: die schleuderdolche waren eigentlich nur für die dolchschleuder vorgesehen. man konnte jedoch nur die schleuderdolche (attack +28!!) in die andere hand legen und somit permanent attacke von +28 bekommen. das ist sicherlich schon ein bug, ein weiterer ist jedoch das man dadurch die schleuderdolche nicht wegwirft im kampf (wie es eigentlich mit der dolchschleuder vorgesehen war. das ist unlogisch und für mich ein bug da man dadurch overpowert ist.
00
01

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.