Porting a MM6 map over to MM7

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).
User avatar
Anubis
War Dancer
War Dancer
Posts: 371
Joined: 08 Sep 2011
Location: Canada

Porting a MM6 map over to MM7

Unread postby Anubis » 02 Jun 2020, 20:51

I've been wondering if anyone knows the answer to this.

I've been trying for the past few days to port a MM6 map (New Sorpigal) over to MM7 and completely replacing Emerald Isle. Is it possible and if so, how would I go about doing it? Specifically, what files would I need to change to do this. I keep crashing every time I try to start a new game.

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: Porting a MM6 map over to MM7

Unread postby cthscr » 04 Jun 2020, 18:01

GrayFace has done something in his MMExt repo recently. See also his comments in https://gitlab.com/templayer/mmmerge/-/issues/622.

Nevermind, it's about .blv.
Last edited by cthscr on 04 Jun 2020, 18:10, edited 1 time in total.

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: Porting a MM6 map over to MM7

Unread postby cthscr » 04 Jun 2020, 18:30

Well, a lot of *.txt files of Events.lod. Also you have to convert all the structures that have different size/fields in MM6 and MM7 (see Scripts/Structs/00 structs.lua, Scripts/Structs/01 common structs.lua). @Rodril knows better, but he never published his conversion tools AFAIK.

User avatar
GrayFace
Round Table Hero
Round Table Hero
Posts: 1660
Joined: 29 Nov 2005

Re: Porting a MM6 map over to MM7

Unread postby GrayFace » 18 Jun 2020, 11:02

Anubis wrote:
Do you want just one or potentially all of them?
Assuming you'll need more then one:
Get the latest MMExtension: https://github.com/GrayFace/MMExtension
Use it in both MM6 and MM7.
Run BatchSave() in MM6 console, copy "Batch" folder from MM6 home folder to MM7.
Run BatchLoad() in MM7.
Now you'll have ODM and DDM in MM7 format.
For BLV you'll first need to extract the maps, then run this in MM6:

Code: Select all

	for s in path.find(dirIn..'*.blv') do
		ReadRawBlv(s, AppPath..'Batch/'..path.setext(path.name(s), '.bdt'))
	end
(Set dirIn to the input folder where you extracted)
Then copy Batch folder to MM7 and run in MM7 console:

Code: Select all

	assert(BatchLoad)
	for s in path.find(AppPath..'Batch/*.bdt') do
		local t = internal.unpersist(io.load(s))
		ProcessBlv(t, s)
		WriteRawBlv(AppPath.."BatchCompiled/"..path.setext(path.name(s), '.blv'), t)
	end
If you want to change something, open the map from Batch folder with MMEditor in MM7 and change it that way.
Last edited by GrayFace on 18 Jun 2020, 11:13, edited 6 times in total.
My patches: MM6 MM7 MM8. MMExtension. Tools. Also, I love Knytt Stories and Knytt Underground. I'm also known as sergroj.


Return to “Might and Magic”

Who is online

Users browsing this forum: cthscr and 54 guests