English Amiga Board


Go Back   English Amiga Board > News

 
 
Thread Tools
Old 13 May 2022, 17:07   #1
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 104
Extended Ambermoon for Amiga

Hello guys. Some of you might know me for creating a Ambermoon port for PC, Mac and Linux and maintaining the original Ambermoon and providing fixes for it.

Just recently I wrote an export plugin for the disassembling tool Ghidra to be able to export disassembled code (mainly Ambermoon) to valid Amiga assembler. I also decoded huge parts of the original code, commented and labeled all kind of stuff in Ghidra. There is also a public Ghidra server where we can collaborate and disassemble the last bits of the original Ambermoon code.

That said I am able to compile the original Ambermoon. And I can add changes (either in Ghidra) or by modifying the produced ASM.

And so I did. Original Ambermoon used 2 exe files. AM2_Blit uses the blitter to render walls and other stuff, AM2_CPU uses the CPU (loops) for this. The pre-loader called just "Ambermoon" performs a speed test with the blitter and the CPU and if the blitter is fast enough it used AM2_Blit, else AM2_CPU.

The problem was, that both exes contained 90% of the same code and data. And this data includes all item data, all UI texts, in-game messages, spell names, button graphics and so on. Bugfixing was hell as you had to fix both exes and then both languages (exes differ per language as well). Moreover creating a new language was nearly impossible.

This is now over. I extracted all language-dependent data to external files:
- Item data to Objects.amb
- Button graphics to Button_graphics
- All texts to Text.amb

Moreover the files "Dictionary.english" and "Dictionary.german" are now called just "Dict.amb" in both languages.

I wrote loaders for those files in Ghidra so the data is loaded on startup in Ambermoon now. Moreover I merged both exes into one (AM2_CPU). The speed test is still performed but the result is just given to AM2_CPU as a parameter and then it uses internal logic to use the blitter or CPU dependent on that parameter.


It was a long way and hard work but now it's done.

Ambermoon 1.14 (english) and 1.13 (german) are released and they both use the same exe. https://github.com/Pyrdacor/Ambermoon

If you want to see the effects you can download german and english and exchange files like "Text.amb", re-start the game and see how the texts change. The same is possible for items and button graphics, as mentioned.

I would be happy if someone can test the new release. Best on real hardware.

The only thing left is to make the intro and outro language-independent. Other than that, translations should now be easy. I can provide a zip with all english texts to translate if someone is interested in creating a prototype for a new language. I could help with that.

Thanks for reading.
Cheers Pyrdacor
Pyrdacor is offline  
Old 13 May 2022, 23:00   #2
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 45
Posts: 9,377
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by Pyrdacor View Post
Hello guys. Some of you might know me for creating a Ambermoon port for PC, Mac and Linux and maintaining the original Ambermoon and providing fixes for it.

Just recently I wrote an export plugin for the disassembling tool Ghidra to be able to export disassembled code (mainly Ambermoon) to valid Amiga assembler. I also decoded huge parts of the original code, commented and labeled all kind of stuff in Ghidra. There is also a public Ghidra server where we can collaborate and disassemble the last bits of the original Ambermoon code.

That said I am able to compile the original Ambermoon. And I can add changes (either in Ghidra) or by modifying the produced ASM.

And so I did. Original Ambermoon used 2 exe files. AM2_Blit uses the blitter to render walls and other stuff, AM2_CPU uses the CPU (loops) for this. The pre-loader called just "Ambermoon" performs a speed test with the blitter and the CPU and if the blitter is fast enough it used AM2_Blit, else AM2_CPU.

The problem was, that both exes contained 90% of the same code and data. And this data includes all item data, all UI texts, in-game messages, spell names, button graphics and so on. Bugfixing was hell as you had to fix both exes and then both languages (exes differ per language as well). Moreover creating a new language was nearly impossible.

This is now over. I extracted all language-dependent data to external files:
- Item data to Objects.amb
- Button graphics to Button_graphics
- All texts to Text.amb

Moreover the files "Dictionary.english" and "Dictionary.german" are now called just "Dict.amb" in both languages.

I wrote loaders for those files in Ghidra so the data is loaded on startup in Ambermoon now. Moreover I merged both exes into one (AM2_CPU). The speed test is still performed but the result is just given to AM2_CPU as a parameter and then it uses internal logic to use the blitter or CPU dependent on that parameter.


It was a long way and hard work but now it's done.

Ambermoon 1.14 (english) and 1.13 (german) are released and they both use the same exe. https://github.com/Pyrdacor/Ambermoon

If you want to see the effects you can download german and english and exchange files like "Text.amb", re-start the game and see how the texts change. The same is possible for items and button graphics, as mentioned.

I would be happy if someone can test the new release. Best on real hardware.

The only thing left is to make the intro and outro language-independent. Other than that, translations should now be easy. I can provide a zip with all english texts to translate if someone is interested in creating a prototype for a new language. I could help with that.

Thanks for reading.
Cheers Pyrdacor
In the end, sending you my ressourced executables did not helped you a bit ?
dlfrsilver is offline  
Old 14 May 2022, 08:32   #3
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 13,060
Quote:
Originally Posted by dlfrsilver View Post
In the end, sending you my ressourced executables did not helped you a bit ?
I think they arrived too late? The work in Ghidra by Pyrdacor and nicode was almost done when they arrived.
alexh is offline  
Old 14 May 2022, 08:37   #4
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 13,060
Awesome work. It opens the door to localisation for the Amiga version. First Dlfrsilver's amazing French translation and then hopefully others. I know someone once translated lots of Ambermoon into Italian.

Also knowing that Ambermoon on Amiga may get some of the new Ambermoon Advance dungeons back ported is fantastic
alexh is offline  
Old 14 May 2022, 11:54   #5
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 45
Posts: 9,377
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by dlfrsilver View Post
In the end, sending you my ressourced executables did not helped you a bit ?
Well thanks anyway This will allow me to port my translation finally 100%.
dlfrsilver is offline  
Old 14 May 2022, 15:53   #6
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 104
Thank you guys.

@dlfrsilver: Alex is right. It came a day before I exported valid ASM code out of Ghidra for the first time. And the code in Ghidra was already very well labeled and commented and all those labels and comments are exported as ASM comments as well. So this was a bonus over your files. Moreover I can't import your ASM files into Ghidra that easily.

I can send you the English texts so you see what structure I need to use it. Then you can just replace the English texts with the french ones.

I will also document the new file structures I invented for the in-game texts.

I already built a tool to export all texts of a Ambermoon installation. This includes all data files, the in-game texts, the item names and so on. Basically everything which needs to be translated. I will also provide a tool to create a full game out of those text files so you only have to copy your french texts into the folders and the tool does the rest.
Pyrdacor is offline  
Old 14 May 2022, 17:33   #7
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 45
Posts: 9,377
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by Pyrdacor View Post
Thank you guys.

@dlfrsilver: Alex is right. It came a day before I exported valid ASM code out of Ghidra for the first time. And the code in Ghidra was already very well labeled and commented and all those labels and comments are exported as ASM comments as well. So this was a bonus over your files. Moreover I can't import your ASM files into Ghidra that easily.

I can send you the English texts so you see what structure I need to use it. Then you can just replace the English texts with the french ones.

I will also document the new file structures I invented for the in-game texts.

I already built a tool to export all texts of a Ambermoon installation. This includes all data files, the in-game texts, the item names and so on. Basically everything which needs to be translated. I will also provide a tool to create a full game out of those text files so you only have to copy your french texts into the folders and the tool does the rest.
Thanks, yes this would be welcome. It would allow me to inject my french translation more easily as i have less time for that

Feel free to send me the files on gmail mailbox
dlfrsilver is offline  
Old 14 May 2022, 20:05   #8
Pyrdacor
Registered User

Pyrdacor's Avatar
 
Join Date: Feb 2021
Location: Germany
Posts: 104
I guess you have data files like NPC_texts.amb etc already translated? So you only need the texts from the executable?
Pyrdacor is offline  
Old 14 May 2022, 21:40   #9
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 45
Posts: 9,377
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by Pyrdacor View Post
I guess you have data files like NPC_texts.amb etc already translated? So you only need the texts from the executable?
Well since you modified quite a bit of data files, it would be better for me to inject my text inside the latest version (v1.14).

So yes, if you can send me the text from the executable, i will translate those
dlfrsilver is offline  
Old 15 May 2022, 16:18   #10
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 13,060
I think you already did. All the text appears to be in the ASM files you sent. Pyrdacor needs someone to reformat them to his new file format.

I've updated *_texts.amb to the latest version using the existing tools. Pyrdacor was making similar ones for *_,data.amb files.

Last edited by alexh; 15 May 2022 at 16:33.
alexh is offline  
Old 16 May 2022, 00:38   #11
dlfrsilver
CaptainM68K-SPS France
dlfrsilver's Avatar
 
Join Date: Dec 2004
Location: Melun nearby Paris/France
Age: 45
Posts: 9,377
Send a message via MSN to dlfrsilver
Quote:
Originally Posted by Pyrdacor View Post
I guess you have data files like NPC_texts.amb etc already translated? So you only need the texts from the executable?
I have quite advanced in the translation of the files you sent.

However, is it normal i found german text inside ? Found some in quite a number of AMB archive text files.....
dlfrsilver 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
"Defender of the Crown - Extended Collectors Edition" for Amiga CD32, Amiga und PC cinemaware News 108 04 March 2017 03:49
Amiga 2000 extended RAM big problems! genny Hardware mods 2 03 April 2011 14:19
Amiga extended character set prowler New to Emulation or Amiga scene 7 05 February 2010 22:06
Extended adf to a real amiga floppy Fabie New to Emulation or Amiga scene 6 06 November 2009 22:41
amiworx.de - Home of Ambermoon Arcade and Amiga meets Piano viddi Amiga scene 19 02 April 2009 08:27

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 22:53.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, vBulletin Solutions Inc.
Page generated in 0.10114 seconds with 12 queries