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).
toh
Leprechaun
Leprechaun
Posts: 15
Joined: 12 Oct 2008

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

Unread postby toh » 13 Feb 2025, 12:15

was the 2nd floor and basemend of Harmondale always in the game or is it something mmmerge added?
what else is expanded?

User avatar
raekuul
Marksman
Marksman
Posts: 441
Joined: 05 Jul 2019

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

Unread postby raekuul » 13 Feb 2025, 13:18

Harmondale's 2nd floor and basement are part of the base game, they're mentioned by the butler after you complete your alliance quest (and in theory the basement is part of the Ninja promotion, since the records of the torture session indicate that a previous owner of that basement was interested in the Tomb of the Master)

toh
Leprechaun
Leprechaun
Posts: 15
Joined: 12 Oct 2008

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

Unread postby toh » 13 Feb 2025, 13:43

just noticed it now after so many playthroughs. Guides have only base map of the castle.

What about magic lamps? i cant get 8 skill points on october 22.
5 max
and it is random. sometimes an item, usually sickness.

Ekomzfk
Lurker
Lurker
Posts: 1
Joined: 14 Feb 2025

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

Unread postby Ekomzfk » 14 Feb 2025, 06:18

Can anyone help me fix the way chests work? It seems like I can't see all of their contents, and when reopening them, the items don't move up or sort to the left.

toh
Leprechaun
Leprechaun
Posts: 15
Joined: 12 Oct 2008

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

Unread postby toh » 14 Feb 2025, 10:06

I saw a review of the MMmerge on YouTube and it focused on mm6.

A guy mentioned some quests that are game breaking like everyone attacking and sellers ask astronomical price. Something with Baa cult.
I don't remember this in my mm6 original playthrough.
Is there a list of things to avoid? Things that tank reputation.

Also from that video I realized if for mm7 I have had chosen non mm7 class I would be forced to change continents. For promotions.
I am glad I chose concervative and glad I knew what are canon classes for mm7. Something a mod or first sticky post should address.

User avatar
raekuul
Marksman
Marksman
Posts: 441
Joined: 05 Jul 2019

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

Unread postby raekuul » 14 Feb 2025, 18:43

There's no avoiding things that tank reputation if you want to finish MM6, since you have to release Archibald to get the Ritual of the Void, which tanks your reputation score.

So just go straight to the Ironfist temple and throw a bunch of gold in the donation bucket once you do.

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » 15 Feb 2025, 13:10

Ekomzfk wrote: 14 Feb 2025, 06:18 Can anyone help me fix the way chests work? It seems like I can't see all of their contents, and when reopening them, the items don't move up or sort to the left.
Add

Code: Select all

FixChests=1
to Settings section of mm8.ini. GrayFace has disabled it by default.
toh wrote: 14 Feb 2025, 10:06 I saw a review of the MMmerge on YouTube and it focused on mm6.

A guy mentioned some quests that are game breaking like everyone attacking and sellers ask astronomical price. Something with Baa cult.
I don't remember this in my mm6 original playthrough.
Is there a list of things to avoid? Things that tank reputation.

Also from that video I realized if for mm7 I have had chosen non mm7 class I would be forced to change continents. For promotions.
I am glad I chose concervative and glad I knew what are canon classes for mm7. Something a mod or first sticky post should address.
1. Sseth's view was already obsolete on some parts at a launch time. Reputation (and its trade effect) is one of them. Candelabra quest will take 1000 rep from you as in vanilla MM6. Passable.
2. You can choose only classes with available promotions by default.

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » 17 Feb 2025, 09:58

jmaster wrote: 08 Jan 2025, 16:04 Milky1988, thanks :) I'd really want to recreate character portraits from MM7 HD interface that was natively done by GrayFace like on the screen below, but I doubt it is possible for now without recoding whole interface. First problem - game is not enough UI-customisable. UI settings for now can be only applied to limited number of resources in lod and limited number of parameters in "Additional UI.txt"(just to do four icons to the left of characers i had to edit patch.UI.txt that affecting all available themes.)
Second problem - I don't know how to edit UI.txt as almost everything that I try there gives no reaction.
Third problem - I doubt that we can easily split hp and mana bars. I cannot even move them for now
2. Neither do I but here's removing of extra images if party size is lower than 4:

Code: Select all

--- Data/UI.txt.bak	2021-02-01 21:39:06.000000000 +0300
+++ Data/UI.txt	2025-02-17 12:47:39.799086642 +0300
@@ -90,6 +90,8 @@
 var PartyBottom	(StatusPlace<0 and StatusH>0)*(StatusH + PartyStatusDist)
 var PartyFullH	PartyH + PartyBottom
 
+var TranspBaseBar	1
+var DrawOrn	1 - TranspBaseBar
 
 ; Stages
 stage Read									0
@@ -201,10 +203,10 @@
 var orx or2	9	11
 var orx or2	14	7
 var orx or2	17	7							Game.Players>1
-icon UI-OrL					x+LR+3+orx	92+TB			Game.Players<=3					BaseBar	Ornament
-icon UI-OrR					xr-orx	92+TB			Game.Players<=3					BaseBar
-icon UI-OrL					x+LR+3+orx+or2	92+TB*2			Game.Players<=3					BaseBar	Ornament
-icon UI-OrR					xr-orx-or2	92+TB*2			Game.Players<=3					BaseBar
+icon UI-OrL					x+LR+3+orx	92+TB			Game.Players<=3 and DrawOrn					BaseBar	Ornament
+icon UI-OrR					xr-orx	92+TB			Game.Players<=3 and DrawOrn					BaseBar
+icon UI-OrL					x+LR+3+orx+or2	92+TB*2			Game.Players<=3 and DrawOrn					BaseBar	Ornament
+icon UI-OrR					xr-orx-or2	92+TB*2			Game.Players<=3 and DrawOrn					BaseBar
 	4	386	W+1	92	x+2		+	+						BaseBar	Portraits
 icon UI-Party			1	92	x+1		-	+						BaseBar
 icon UI-Party	R-1		1	92	x+1+W		-							BaseBar

I can't erase Basebar icon yet, but copying rectangles (with space between) was done for MM8 interface. There's a problem that interfaces have different height and width, so erasing icon seems to be proper direction.
Diff for two first characters:

Code: Select all

--- Data/UI.txt.bak	2021-02-01 21:39:06.000000000 +0300
+++ Data/UI.txt	2025-02-17 12:54:29.010453747 +0300
@@ -90,6 +90,8 @@
 var PartyBottom	(StatusPlace<0 and StatusH>0)*(StatusH + PartyStatusDist)
 var PartyFullH	PartyH + PartyBottom
 
+var TranspBaseBar	1
+var DrawOrn	1 - TranspBaseBar
 
 ; Stages
 stage Read									0
@@ -201,22 +203,24 @@
 var orx or2	9	11
 var orx or2	14	7
 var orx or2	17	7							Game.Players>1
-icon UI-OrL					x+LR+3+orx	92+TB			Game.Players<=3					BaseBar	Ornament
-icon UI-OrR					xr-orx	92+TB			Game.Players<=3					BaseBar
-icon UI-OrL					x+LR+3+orx+or2	92+TB*2			Game.Players<=3					BaseBar	Ornament
-icon UI-OrR					xr-orx-or2	92+TB*2			Game.Players<=3					BaseBar
-	4	386	W+1	92	x+2		+	+						BaseBar	Portraits
-icon UI-Party			1	92	x+1		-	+						BaseBar
-icon UI-Party	R-1		1	92	x+1+W		-							BaseBar
-icon UI-Party	R		20	92	xr-20		-							BaseBar	Right Side
+icon UI-OrL					x+LR+3+orx	92+TB			Game.Players<=3 and DrawOrn					BaseBar	Ornament
+icon UI-OrR					xr-orx	92+TB			Game.Players<=3 and DrawOrn					BaseBar
+icon UI-OrL					x+LR+3+orx+or2	92+TB*2			Game.Players<=3 and DrawOrn					BaseBar	Ornament
+icon UI-OrR					xr-orx-or2	92+TB*2			Game.Players<=3 and DrawOrn					BaseBar
+	4	386	W+1	92	x+2		+	+	TranspBaseBar=0					BaseBar	Portraits
+icon UI-Party			1	92	x+1		-	+	TranspBaseBar=0					BaseBar
+icon UI-Party	R-1		1	92	x+1+W		-		TranspBaseBar=0					BaseBar
+icon UI-Party	R		20	92	xr-20		-		TranspBaseBar=0					BaseBar	Right Side
 ; Move stuff
  up
 var x	x-2
 var X	84
+	X-66	388	62	82	X+x-65		+	+	TranspBaseBar					BaseBar	Portrait
 	X	429	9	51	X+x	b+TB-17								BaseBar	Bars
 	X-18	464	13	12	X+x-17	b+TB-19								BaseBar	Star
 	X-72	459	16	19	X+x-72	b+TB-18								BaseBar	Icon
 var X	181
+	X-66	386	62	84	X+x-65		+	+	Game.Players>=2 and TranspBaseBar					BaseBar	Portrait
 	X	429	9	51	X+x	b+TB-17			Game.Players>=2					BaseBar	Bars
 	X-15	464	13	12	X+x-16	b+TB-19			Game.Players>=2					BaseBar	Star
 	X-70	459	16	19	X+x-70	b+TB-18			Game.Players>=2					BaseBar	Icon
3. HP and SP bars can be split easily in Screen 0. Dialogs use full copy of original image.

User avatar
toadking
Pixie
Pixie
Posts: 102
Joined: 22 Jul 2022

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

Unread postby toadking » 17 Feb 2025, 11:06

Hi, everyone,
In those NPC backpacks at the beginning of the game, some spell scroll's value become 4294967284 when "SpellScrollRanks" is set to 1, has anyone encountered this issue before?
Thanks.

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » 17 Feb 2025, 11:31

toadking wrote: 17 Feb 2025, 11:06 In those NPC backpacks at the beginning of the game, some spell scroll's value become 4294967284 when "SpellScrollRanks" is set to 1, has anyone encountered this issue before?
No. Does it preserve after loading savegame? After restarting mm8.exe (if yes on previous)?
Take it into mouse and run 'dump(Mouse.Item)'.

User avatar
toadking
Pixie
Pixie
Posts: 102
Joined: 22 Jul 2022

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

Unread postby toadking » 17 Feb 2025, 11:44

cthscr wrote: 17 Feb 2025, 11:31
toadking wrote: 17 Feb 2025, 11:06 In those NPC backpacks at the beginning of the game, some spell scroll's value become 4294967284 when "SpellScrollRanks" is set to 1, has anyone encountered this issue before?
No. Does it preserve after loading savegame? After restarting mm8.exe (if yes on previous)?
Take it into mouse and run 'dump(Mouse.Item)'.
Thanks for your apply, the issue occurred when I started a new game, chose MM8, and found it in the inventory of the two NPCs recruited on Dagger Island, then I have traced the following function:

Code: Select all

-- Spell Scroll stdbonus cost
function events.GetItemStdBonusCost(t)
	local vifexe = 0
	if MM.SpellScrollRanks ~= 1 or t.StdBonus < 26 or t.StdBonus > 29 then
		return
	end
	if t.Item > 299 and t.Item < 400 then
		vifexe = 1
		t.Result = floor(max(2 ^ (t.StdBonus - 28) - 1, -0.75) * t.BaseCost
			+ (t.BonusStrength - 7) * t.BaseCost / 10)
	elseif t.Item > 1101 and t.Item < 1202 then
		vifexe = 2
		t.Result = floor(max(2 ^ (t.StdBonus - 27) - 1, -0.5) * t.BaseCost
			+ (t.BonusStrength - 5) * t.BaseCost / 10)
	elseif t.Item > 1801 and t.Item < 1902 then
		vifexe = 3
		t.Result = floor(max(2 ^ (t.StdBonus - 26) - 1, 0) * t.BaseCost
			+ (t.BonusStrength - 3) * t.BaseCost / 10)
	end
	MF.LogError("Error found at this line vifexe =%d,StdBonus=%d,Item=%d,BonusStrength=%d, BaseCost=%d, Result=%d ", vifexe,t.StdBonus, t.Item, t.BonusStrength, t.BaseCost,t.Result) 
end
Information of a problematic scroll with the value is 4294967284 as below:
(EE) Error found at this line vifexe =1,StdBonus=26,Item=302,BonusStrength=3, BaseCost=60, Result=-69
(EE) Error found at this line vifexe =1,StdBonus=26,Item=336,BonusStrength=4, BaseCost=80, Result=-84

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » 17 Feb 2025, 13:04

toadking wrote: 17 Feb 2025, 11:44 Information of a problematic scroll with the value is 4294967284 as below:
(EE) Error found at this line vifexe =1,StdBonus=26,Item=302,BonusStrength=3, BaseCost=60, Result=-69
(EE) Error found at this line vifexe =1,StdBonus=26,Item=336,BonusStrength=4, BaseCost=80, Result=-84
If you look at previous function, items 300-399 should get only std bonuses 28 and 29 with strength in range 7-10. Was something changed in your installation?
I should change function anyway. Quick workaround:

Code: Select all

function events.GetItemStdBonusCost(t)
        if MM.SpellScrollRanks ~= 1 or t.StdBonus < 26 or t.StdBonus > 29 then
                return
        end
        if t.Item > 299 and t.Item < 400 then
                t.Result = floor(max(2 ^ (t.StdBonus - 28) - 1, -0.75) * t.BaseCost
                        + max(t.BonusStrength - 7, 0) * t.BaseCost / 10)
        elseif t.Item > 1101 and t.Item < 1202 then
                t.Result = floor(max(2 ^ (t.StdBonus - 27) - 1, -0.5) * t.BaseCost
                        + max(t.BonusStrength - 5, 0) * t.BaseCost / 10)
        elseif t.Item > 1801 and t.Item < 1902 then
                t.Result = floor(max(2 ^ (t.StdBonus - 26) - 1, 0) * t.BaseCost
                        + max(t.BonusStrength - 3, 0) * t.BaseCost / 10)
        end
end

User avatar
toadking
Pixie
Pixie
Posts: 102
Joined: 22 Jul 2022

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

Unread postby toadking » 17 Feb 2025, 14:10

cthscr wrote: 17 Feb 2025, 13:04
toadking wrote: 17 Feb 2025, 11:44 Information of a problematic scroll with the value is 4294967284 as below:
(EE) Error found at this line vifexe =1,StdBonus=26,Item=302,BonusStrength=3, BaseCost=60, Result=-69
(EE) Error found at this line vifexe =1,StdBonus=26,Item=336,BonusStrength=4, BaseCost=80, Result=-84
If you look at previous function, items 300-399 should get only std bonuses 28 and 29 with strength in range 7-10. Was something changed in your installation?
I should change function anyway. Quick workaround:

Code: Select all

function events.GetItemStdBonusCost(t)
        if MM.SpellScrollRanks ~= 1 or t.StdBonus < 26 or t.StdBonus > 29 then
                return
        end
        if t.Item > 299 and t.Item < 400 then
                t.Result = floor(max(2 ^ (t.StdBonus - 28) - 1, -0.75) * t.BaseCost
                        + max(t.BonusStrength - 7, 0) * t.BaseCost / 10)
        elseif t.Item > 1101 and t.Item < 1202 then
                t.Result = floor(max(2 ^ (t.StdBonus - 27) - 1, -0.5) * t.BaseCost
                        + max(t.BonusStrength - 5, 0) * t.BaseCost / 10)
        elseif t.Item > 1801 and t.Item < 1902 then
                t.Result = floor(max(2 ^ (t.StdBonus - 26) - 1, 0) * t.BaseCost
                        + max(t.BonusStrength - 3, 0) * t.BaseCost / 10)
        end
end
Great, it works, thank you very much. I found that this issue only occurs in the inventory of NPCs that can be recruited in MM8(roster ID<=35), and does not occur when opening chests or stores.

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » Yesterday, 09:52

jmaster wrote: 06 Jan 2025, 16:20 Hello to everyone and happy holidays :)
Long ago I wanted to add light and dark interfaces from MM7 to Merge mod, but I haven't managed to get proper result. And I haven't seen any ready interfaces for now, so I decided to give another try. So, I would like to present to your attention a mod that adds light and dark interfaces!

And another one, but, I guess, that only the author of the patch can help me. (GrayFace, if you see this, can you help?)
I want to get UI look like more like the one in patched MM7 version without characters background and that corners just like this. I managed to get this screenshot by manually erasing background around characters in "basebar.bmp"(you can see small doubling around first character, I think that it is because that picture loads with shift somewhere in code), but it deals not only with in-game screen, but with inventory too.
So, to do this the only thing to do is to disable drawing "basebar.bmp" at all in the game and not in the inventory

UPD: Sorry, I wrote the idea wrong. If we disable drawing basebar, then there will be no infobar over it too. So we need to make dissappear only the part that is behind character faces, for example, setting it multiplier to zero
Few notes.
Instead of icon IB-M4d-B Merge.UI=4 you should add var UA "B" Merge.UI=4 after var UA "A" line.
(I mean

Code: Select all

icon IB-M4d-B                                     Merge.UI=4
...
var UA    "B"                                     Merge.UI=4
Pol, c tag eats spaces.)
Pol wrote:summon ritual ^
I suspect we can use Party.QBits[611] there as well (like 'Merge.UI=4 or Merge.UI=2 and Party.QBits[611]'). But it will need combined lods for MM7 interfaces.
I'd suggest to fit selring into MM8's 61x80. And make stat* icons non-cropped on sides (and fit changed selring).
Basebar should be (and seems to be able to) partially erased in READ stage. I'll try to understand it and rewrite UI.txt to make it usable.
(Upd: I got it, it's 'pcx UI-PrtFr' from mm7's icons.UI.lod.
Character face icons in MM7 were transparent on sides. MM8 ones (and therefore all in MMMerge) aren't. If we make them transparent - there will be undesired side effects in dialogs (to check - change field 'Face pics prefix' of character 43 in 'Data/Tables/Character portraits.txt' from 'pc32-' to '7pc11-'). I'm not sure yet how to fix it.

cthscr
Golem
Golem
Posts: 633
Joined: 12 Jan 2020

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

Unread postby cthscr » Today, 09:41

Okay, here we are.
Image
UI.txt
mmmerge.icons.UI.lod (put into Data, not into Data/Additional\ UI) - contains 3 renamed files from GrayFace's MM7 icons.UI.lod.
UI.txt supports neutral, good and evil variants. (Test with Game.Dll.UILayoutSetVarInt('Game.Alignment', 1) for good and Game.Dll.UILayoutSetVarInt('Game.Alignment', -1) for evil.)
For variants to be automatically adjusted add following code (partially tested only [and only for Revamp]).
To Scripts/General/Additional UI.lua:

Code: Select all

local MF = Merge.Functions
MF.UISendAlignment = function()
       local alignment = 0
       if Party.QBits[611] then
               alignment = 1
       elseif Party.QBits[612] then
               alignment = -1
       end
       Game.Dll.UILayoutSetVarInt('Game.Alignment', alignment)
end
function events.BeforeLoadMap(WasInGame)
       MF.UISendAlignment()
end
To Scripts/Maps/7out02.lua:

Code: Select all

local MF = Merge.Functions
evt.Map[37] = function()
	MF.UISendAlignment()
end
Known problems: status bar overlaps top of basebar and should be put slightly higher.
Evil interface pcx seems to have different offsets so requires some redrawing.
Some offsets for portraits should/could be changed as well.

PS. Now someone has to draw transparent interface elements (similar to GrayFace's UI-PtrFr.pcx from MM7's icons.UI.lod) for MM8 and MM6 interfaces. Now it looks like
Image
(use Game.Dll.UILayoutSetVarInt('Merge.TranspBasebar', 1) in debug console to activate transparency for all interfaces.)

YamiDragoon
Lurker
Lurker
Posts: 1
Joined: 19 Feb 2025

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

Unread postby YamiDragoon » Today, 15:43

Hi everyone!
I have already given this mod a good try few years ago but never got to finish it, and I am absolutely mindblown that in the meantime it got some more updates even!

I would be very interested in what there is possible as I read there is a mod for more enemy spawns to make the game a bit more challenging?
Are there other mods for Merge? Any list somewhere that I just can't find?
I'd be very, very thankful! :3


Return to “Might and Magic”

Who is online

Users browsing this forum: DaveHer, YamiDragoon and 5 guests