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

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).

Moderator: Moderators

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 28 2019, 13:32

wuxiangjinxing wrote:
Templayer wrote:
sai wrote:Hello guys, first of all i wanted to tell you that this project is awesome and i love it!

:proud:

Be sure to check the Tracker. There is also an optional modifications section on the Tracker (Character Creation Unlocker, Racial Skills, such things :P ) and a Community Branch of the Merge that has some things the Base Merge doesn't have - https://gitlab.com/templayer/mmmerge (scroll down to the README)


Could you include my summoner MOD to the tracker and community branch?
Templayer wrote:I will add this to the community branch once all Earth spells have a summoning effect for the druid.

What's the current status?

Also feel free to make a Merge Request. Fanasilver did, and he wasn't even a part of the "team" as GitLab puts it.
So I presume anybody with a free account can do it.
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

Milky1988
Leprechaun
Leprechaun
Posts: 38
Joined: 03 Mar 2018

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

Postby Milky1988 » Dec 29 2019, 2:30

I would love to play this with hardware acceleration, but the game crashes to desktop when it gets to main menu...
Using a predator helios laptop, nvidia graphics card... Cant play it without this...

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 29 2019, 15:31

Milky1988 wrote:I would love to play this with hardware acceleration, but the game crashes to desktop when it gets to main menu...
Using a predator helios laptop, nvidia graphics card... Cant play it without this...

Also win10, presumably.

I actually brought this laptop to my father and then we spent MONTHS trying to put Win7 on it. Due to the UEFI3.0 standard used and the absence of any legacy bios compatibility whatsoever, it is night impossible without reflashing the bios.

If you have the garbage operating system (Win10), then... did you try running it as an administrator? :)

I'm afraid that I cannot help you.

I can offer some solutions that should work, but they are rather radical - making a virtualized Win7 or dual-booting into a Linux distribution (the Linux gaming stuff got quite a boom lately, I was quite impressed by what was possible to run there. Basically every game my father ever played can be played on a Linux, even those that tend to be rather unstable on Windows, like Dungeon Keeper 2. It's sad when Linux can play older Windows games better than Windows 10 :( . Don't take me for a Linux fanboy though, it has a lot of problems on its own, like regressions, etc. )

Some other people here might help you if it is a Win10 problem, I probably won't be able to.
Also GrayFace (i.e. the guy who made the patches to make the game work on newer operating systems, reverse engineered the code etc.) should be able to help, but he hasn't been here lately, unfortunately.

There is probably some log file from the crash somewhere in your Merge folder, I beckon (generated by the GF patch). If you post it here we might be able to narrow the issue down a bit more. I presume you have tried various compatibiltiy settings, running it as admin, using only one monitor,... that sort of stuff?
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

Milky1988
Leprechaun
Leprechaun
Posts: 38
Joined: 03 Mar 2018

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

Postby Milky1988 » Dec 29 2019, 17:02

Thanks for your reply,

Yes, Win10..

I've tried running in all compatibility settings, running as admin etc.
No luck.

Edit: Got it running finally. I had to disable reduced color mode, which was enabled by default and set it to compatibility for Win XP (Service Pack 2)

Thanks for your help!

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 29 2019, 18:39

Milky1988 wrote:Thanks for your reply,

Yes, Win10..

I've tried running in all compatibility settings, running as admin etc.
No luck.

Edit: Got it running finally. I had to disable reduced color mode, which was enabled by default and set it to compatibility for Win XP (Service Pack 2)

Thanks for your help!

No problem. I'm glad you finally got it to work.

I don't even know what reduced color mode is. :D :D
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

Milky1988
Leprechaun
Leprechaun
Posts: 38
Joined: 03 Mar 2018

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

Postby Milky1988 » Dec 30 2019, 1:38

Such a wonderful mod, I forgot how much I loved these games!
Now, if only the minotaur changed appearance when he got promoted... =D
Last edited by Milky1988 on Dec 30 2019, 1:38, edited 1 time in total.

User avatar
SpectralDragon
Hunter
Hunter
Posts: 549
Joined: 15 May 2019

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

Postby SpectralDragon » Dec 30 2019, 9:41

Templayer wrote:No problem. I'm glad you finally got it to work.

I don't even know what reduced color mode is. :D :D

Probably same as Indexed Colors are to RGB colors, but for OSs. :P

Milky1988 wrote:Such a wonderful mod, I forgot how much I loved these games!
Now, if only the minotaur changed appearance when he got promoted... =D

Which promotion though, Lich? ^^; Since if they indeed don´t change their appearance when they get promoted (Rodril was supposed to put those in quite a while ago by now), then that´s a bug that I was fearing (and still fear the most) about.

Since this might be the last time in this year + decade you˙ll see me, let me just say this: I hope that ya all chaps have as much good stuff, luck and the like happen in the next one ... and I hope that this mod continues to grow and flourish until it becomes a complete bag of awesomeness it˙s always meant to be. Happy New Year ... and New Decade! :D :D
Yes?

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 30 2019, 10:02

Milky1988 wrote:Such a wonderful mod, I forgot how much I loved these games!
Now, if only the minotaur changed appearance when he got promoted... =D

Promoted into a Lich? he should change appearance, we do have a Minotaur Lich, animated and everything.

SpectralDragon wrote:
Templayer wrote:No problem. I'm glad you finally got it to work.

I don't even know what reduced color mode is. :D :D

Probably same as Indexed Colors are to RGB colors, but for OSs. :P

It's probably the old High color 16-bit + True color 32-bit setting, just renamed, because most Win10 users wouldn't know that 32-bit is more colours than 16-bit. Good new "Our user is a retard" motto of Microsoft ever since Win8. In quite a few cases they are not wrong, though (to play the Devil's advocate).

SpectralDragon wrote:
Milky1988 wrote:Such a wonderful mod, I forgot how much I loved these games!
Now, if only the minotaur changed appearance when he got promoted... =D

Which promotion though, Lich? ^^; Since if they indeed don´t change their appearance when they get promoted (Rodril was supposed to put those in quite a while ago by now), then that´s a bug that I was fearing (and still fear the most) about.

Since this might be the last time in this year + decade you˙ll see me, let me just say this: I hope that ya all chaps have as much good stuff, luck and the like happen in the next one ... and I hope that this mod continues to grow and flourish until it becomes a complete bag of awesomeness it˙s always meant to be. Happy New Year ... and New Decade! :D :D

Crud, you beat me to it!

Happy New Year to you too!
And now go back working on the Troll Lich. Where is my whip?? :D :D :D :D
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

Milky1988
Leprechaun
Leprechaun
Posts: 38
Joined: 03 Mar 2018

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

Postby Milky1988 » Dec 31 2019, 5:31

Ah, I was always wishing that, in the same way the character changes appearance for the promotion to Lich from Wizard, the Minotaur would change appearance when he is promoted to Minotaur Lord (I always loved the minotaur lords in the Nighon Tunnels). Would add more depth, somewhat.

Happy New Year also! To a wonderful 2020. ^^

Lucius
Leprechaun
Leprechaun
Posts: 33
Joined: 01 Dec 2017

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

Postby Lucius » Dec 31 2019, 10:04

Bug: Shield Eclipse from MM8 Ravenshore quest cannot be used by MM6 High Priest...
Last edited by Lucius on Dec 31 2019, 10:04, edited 1 time in total.

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 31 2019, 14:09

Milky1988 wrote:Ah, I was always wishing that, in the same way the character changes appearance for the promotion to Lich from Wizard, the Minotaur would change appearance when he is promoted to Minotaur Lord (I always loved the minotaur lords in the Nighon Tunnels). Would add more depth, somewhat.

Happy New Year also! To a wonderful 2020. ^^

Like, bigger HORNS? :D
Image

SpectralDragon wrote:*PROD*

I TOLD YOU. The HORNS NEED TO BE BIG. :D :D :D
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

Milky1988
Leprechaun
Leprechaun
Posts: 38
Joined: 03 Mar 2018

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

Postby Milky1988 » Dec 31 2019, 15:43

Omg, YES!! OvO

If only...!

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 31 2019, 15:58

Lucius wrote:Bug: Shield Eclipse from MM8 Ravenshore quest cannot be used by MM6 High Priest...

Added to the Bug Tracker.

The Merge probably doesn't take the newly created "High Priest" class (which is new for the MM8) as a branch of the Cleric class-line prerequisite for the shield.

The Cleric classes and the Priest of the Sun classes have been combined together from all three games.
High Priest from MM6 on the other hand had to be added as a "new class", so to speak.
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 31 2019, 15:59

Templayer wrote:
Milky1988 wrote:Ah, I was always wishing that, in the same way the character changes appearance for the promotion to Lich from Wizard, the Minotaur would change appearance when he is promoted to Minotaur Lord (I always loved the minotaur lords in the Nighon Tunnels). Would add more depth, somewhat.

Happy New Year also! To a wonderful 2020. ^^

Like, bigger HORNS? :D
Image

SpectralDragon wrote:*PROD*

I TOLD YOU. The HORNS NEED TO BE BIG. :D :D :D

Milky1988 wrote:Omg, YES!! OvO

If only...!
SpectralDragon wrote:*PROD*
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Dec 31 2019, 16:08

Kaikhorus wrote:Both of the two trainers are in Free Haven. One is the Gong trader near the Mordreth quest giver, the other is in one of the homes near the boat/dock and the general trader.

I've made a new header under the Tutorials section on the Tracker for these, because people keep asking about the new teachers.

If some people would like to fill it more, it would make me happy. :)
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

wuxiangjinxing
Leprechaun
Leprechaun
Posts: 15
Joined: 07 Dec 2019

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

Postby wuxiangjinxing » Jan 1 2020, 7:15

Templayer wrote:
Kaikhorus wrote:Both of the two trainers are in Free Haven. One is the Gong trader near the Mordreth quest giver, the other is in one of the homes near the boat/dock and the general trader.

I've made a new header under the Tutorials section on the Tracker for these, because people keep asking about the new teachers.

If some people would like to fill it more, it would make me happy. :)


Hey, could you give some suggestions on how to write the ascii of a string into memory?

For example, I want to write the string "Angel A" to the memory at 0x4f7dfc, currently what I'm doing is:
u2[0x4f7dfc] = string.byte('A')
u2[0x4f7dfd] = string.byte('n')
u2[0x4f7dfe] = string.byte('g')
... and so on

This works fine but the script would be very long. Is there a better way to do it? Thanks.

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Jan 1 2020, 11:24

wuxiangjinxing wrote:
Templayer wrote:
Kaikhorus wrote:Both of the two trainers are in Free Haven. One is the Gong trader near the Mordreth quest giver, the other is in one of the homes near the boat/dock and the general trader.

I've made a new header under the Tutorials section on the Tracker for these, because people keep asking about the new teachers.

If some people would like to fill it more, it would make me happy. :)


Hey, could you give some suggestions on how to write the ascii of a string into memory?

For example, I want to write the string "Angel A" to the memory at 0x4f7dfc, currently what I'm doing is:
u2[0x4f7dfc] = string.byte('A')
u2[0x4f7dfd] = string.byte('n')
u2[0x4f7dfe] = string.byte('g')
... and so on

This works fine but the script would be very long. Is there a better way to do it? Thanks.

I am actually not the coder for the Merge. GrayFace and Rodril did most of the work.

I'm only proficient in Java. (and originally C, C++, C#, and Ruby but that was too many years ago)

I do not know if you read the manual for the Extension or not - disregard the original function extraction etc., since that has already been done in the package, and read it if you haven't already - https://grayface.github.io/mm/ext/ref/

If you want to know how I would do it, if I can (this is one of many ways, presumably):
1. Create a function that puts a certain string into the memory (which is represented as an array in the Merge, with the keys being memory locations in hexadecimal and the values being the bytes inside said location). Two parameters - the string, and the memory starting point. ("Angel A" and 0x4f7dfc in your case would be the parameters) Possibly three parameters, if the function doesn't have access to u2, then the u2 as a third one. Probably called setStringToMemory or something like that. Better for it to be as widely useful as possible. In Java, we would put it into a class of *projectName*Utils, in this case MergeUtils.
2. Inside the function, in lua you would iterate over the individual chars inside the string (the string is basically an array of characters anyway, right?) - here's how: https://stackoverflow.com/questions/829063/how-to-iterate-individual-characters-in-lua-string - in Java, you would use a collection for this. "Note: In Lua string indices start at index value 1, not index value 0 (as they do in C)" - said the internet.
3. Inside the iteration, convert the iterated char into an ASCII code representation (i.e. that "string.byte(iteratedCharacter)" or whatever) and set it to memory location 0x4f7dfc with post incrementation of the said hexadecimal starting point variable. This basically means - in the first iteration (the first letter of the string), var pointInMemory will be 0x4f7dfc and in all subsequent iterations of the string characters, it is going to be pointInMemory (the previously set one) + 1 (in hexadecimal though).
4. Use the function in your code, which will take exactly one line of code to do per a String being added to the memory. :)
5. Find out that somebody already did something like that and you could have just used that and cry. :D :D :D
6. There might be a much easier solution somewhere. But programming-wise, this is a valid solution.

EDIT: I do not know what you are doing with this, maybe there should be a ceiling of the part of the memory you are editing so that you do not overflow your values into something else, and maybe the memory values from the end of your string up until some point should be empty if there was something there previously. In that case there would be another parameter to the function with the memory ending point, and it should throw an error if the string is a constant and is too long (going over), or be shortened and instead of an error thrown it should throw a warning into the log if the string is dynamic / non-constant.

I do not know if you didn't go through the Merge lua files already, but if you didn't, I would do that first, maybe there is already something like that somewhere.
Last edited by Templayer on Jan 1 2020, 11:49, edited 3 times in total.
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer

User avatar
tomchen1989
Pixie
Pixie
Posts: 100
Joined: 21 Jun 2008
Location: Europe / China

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

Postby tomchen1989 » Jan 1 2020, 15:21

Templayer wrote:
wuxiangjinxing wrote:
Templayer wrote:I've made a new header under the Tutorials section on the Tracker for these, because people keep asking about the new teachers.

If some people would like to fill it more, it would make me happy. :)


Hey, could you give some suggestions on how to write the ascii of a string into memory?

For example, I want to write the string "Angel A" to the memory at 0x4f7dfc, currently what I'm doing is:
u2[0x4f7dfc] = string.byte('A')
u2[0x4f7dfd] = string.byte('n')
u2[0x4f7dfe] = string.byte('g')
... and so on

This works fine but the script would be very long. Is there a better way to do it? Thanks.

...

Code: Select all

mem.copy(0x4f7dfc, "Angel A")

will do the job.
Check MMExtension's documentation

User avatar
tomchen1989
Pixie
Pixie
Posts: 100
Joined: 21 Jun 2008
Location: Europe / China

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

Postby tomchen1989 » Jan 1 2020, 15:46

You may also want to add a null character '\0' to the end of your string, in order to properly end your string. The code would become:

Code: Select all

mem.copy(0x4f7dfc, "Angel A\0")

Note that it's prefered to use other MMExtension API functions if available (e.g. SetTexts() or something) to access and modify strings.

User avatar
Templayer
Devil
Devil
Posts: 1322
Joined: 21 Jan 2013

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

Postby Templayer » Jan 1 2020, 17:27

tomchen1989 wrote:
Templayer wrote:
wuxiangjinxing wrote:
Hey, could you give some suggestions on how to write the ascii of a string into memory?

For example, I want to write the string "Angel A" to the memory at 0x4f7dfc, currently what I'm doing is:
u2[0x4f7dfc] = string.byte('A')
u2[0x4f7dfd] = string.byte('n')
u2[0x4f7dfe] = string.byte('g')
... and so on

This works fine but the script would be very long. Is there a better way to do it? Thanks.

...

Code: Select all

mem.copy(0x4f7dfc, "Angel A")

will do the job.
Check MMExtension's documentation
tomchen1989 wrote:You may also want to add a null character '\0' to the end of your string, in order to properly end your string. The code would become:

Code: Select all

mem.copy(0x4f7dfc, "Angel A\0")

Note that it's prefered to use other MMExtension API functions if available (e.g. SetTexts() or something) to access and modify strings.


I KNEW there would be something like that there already. If I only had looked a little bit deeper. Arrg. :D :D
On the other hand, I mentioned several times in my post that there might be either an easier solution or the same kind of a solution already done, so I covered my ar-se on that front. I need to learn LUA eventually. :D
MMMerge Tracker (= Info + Paint Tracker + Bug Tracker + Missing Features + Suggestions):
https://goo.gl/ui24Bz
Anybody can view or suggest edits.

My youtube retro channel: www.youtube.com/Templayer


Return to “Might and Magic”

Who is online

Users browsing this forum: No registered users and 8 guests