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).

Moderator: Moderators

User avatar
Anubis
Demon
Demon
Posts: 318
Joined: 08 Sep 2011
Location: Canada

Porting a MM6 map over to MM7

Postby Anubis » Jun 2 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
Scout
Scout
Posts: 171
Joined: 12 Jan 2020

Re: Porting a MM6 map over to MM7

Postby cthscr » Jun 4 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 Jun 4 2020, 18:10, edited 1 time in total.

cthscr
Scout
Scout
Posts: 171
Joined: 12 Jan 2020

Re: Porting a MM6 map over to MM7

Postby cthscr » Jun 4 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: 1526
Joined: 29 Nov 2005

Re: Porting a MM6 map over to MM7

Postby GrayFace » Jun 18 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 Jun 18 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: No registered users and 8 guests