• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Need help with ObjectMerger on Linux

Status
Not open for further replies.
Level 8
Joined
Jan 23, 2015
Messages
121
Well, since wine can't run the JNGP of any version I've tried (5d and 209) I had to take the JassHelper out of it and make a simple script compiling my entire project, using some tips Vex provided here; but when it came to usage of external module of Object Merger I struck at having a fault I can't solve.

So, JassHelper has paths to Object and Constant mergers configured, they're placed in one folder with lua5.1.dll and the JH itself. The script lies in parallel folder, and does: seek out the JH folder, cd into project folder containing map.w3x, war3map.j and main.j (a file that includes everything else I need) and runs JH with all the parameters needed.
The compilation worked perfectly until I included file with some object or constant merger commands, when it dumps with this:
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x00000000).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:00000000 ESP:0068fcfc EBP:0068fde8 EFLAGS:00010206( R- -- I - -P- )
EAX:00000000 EBX:00004000 ECX:0068fcf0 EDX:00000000
ESI:7ffdf000 EDI:00485350
Stack dump:
0x0068fcfc: 004090e0 00111c44 7ebd50fc 00112208
0x0068fd0c: 00409059 0068fd30 7ebd5000 0068fd58
0x0068fd1c: 7eb6955f 7ebde240 7bcd9000 7eb46829
0x0068fd2c: 00000010 7ebde240 0068fd48 00009140
0x0068fd3c: 7ebde23c 00110060 7eb69586 0068fd70
0x0068fd4c: 0068fd70 7ebd5000 00000000 0068fd98
Backtrace:
=>0 0x00000000 (0x0068fde8)
1 0x004011e7 in objectmerger (+0x11e6) (0x0068fe20)
2 0x00401238 in objectmerger (+0x1237) (0x0068fe30)
3 0x7b4605fc call_process_entry+0xb() in kernel32 (0x0068fe48)
4 0x7b461644 in kernel32 (+0x51643) (0x0068fe88)
5 0x7bc8070c call_thread_func_wrapper+0xb() in ntdll (0x0068fea8)
6 0x7bc836dd call_thread_func+0xfc() in ntdll (0x0068ffa8)
7 0x7bc806ea RtlRaiseException+0x21() in ntdll (0x0068ffc8)
8 0x7bc528c3 call_dll_entry_point+0x3d2() in ntdll (0x0068ffe8)
9 0xf757cb7d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
10 0xf757cce0 wine_switch_to_stack+0x1f() in libwine.so.1 (0xffa50258)
11 0x7bc588ce LdrInitializeThunk+0x24d() in ntdll (0xffa502a8)
12 0x7b46777a __wine_kernel_init+0xa69() in kernel32 (0xffa51418)
13 0x7bc597a3 __wine_process_init+0x152() in ntdll (0xffa51488)
14 0xf757ad37 wine_init+0x2c6() in libwine.so.1 (0xffa514e8)
15 0x7c000ac2 main+0x81() in <wine-loader> (0xffa51938)
16 0xf7392637 __libc_start_main+0xf6() in libc.so.6 (0x00000000)
0x00000000: -- no code accessible --
Modules:
Module Address Debug info Name (21 modules)
PE 350000- 383000 Deferred sfmpq
PE 400000- 487000 Export objectmerger
PE 10000000-1001f000 Deferred lua5.1
ELF 7b400000-7b7e0000 Dwarf kernel32<elf>
\-PE 7b410000-7b7e0000 \ kernel32
ELF 7bc00000-7bcf6000 Dwarf ntdll<elf>
\-PE 7bc10000-7bcf6000 \ ntdll
ELF 7c000000-7c004000 Dwarf <wine-loader>
ELF 7eb1d000-7ebdf000 Deferred msvcrt<elf>
\-PE 7eb30000-7ebdf000 \ msvcrt
ELF 7ec0e000-7ec21000 Deferred libnss_files.so.2
ELF 7ec21000-7ec2e000 Deferred libnss_nis.so.2
ELF 7ec2e000-7ec49000 Deferred libnsl.so.1
ELF 7ec49000-7ec53000 Deferred libnss_compat.so.2
ELF 7ef85000-7efda000 Deferred libm.so.6
ELF f7375000-f737a000 Deferred libdl.so.2
ELF f737a000-f7530000 Dwarf libc.so.6
ELF f7531000-f754e000 Deferred libpthread.so.0
ELF f7574000-f772b000 Dwarf libwine.so.1
ELF f772d000-f7752000 Deferred ld-linux.so.2
ELF f7754000-f7755000 Deferred [vdso].so
Threads:
process tid prio (all id:s are in hex)
00000008 jasshelper.exe
00000009 0
0000000e services.exe
00000029 0
00000028 0
0000001f 0
00000010 0
0000000f 0
00000014 explorer.exe
0000002f 0
0000002e 0
0000002d 0
0000002c 0
00000015 0
0000001d winedevice.exe
00000027 0
00000022 0
00000021 0
0000001e 0
00000025 plugplay.exe
0000002b 0
0000002a 0
00000026 0
0000003c (D) Z:\home\arthurii\[WC3]\JassHelper\ObjectMerger.exe
0000003d 0 <==
0000003e wineconsole.exe
0000003f 0
System information:
Wine build: wine-2.0.1
Platform: i386
Version: Windows Server 2003
Host system: Linux
Host version: 4.4.0-53-generic
While in the terminal I have next output.
fixme:process:SetProcessDEPPolicy (1): stub
fixme:wer:WerSetFlags (2) stub!
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
wine: Unhandled page fault on read access to 0x00000000 at address (nil) (thread 003d), starting debugger...

I remember the same script worked flawless while I still was on Windows, so it should work here too, if OM would work too...
Vex mentioned he "was able to run object merger, but only the newest version that is found in the newest newgen", but I don't know what I'm doing wrong to be able to do same.
 
Level 8
Joined
Jan 23, 2015
Messages
121
Well ok, I almost got it to work, ConstantMerger worked for me, but ObjectMerger failed to find Warcraft 3 mpqs. Path in wine's registry is correct, so it should be the problem of access to that mpqs, which I have no idea about.
 
Level 8
Joined
Jan 23, 2015
Messages
121
Ok, after some experimenting with JNGP under winXP on virtualbox I finally found out where grimext searches for wc3 mpqs.
The path is: HKEY_CURRENT_USER/Software/Grimoire with string field named War3InstallPath where wined path to wc3 should be placed.
Everything seems to be OK now.
 
Status
Not open for further replies.
Top