Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 05.11.2023]

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).
TheTate
Leprechaun
Leprechaun
Posts: 18
Joined: 04 Jul 2022

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby TheTate » 18 Jul 2022, 23:26

Maslyonok wrote: 18 Jul 2022, 06:42
TheTate wrote: 17 Jul 2022, 23:37
Maslyonok wrote: 14 Jul 2022, 18:33 Revamp localization ver 1.0 is done!
I've also uploaded whole game, so u don't need forgetting something during installation and getting the game crashed.
English version also uploded.

OMG, that worked, and I got to keep my save files! You're a hero.
You are welcome! :D
So, only small issue I still have is that it reset my quests, which barred my MM7 characters from getting their final promotions and prevented me from advancing the main story. I even returned to Emerald Island to see if I could start from scratch, but neither Markham or the judge were present there. Is there a way to fix this in debug? Either by resetting the MM7 world, or just editing my characters to their final promotion?
If not, I'm not too worried about it. Just glad to be playing again! Thank you again for the help!

cuthalion
Leprechaun
Leprechaun
Posts: 24
Joined: 06 Jan 2019

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby cuthalion » 19 Jul 2022, 14:46

Hi,
where do I report bugs - right here?
I have a party of 3 (knight, minotaur, d-elf).
As I did d-elf promotion, I noticed that Cauri granted minotaur 25k exp, d-elf 35k exp (both as expected) but my knight received undeserved 75k exp instead of 25k. At this moment he is in the rank of cavalier (1 promotion done in MM6).
I have a savegame right before talk with Cauri if needed.

Follow up thought: 75=25+25+25. So the knight (as my head character) might have received exp for missing 4th and 5th guys...
2nd follow up: Yes, this is the case. If I dismiss the minotaur, knight gets 100k. Actually, I am not 100% sure if it is a bug or a MM8 feature as I do not remember MM8 quite well. But looks very weird and unfair :)

OkruchZaglady
Lurker
Lurker
Posts: 1
Joined: 19 Jul 2022

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby OkruchZaglady » 19 Jul 2022, 16:05

Hey, I have some problems with polish localization - the sound and videos are in English and most of the text is in English as well - there are few Polish sentences but the Polish font isn't working and because of that Polish letters (f.e. ą, ę, ś, ć, ż, ź, ó, ł) aren't working and its very difficult to read those sentences.

darkdill
Galactic Gargle Blaster
Galactic Gargle Blaster
Posts: 42
Joined: 06 Apr 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby darkdill » 20 Jul 2022, 19:33

Just did a fresh reinstall of this because it was crashing a lot, but after going through the installation process, I found that the Golden Plate Armor (MM6) item comes up as a null icon (red circle) in inventory, not just when equipped to someone. I've been trying to shuffle which files are installed, having downloaded the Base Merge (2022-06-18 no media), Rodril v. 2022-02-15, Merge media, and Revamp zip files, but I can't get it to show up properly.

I assume I'm looking at the wrong files (I'm trying not to just dump an entire zip folder in at once), so which one could cause this bug? Switching between various Complex item pictures.txt files did nothing, so maybe it's one of the LOD's? I don't know where the game art is stored.

EDIT: Now the MM7 Horseshoes are red circles too.

EDIT2: Okay, found the problem. It's for some reason due to a change I made to an Item.txt file that I put into the DataFiles folder to try and make Artifacts and Relics more potent.

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Eksekk » 20 Jul 2022, 21:24

darkdill wrote: 20 Jul 2022, 19:33 Just did a fresh reinstall of this because it was crashing a lot, but after going through the installation process, I found that the Golden Plate Armor (MM6) item comes up as a null icon (red circle) in inventory, not just when equipped to someone. I've been trying to shuffle which files are installed, having downloaded the Base Merge (2022-06-18 no media), Rodril v. 2022-02-15, Merge media, and Revamp zip files, but I can't get it to show up properly.

I assume I'm looking at the wrong files (I'm trying not to just dump an entire zip folder in at once), so which one could cause this bug? Switching between various Complex item pictures.txt files did nothing, so maybe it's one of the LOD's? I don't know where the game art is stored.

EDIT: Now the MM7 Horseshoes are red circles too.
Just to make sure, did you install properly (base merge + media + patch (none for newest base merge) + one branch)? Can you show me screenshot of your "Data" folder, (or two, so that all files are visible)? Are you okay with delving into the files for a bit to debug (I will explain everything)?
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

darkdill
Galactic Gargle Blaster
Galactic Gargle Blaster
Posts: 42
Joined: 06 Apr 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby darkdill » 21 Jul 2022, 02:13

Eksekk wrote: 20 Jul 2022, 21:24
darkdill wrote: 20 Jul 2022, 19:33 Just did a fresh reinstall of this because it was crashing a lot, but after going through the installation process, I found that the Golden Plate Armor (MM6) item comes up as a null icon (red circle) in inventory, not just when equipped to someone. I've been trying to shuffle which files are installed, having downloaded the Base Merge (2022-06-18 no media), Rodril v. 2022-02-15, Merge media, and Revamp zip files, but I can't get it to show up properly.

I assume I'm looking at the wrong files (I'm trying not to just dump an entire zip folder in at once), so which one could cause this bug? Switching between various Complex item pictures.txt files did nothing, so maybe it's one of the LOD's? I don't know where the game art is stored.

EDIT: Now the MM7 Horseshoes are red circles too.
Just to make sure, did you install properly (base merge + media + patch (none for newest base merge) + one branch)? Can you show me screenshot of your "Data" folder, (or two, so that all files are visible)? Are you okay with delving into the files for a bit to debug (I will explain everything)?
After messing around with all those folders, I simply got the pre-packed full installation. I can't quite remember everything I did. Sorry.

It turns out that the glitch was due to an outdated ITEMS.txt file that I made. Replacing it with the one included in the pre-installed pack fixed it.

Onto a new issue, though. When entering Castle Harmondale for the first time, I got this.
...ames\Might and Magic 8\Scripts\Global\ExtraArtifacts.lua:87: array index (11887) out of bounds [0, 2200]

stack traceback:
: in function 'error'
...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1426: in function '__index'
...ames\Might and Magic 8\Scripts\Global\ExtraArtifacts.lua:87: in function 'v'
...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:66: in function 'docall'
...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:126: in function 'call'
...\Might and Magic 8\Scripts\Structs\RemoveItemsLimits.lua:1203: in function <...\Might and Magic 8\Scripts\Structs\RemoveItemsLimits.lua:1199>
[C]: in function 'pcall'
...G Galaxy\Games\Might and Magic 8\Scripts/Core/Common.lua:203: in function 'pcall2'
...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1772: in function <...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1769>
[C]: in function 'co_resume'
...y\Games\Might and Magic 8\Scripts\Core\ErrorFunction.lua:212: in function 'coroutine_resume'
...G Galaxy\Games\Might and Magic 8\Scripts/Core/Common.lua:219: in function 'cocall2'
...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:96: in function 'cocallPart'
...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:168: in function 'cocall'
...\GOG Galaxy\Games\Might and Magic 8\Scripts/Core/evt.lua:190: in function <...\GOG Galaxy\Games\Might and Magic 8\Scripts/Core/evt.lua:149>

arguments of 'v':
Item = (table: 0x2220fdb8)

local variables of 'v':
Num = 11887
(*temporary) = (table: 0x04afef88)
(*temporary) = ("cdata<int *>: 0x0019c91c")
(*temporary) = 12044900
(*temporary) = nil
(*temporary) = nil
(*temporary) = 106494988
(*temporary) = nil
(*temporary) = 1.5324588544129e-175

upvalues of 'v':
GItems = (table: 0x04afef88)
GetNotFoundArts = (function: 0x1ba76fb0)
random = (function: builtin#63)
Log = (function: 0x0307df08)
[/quote]
Loose LUAs?

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Eksekk » 21 Jul 2022, 08:10

darkdill wrote: 21 Jul 2022, 02:13
Eksekk wrote: 20 Jul 2022, 21:24
darkdill wrote: 20 Jul 2022, 19:33 Just did a fresh reinstall of this because it was crashing a lot, but after going through the installation process, I found that the Golden Plate Armor (MM6) item comes up as a null icon (red circle) in inventory, not just when equipped to someone. I've been trying to shuffle which files are installed, having downloaded the Base Merge (2022-06-18 no media), Rodril v. 2022-02-15, Merge media, and Revamp zip files, but I can't get it to show up properly.

I assume I'm looking at the wrong files (I'm trying not to just dump an entire zip folder in at once), so which one could cause this bug? Switching between various Complex item pictures.txt files did nothing, so maybe it's one of the LOD's? I don't know where the game art is stored.

EDIT: Now the MM7 Horseshoes are red circles too.
Just to make sure, did you install properly (base merge + media + patch (none for newest base merge) + one branch)? Can you show me screenshot of your "Data" folder, (or two, so that all files are visible)? Are you okay with delving into the files for a bit to debug (I will explain everything)?
After messing around with all those folders, I simply got the pre-packed full installation. I can't quite remember everything I did. Sorry.

It turns out that the glitch was due to an outdated ITEMS.txt file that I made. Replacing it with the one included in the pre-installed pack fixed it.

Onto a new issue, though. When entering Castle Harmondale for the first time, I got this.

Code: Select all

...ames\Might and Magic 8\Scripts\Global\ExtraArtifacts.lua:87: array index (11887) out of bounds [0, 2200]

stack traceback:
	[C]: in function 'error'
	...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1426: in function '__index'
	...ames\Might and Magic 8\Scripts\Global\ExtraArtifacts.lua:87: in function 'v'
	...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:66: in function 'docall'
	...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:126: in function 'call'
	...\Might and Magic 8\Scripts\Structs\RemoveItemsLimits.lua:1203: in function <...\Might and Magic 8\Scripts\Structs\RemoveItemsLimits.lua:1199>
	[C]: in function 'pcall'
	...G Galaxy\Games\Might and Magic 8\Scripts/Core/Common.lua:203: in function 'pcall2'
	...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1772: in function <...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1769>
	[C]: in function 'co_resume'
	...y\Games\Might and Magic 8\Scripts\Core\ErrorFunction.lua:212: in function 'coroutine_resume'
	...G Galaxy\Games\Might and Magic 8\Scripts/Core/Common.lua:219: in function 'cocall2'
	...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:96: in function 'cocallPart'
	...laxy\Games\Might and Magic 8\Scripts/Core/EventsList.lua:168: in function 'cocall'
	...\GOG Galaxy\Games\Might and Magic 8\Scripts/Core/evt.lua:190: in function <...\GOG Galaxy\Games\Might and Magic 8\Scripts/Core/evt.lua:149>

arguments of 'v':
	Item = (table: 0x2220fdb8)

local variables of 'v':
	Num = 11887
	(*temporary) = (table: 0x04afef88)
	(*temporary) = ("cdata<int *>: 0x0019c91c")
	(*temporary) = 12044900
	(*temporary) = nil
	(*temporary) = nil
	(*temporary) = 106494988
	(*temporary) = nil
	(*temporary) = 1.5324588544129e-175

upvalues of 'v':
	GItems = (table: 0x04afef88)
	GetNotFoundArts = (function: 0x1ba76fb0)
	random = (function: builtin#63)
	Log = (function: 0x0307df08)
Loose LUAs?
That's due to a very recent merge-specific error, download this file and put it into scripts/structs for temporary fix.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

darkdill
Galactic Gargle Blaster
Galactic Gargle Blaster
Posts: 42
Joined: 06 Apr 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby darkdill » 23 Jul 2022, 08:17

TheTate wrote: 18 Jul 2022, 23:26
Maslyonok wrote: 18 Jul 2022, 06:42
TheTate wrote: 17 Jul 2022, 23:37


OMG, that worked, and I got to keep my save files! You're a hero.
You are welcome! :D
So, only small issue I still have is that it reset my quests, which barred my MM7 characters from getting their final promotions and prevented me from advancing the main story. I even returned to Emerald Island to see if I could start from scratch, but neither Markham or the judge were present there. Is there a way to fix this in debug? Either by resetting the MM7 world, or just editing my characters to their final promotion?
If not, I'm not too worried about it. Just glad to be playing again! Thank you again for the help!
I ran into this too. I started in Antagarich, finished the Emerald Isles quests, but shortly after I cleared out Castle Harmondale, this courier gives me a flier about the contest. I couldn't get back into Castle Harmondale, and thus could not continue the main MM7 questline.

Had to restart in MM6. I haven't jumped between realms yet, so I don't know if the issue will persist.

winstonthechurch
Leprechaun
Leprechaun
Posts: 4
Joined: 20 Apr 2022

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby winstonthechurch » 23 Jul 2022, 12:45

So i guess the Invisibility spell will be forever broken then :/


User avatar
Maslyonok
Pixie
Pixie
Posts: 128
Joined: 18 Oct 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Maslyonok » 23 Jul 2022, 17:57

darkdill wrote: 23 Jul 2022, 08:17
TheTate wrote: 18 Jul 2022, 23:26
Maslyonok wrote: 18 Jul 2022, 06:42

You are welcome! :D
So, only small issue I still have is that it reset my quests, which barred my MM7 characters from getting their final promotions and prevented me from advancing the main story. I even returned to Emerald Island to see if I could start from scratch, but neither Markham or the judge were present there. Is there a way to fix this in debug? Either by resetting the MM7 world, or just editing my characters to their final promotion?
If not, I'm not too worried about it. Just glad to be playing again! Thank you again for the help!
I ran into this too. I started in Antagarich, finished the Emerald Isles quests, but shortly after I cleared out Castle Harmondale, this courier gives me a flier about the contest. I couldn't get back into Castle Harmondale, and thus could not continue the main MM7 questline.

Had to restart in MM6. I haven't jumped between realms yet, so I don't know if the issue will persist.
Tested today your statement in new game (both localized and original) and didn't noticed any problems...

User avatar
Larec
Leprechaun
Leprechaun
Posts: 24
Joined: 04 May 2007

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Larec » 25 Jul 2022, 01:10

WOW, can't believe someone managed to do this. Impressive. Going to download it and see how it is. Many thanks to all the programmers involved and those who gave their time to this project.

User avatar
Maslyonok
Pixie
Pixie
Posts: 128
Joined: 18 Oct 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Maslyonok » 25 Jul 2022, 07:32

Changed 48 string in TransTxt directly so placeholder shown in screenshot below wouldn't appear. (TransTxt string in LocalizeTables.txt don't work apparantly)

Image

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Eksekk » 25 Jul 2022, 09:49

Maslyonok wrote: 25 Jul 2022, 07:32 Changed 48 string in TransTxt directly so placeholder shown in screenshot below wouldn't appear. (TransTxt string in LocalizeTables.txt don't work apparantly)

Image
Do you want to include scripts with your localization? This can be fixed with them, and I can provide the code if you wish. They won't affect anything else except trans texts. If you don't, then I unfortunately cannot help. You'll have to wait for someone else.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

User avatar
Maslyonok
Pixie
Pixie
Posts: 128
Joined: 18 Oct 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Maslyonok » 25 Jul 2022, 10:04

Eksekk wrote: 25 Jul 2022, 09:49
Do you want to include scripts with your localization? This can be fixed with them, and I can provide the code if you wish. They won't affect anything else except trans texts. If you don't, then I unfortunately cannot help. You'll have to wait for someone else.
Of course I do :) Any help will be appreciated

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Eksekk » 25 Jul 2022, 17:17

Maslyonok wrote: 25 Jul 2022, 10:04
Eksekk wrote: 25 Jul 2022, 09:49
Do you want to include scripts with your localization? This can be fixed with them, and I can provide the code if you wish. They won't affect anything else except trans texts. If you don't, then I unfortunately cannot help. You'll have to wait for someone else.
Of course I do :) Any help will be appreciated

Code: Select all

local correctTexts =
{
	["7out01.odm"] = 220,
	["7d12.blv"] = 194,
	["mdt09.blv"] = 8,
	["7d21.blv"] = "Transition text",
	["mdt04.blv"] = "Transition text",
}

function events.GetTransitionText(t)
	local val = correctTexts[t.EnterMap:lower()]
	if type(val) == "string" then
		t.Text, t.CustomText = val, val
	elseif type(val) == "number" then
		t.TransId = val
	end
end
Put this code into a lua file and move it to Scripts/Global directory. You can obviously add more entries to the correctTexts table or delete them, it's just an example. I have used only TransIds, but text should still work, if it doesn't, I will fix that.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

User avatar
Maslyonok
Pixie
Pixie
Posts: 128
Joined: 18 Oct 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Maslyonok » 25 Jul 2022, 18:24

Eksekk wrote: 25 Jul 2022, 17:17
Maslyonok wrote: 25 Jul 2022, 10:04
Eksekk wrote: 25 Jul 2022, 09:49
Do you want to include scripts with your localization? This can be fixed with them, and I can provide the code if you wish. They won't affect anything else except trans texts. If you don't, then I unfortunately cannot help. You'll have to wait for someone else.
Of course I do :) Any help will be appreciated

Code: Select all

local correctTexts =
{
	["7out01.odm"] = 220,
	["7d12.blv"] = 194,
	["mdt09.blv"] = 8,
	["7d21.blv"] = "Transition text",
	["mdt04.blv"] = "Transition text",
}

function events.GetTransitionText(t)
	local val = correctTexts[t.EnterMap:lower()]
	if type(val) == "string" then
		t.Text, t.CustomText = val, val
	elseif type(val) == "number" then
		t.TransId = val
	end
end
Put this code into a lua file and move it to Scripts/Global directory. You can obviously add more entries to the correctTexts table or delete them, it's just an example. I have used only TransIds, but text should still work, if it doesn't, I will fix that.
Does it matter how i name this lua file? Or I should add it to existed file?

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby Eksekk » 25 Jul 2022, 19:32

Maslyonok wrote: 25 Jul 2022, 18:24 Does it matter how i name this lua file? Or I should add it to existed file?
No, it does not matter. Scripts are loaded alphabetically, but in this case this doesn't have any significance. You can add to existing file, but the best is to create new file because if you edited existing Merge script you'd have to reedit every time this script is updated. With a new file you don't care what happens to others, you only provide the additional file.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

darkdill
Galactic Gargle Blaster
Galactic Gargle Blaster
Posts: 42
Joined: 06 Apr 2018

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby darkdill » 26 Jul 2022, 00:53

Casting Dispel Magic caused this to happen for me.
...G Galaxy\Games\Might and Magic 8\Scripts/Core/events.lua:2077: array index (-1) out of bounds [0, 10]

stack traceback:
: in function 'error'
...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1426: in function '__index'
...G Galaxy\Games\Might and Magic 8\Scripts/Core/events.lua:2077: in function 'Who'
...G Galaxy\Games\Might and Magic 8\Scripts/Core/events.lua:2101: in function 'f'
...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:2208: in function <...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:2206>
[C]: in function 'pcall'
...G Galaxy\Games\Might and Magic 8\Scripts/Core/Common.lua:203: in function 'pcall2'
...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1772: in function <...OG Galaxy\Games\Might and Magic 8\Scripts/Core/RSMem.lua:1769>

arguments of 'Who':
i = -1
action = nil

local variables of 'Who':
t = (table: 0x25c0d2f0)
kind = 2
(*temporary) = (table: 0x25a333e0)
(*temporary) = 1
(*temporary) = 8.3968299085192e-293[/quote]

This repeats for each enemy that Dispel Magic affects. It doesn't happen when an enemy uses it. This happened when I was clearing out The Monolith, as some of the Druids there were using Pain Reflection.

cthscr
Golem
Golem
Posts: 613
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 15.02.2022]

Unread postby cthscr » 26 Jul 2022, 17:57

darkdill wrote: 26 Jul 2022, 00:53 Casting Dispel Magic caused this to happen for me.
This is a bug in MMExtension triggered by probably a bug in MM8. Dispel has no projectile in ObjList but proc tries to create map object of this type and sends -1 as map object index.
Lazy workaround, applied in Revamp:

Code: Select all

--- a/Scripts/Core/events.lua
+++ b/Scripts/Core/events.lua
@@ -2072,6 +2072,7 @@ do

        local function Who(i, action)
                local t, kind = {}, i%8
+               if i < 0 then return t end
                i = (i - kind)/8
                if kind == 2 then
                        local obj = Map.Objects[i]
Quick look at proc 0x436E26 makes me feel like it will accept -1 and will try to get data from the memory before the array, taking garbage with unpredictable consequences.
GrayFace wrote::summon:


Return to “Might and Magic”

Who is online

Users browsing this forum: No registered users and 1 guest