buddhi1980 / mandelbulber2

Official repository for Mandelbulber v2
GNU General Public License v3.0
893 stars 116 forks source link

Investigate importing M3D parameters to Mandelbulber #630

Open mclarekin opened 5 years ago

mclarekin commented 5 years ago

Investigate feasibility of options for importing M3D parameters to MandelbulberV2,

One option is to try and import some or all of M3D formulas into MandelbulberV2 In respect to the fractal community there would be a lot of advantages, as there is a wealth of cool code that has been developed that is only accessible in M3D.

"hex code?" can be disassembled into assembly language. A few years ago I did figure out how to read the M3D formulas in assembly language, so in theory I could do it again.

I suspect that this would me a major project and interesting.

I contacted Luca mainly to get his OK, as the M3D formula code is to a large extent his work.

Offline DarkBeam Formula crazy engineer Global Moderator


Posts: 7 2 plus 2 is 4 minus 1 is 3 quick maffs View Profile Personal Message (Offline) Re: M3D parameters conversion to Mandelbulber « Sent to: mclarekin on: Yesterday at 10:54:01 AM » « You have forwarded or responded to this message. »

Hi, thanks for the message. For me it is OK - use the formulas as you like. Idk if there is a tool to convert them in some way. I doubt that. I have no time to spend on those things anymore. :) Have fun. Luca :thumbs:

mclarekin commented 5 years ago

A good thing is that M3D has only a few DE options and they are generally produce the same or similar as Mandelbulber, (except I think dIFS may have a different DE,, i know very little about dIFS).

mclarekin commented 5 years ago

Notes: disassemble https://defuse.ca/online-x86-assembler.htm?fbclid=IwAR0A8KBaHPtXsK8j-A1yISVVkZzvEdy0JfUfHcezj-hyDFmqOIJRKXNIb5E

558BEC5657538B75088B7E3089C383C670EB4E909090D1E874167304D9C0EB04 D9E8D9C9D8C8D1E873FADCC975F6DDD8C3DD00D9E1508B47CCD9C0E8D6FFFFFF 58DC4FC4D9C9DD47D8D8C0D8E1D8CADEC1D9E8DEC2DEF1F64007807902D9E0C3 90E8CBFFFFFF89D0E8C4FFFFFFDD01EB03909090837E60007F09FF4660DD47F0 DD5E58DD4658D9E8D9C1D9E1DEE1DC4FD0DEC1DD5E58DD47E0DC1F9BDFE0D0EC 7204D9E8EB5AD9C2D8C8D9C2D8C8DEC1D9C1D8C8DEC1D9E8DC47E0DC4FF8D9E8 DC67E0DC4FF8D9CAD8E1D9E49BDFE050D9E1D8F2D9C08B47C0D1E87304D9FAD1 D0E830FFFFFFDC4FB8D9E8D8C1D9CADEC1DEF158DECAD9C9D0EC7302D9E0DEC1 DD4658DEF1DD4108D8C9DD5908DCCBDCCADEC990D9C0D84F9CD9C2D84F98DEC1 D9C3D84F94DEC1D9C1D84FB4D9C3D84FB0DEC1D9C4D84FACDEC1D9CAD84FA8D9 CBD84FA4DEC3D9CBD84FA0DEC290DC46B8DD19DC46B0DD1ADC46A8DD1B89D85B 5F5E5DC20800

Disassembly: 0: 55 push rbp 1: 8b ec mov ebp,esp 3: 56 push rsi 4: 57 push rdi 5: 53 push rbx 6: 8b 75 08 mov esi,DWORD PTR [rbp+0x8] 9: 8b 7e 30 mov edi,DWORD PTR [rsi+0x30] c: 89 c3 mov ebx,eax e: 83 c6 70 add esi,0x70 11: eb 4e jmp 0x61 13: 90 nop 14: 90 nop 15: 90 nop 16: d1 e8 shr eax,1 18: 74 16 je 0x30 1a: 73 04 jae 0x20 1c: d9 c0 fld st(0) 1e: eb 04 jmp 0x24 20: d9 e8 fld1 22: d9 c9 fxch st(1) 24: d8 c8 fmul st,st(0) 26: d1 e8 shr eax,1 28: 73 fa jae 0x24 2a: dc c9 fmul st(1),st 2c: 75 f6 jne 0x24 2e: dd d8 fstp st(0) 30: c3 ret 31: dd 00 fld QWORD PTR [rax] 33: d9 e1 fabs 35: 50 push rax 36: 8b 47 cc mov eax,DWORD PTR [rdi-0x34] 39: d9 c0 fld st(0) 3b: e8 d6 ff ff ff call 0x16 40: 58 pop rax 41: dc 4f c4 fmul QWORD PTR [rdi-0x3c] 44: d9 c9 fxch st(1) 46: dd 47 d8 fld QWORD PTR [rdi-0x28] 49: d8 c0 fadd st,st(0) 4b: d8 e1 fsub st,st(1) 4d: d8 ca fmul st,st(2) 4f: de c1 faddp st(1),st 51: d9 e8 fld1 53: de c2 faddp st(2),st 55: de f1 fdivp st(1),st 57: f6 40 07 80 test BYTE PTR [rax+0x7],0x80 5b: 79 02 jns 0x5f 5d: d9 e0 fchs 5f: c3 ret 60: 90 nop 61: e8 cb ff ff ff call 0x31 66: 89 d0 mov eax,edx 68: e8 c4 ff ff ff call 0x31 6d: dd 01 fld QWORD PTR [rcx] 6f: eb 03 jmp 0x74 71: 90 nop 72: 90 nop 73: 90 nop 74: 83 7e 60 00 cmp DWORD PTR [rsi+0x60],0x0 78: 7f 09 jg 0x83 7a: ff 46 60 inc DWORD PTR [rsi+0x60] 7d: dd 47 f0 fld QWORD PTR [rdi-0x10] 80: dd 5e 58 fstp QWORD PTR [rsi+0x58] 83: dd 46 58 fld QWORD PTR [rsi+0x58] 86: d9 e8 fld1 88: d9 c1 fld st(1) 8a: d9 e1 fabs 8c: de e1 fsubp st(1),st 8e: dc 4f d0 fmul QWORD PTR [rdi-0x30] 91: de c1 faddp st(1),st 93: dd 5e 58 fstp QWORD PTR [rsi+0x58] 96: dd 47 e0 fld QWORD PTR [rdi-0x20] 99: dc 1f fcomp QWORD PTR [rdi] 9b: 9b df e0 fstsw ax 9e: d0 ec shr ah,1 a0: 72 04 jb 0xa6 a2: d9 e8 fld1 a4: eb 5a jmp 0x100 a6: d9 c2 fld st(2) a8: d8 c8 fmul st,st(0) aa: d9 c2 fld st(2) ac: d8 c8 fmul st,st(0) ae: de c1 faddp st(1),st b0: d9 c1 fld st(1) b2: d8 c8 fmul st,st(0) b4: de c1 faddp st(1),st b6: d9 e8 fld1 b8: dc 47 e0 fadd QWORD PTR [rdi-0x20] bb: dc 4f f8 fmul QWORD PTR [rdi-0x8] be: d9 e8 fld1 c0: dc 67 e0 fsub QWORD PTR [rdi-0x20] c3: dc 4f f8 fmul QWORD PTR [rdi-0x8] c6: d9 ca fxch st(2) c8: d8 e1 fsub st,st(1) ca: d9 e4 ftst cc: 9b df e0 fstsw ax cf: 50 push rax d0: d9 e1 fabs d2: d8 f2 fdiv st,st(2) d4: d9 c0 fld st(0) d6: 8b 47 c0 mov eax,DWORD PTR [rdi-0x40] d9: d1 e8 shr eax,1 db: 73 04 jae 0xe1 dd: d9 fa fsqrt df: d1 d0 rcl eax,1 e1: e8 30 ff ff ff call 0x16 e6: dc 4f b8 fmul QWORD PTR [rdi-0x48] e9: d9 e8 fld1 eb: d8 c1 fadd st,st(1) ed: d9 ca fxch st(2) ef: de c1 faddp st(1),st f1: de f1 fdivp st(1),st f3: 58 pop rax f4: de ca fmulp st(2),st f6: d9 c9 fxch st(1) f8: d0 ec shr ah,1 fa: 73 02 jae 0xfe fc: d9 e0 fchs fe: de c1 faddp st(1),st 100: dd 46 58 fld QWORD PTR [rsi+0x58] 103: de f1 fdivp st(1),st 105: dd 41 08 fld QWORD PTR [rcx+0x8] 108: d8 c9 fmul st,st(1) 10a: dd 59 08 fstp QWORD PTR [rcx+0x8] 10d: dc cb fmul st(3),st 10f: dc ca fmul st(2),st 111: de c9 fmulp st(1),st 113: 90 nop 114: d9 c0 fld st(0) 116: d8 4f 9c fmul DWORD PTR [rdi-0x64] 119: d9 c2 fld st(2) 11b: d8 4f 98 fmul DWORD PTR [rdi-0x68] 11e: de c1 faddp st(1),st 120: d9 c3 fld st(3) 122: d8 4f 94 fmul DWORD PTR [rdi-0x6c] 125: de c1 faddp st(1),st 127: d9 c1 fld st(1) 129: d8 4f b4 fmul DWORD PTR [rdi-0x4c] 12c: d9 c3 fld st(3) 12e: d8 4f b0 fmul DWORD PTR [rdi-0x50] 131: de c1 faddp st(1),st 133: d9 c4 fld st(4) 135: d8 4f ac fmul DWORD PTR [rdi-0x54] 138: de c1 faddp st(1),st 13a: d9 ca fxch st(2) 13c: d8 4f a8 fmul DWORD PTR [rdi-0x58] 13f: d9 cb fxch st(3) 141: d8 4f a4 fmul DWORD PTR [rdi-0x5c] 144: de c3 faddp st(3),st 146: d9 cb fxch st(3) 148: d8 4f a0 fmul DWORD PTR [rdi-0x60] 14b: de c2 faddp st(2),st 14d: 90 nop 14e: dc 46 b8 fadd QWORD PTR [rsi-0x48] 151: dd 19 fstp QWORD PTR [rcx] 153: dc 46 b0 fadd QWORD PTR [rsi-0x50] 156: dd 1a fstp QWORD PTR [rdx] 158: dc 46 a8 fadd QWORD PTR [rsi-0x58] 15b: dd 1b fstp QWORD PTR [rbx] 15d: 89 d8 mov eax,ebx 15f: 5b pop rbx 160: 5f pop rdi 161: 5e pop rsi 162: 5d pop rbp 163: c2 08 00 ret 0x8

taurus66 commented 5 years ago

Here's a manual parameter conversion, I did 2012 with help of Jesse and Luca. In M3d it is an alternative hybrid construction and the only way to convert the Mset of a Mandelbox with modified constant factor. It is focused on the fractal shape. Camera is approximated, colors and fx are ignored. Maybe it is helpful, to see how things work in M3d, as there are several properties offside the default settings are converted. The rotation angles are converted with Jesse's tool, that can be found as attachment here (a direct Link doesn't work): http://www.fractalforums.com/tutorials/rotboxes-mandelbulber-vs-abox-platinum/msg51114/#msg51114 Bulber V1 parameter:

Mandelbulber 1.21;
image_width 1024;
image_height 640;
view_point_x -2.0119019652455332;
view_point_y -2.0387970881895261;
view_point_z 1.778506923619823;
angle_alfa -72.696171497672808;
angle_beta -40;
angle_gamma -20;
zoom 0.0025000000000000001;
perspective 0.90000000000000002;
formula 8;
power 2;
N 255;
fractal_constant_factor 0.90000000000000002;
quality 2;
DE_factor 0.90000000000000002;
brightness 0.80000000000000004;
shadows_intensity 0.90000000000000002;
ambient_occlusion 2;
ambient_occlusion_quality 3;
glow_intensity 0.10000000000000001;
glow_color_1_R 65535;
glow_color_1_G 1935;
glow_color_1_B 0;
glow_color_2_R 64715;
glow_color_2_G 65535;
glow_color_2_B 0;
background_color_1_R 65535;
background_color_1_G 51968;
background_color_1_B 34596;
background_color_2_R 49582;
background_color_2_G 26523;
background_color_2_B 26523;
background_color_1_G 51968;
background_color_1_B 34596;
coloring_random_seed 23423;
coloring_speed 100;
coloring_palette_offset 145.69999999999999;
post_fog_visibility 5;
post_fog_color_R 65535;
post_fog_color_G 65535;
post_DOF_focus 22;
mandelbox_scale -1.1499999999999999;
mandelbox_folding_min_radius 0.40000000000000002;
mandelbox_rotation_main_alfa 13;
mandelbox_rotation_main_beta 5;
mandelbox_rotation_main_gamma 4;
mandelbox_color_Sp1 0.5;

and M3d:

Mandelbulb3Dv18{
g.....k....E0...S3...2U....hOSKQtJ4zzw7whbErEmzDjfVxf9o3..gwndqpZn2..bYlVJ5pmlzD
................................a0ISuPP9H02........Y./.................U4/2...wD
...Uz6/...kr..../Q.0/......1....KB....k9.....IUwC3Nay9gD/Q.........60dkpXm1.....
z.....kD1A../............................................wY0.....y1...sD...../..
.z1...sD4cGrJkrrLuvyg3d2pknfyEJT4Mx2GQfjNwEqKHLZku11UBusvADhyowIsPmg6DeDXdGW9ehM
qun2kWPveNfdySOq84q6pfejU....z1g/...9/........sD.6....PE2.G..kRcRphgK..kPOIzvWWH
..gZaM6FC25zzoAnAr1...sD....zw1.........................................a/...k1.
.....4iSoz1...........c7.2.U.g5.v....M2...UE....T2...24....0....D/...U1.....SN52
...U.SHKFuzlci6fmsrV/IWFf/6.2c..zzSi..UAZRBEi7yD6UNAT2kY6z9..........2E28.UQgk0.
.wUmc2beYz1.dA8E5Exwz0........../.V0.sXTL0..SQcDqMitzu/BQKxV62zD/.........E.2c..
zzzz............r0...................2./8.kzzzD............8....................
/EU0.wzzz1...................................wzz.0kzzzzzkA0U.yD.zzzz.gD8lIO5.wzz
z1EvXxDU.0kzzzzzNtrzz16.zzzzzzdTzzDU.wzzzzj2zxzz.0kzzzzzXxrzz16.zzzzznvTzzDU.wzz
zzTwzxzz.0kzzzzz...cU08czz/cU08cyz1cU08cxz3cU08c................................
E....AU.V2E.....I....6....kL/pKMuZaPb7oPs/UQ..........................k/4.......
..........UNaNaNaNawzeNaNaNaNaxD........kz1.....................................
................................................................................
.....................2.....3....1....wZIjFLMoJ4.................................
4MU/.................UzjiYSeSZ0E3NQMbQC1L.YHvM4RlyY/./..........................
................................................................................
................................/....E/...k.....T34NYB2.g34RZ/..................
................................BnAnAnAngzHnAnAnAnAvzoAnAnAnAnyD................
................................................................................
............................................}
{Titel: }

Good luck and have fun!

buddhi1980 commented 5 years ago

You should use x86 disassembly, because MB3D is 32-bit application Here is nice documentation for x86 assembler. It can help you to understand instructions https://en.wikibooks.org/wiki/X86_Assembly

0:  55                      push   ebp
1:  8b ec                   mov    ebp,esp
3:  56                      push   esi
4:  57                      push   edi
5:  53                      push   ebx
6:  8b 75 08                mov    esi,DWORD PTR [ebp+0x8]
9:  8b 7e 30                mov    edi,DWORD PTR [esi+0x30]
c:  89 c3                   mov    ebx,eax
e:  83 c6 70                add    esi,0x70
11: eb 4e                   jmp    0x61
13: 90                      nop
14: 90                      nop
15: 90                      nop
16: d1 e8                   shr    eax,1
18: 74 16                   je     0x30
1a: 73 04                   jae    0x20
1c: d9 c0                   fld    st(0)
1e: eb 04                   jmp    0x24
20: d9 e8                   fld1
22: d9 c9                   fxch   st(1)
24: d8 c8                   fmul   st,st(0)
26: d1 e8                   shr    eax,1
28: 73 fa                   jae    0x24
2a: dc c9                   fmul   st(1),st
2c: 75 f6                   jne    0x24
2e: dd d8                   fstp   st(0)
30: c3                      ret
31: dd 00                   fld    QWORD PTR [eax]
33: d9 e1                   fabs
35: 50                      push   eax
36: 8b 47 cc                mov    eax,DWORD PTR [edi-0x34]
39: d9 c0                   fld    st(0)
3b: e8 d6 ff ff ff          call   0x16
40: 58                      pop    eax
41: dc 4f c4                fmul   QWORD PTR [edi-0x3c]
44: d9 c9                   fxch   st(1)
46: dd 47 d8                fld    QWORD PTR [edi-0x28]
49: d8 c0                   fadd   st,st(0)
4b: d8 e1                   fsub   st,st(1)
4d: d8 ca                   fmul   st,st(2)
4f: de c1                   faddp  st(1),st
51: d9 e8                   fld1
53: de c2                   faddp  st(2),st
55: de f1                   fdivp  st(1),st
57: f6 40 07 80             test   BYTE PTR [eax+0x7],0x80
5b: 79 02                   jns    0x5f
5d: d9 e0                   fchs
5f: c3                      ret
60: 90                      nop
61: e8 cb ff ff ff          call   0x31
66: 89 d0                   mov    eax,edx
68: e8 c4 ff ff ff          call   0x31
6d: dd 01                   fld    QWORD PTR [ecx]
6f: eb 03                   jmp    0x74
71: 90                      nop
72: 90                      nop
73: 90                      nop
74: 83 7e 60 00             cmp    DWORD PTR [esi+0x60],0x0
78: 7f 09                   jg     0x83
7a: ff 46 60                inc    DWORD PTR [esi+0x60]
7d: dd 47 f0                fld    QWORD PTR [edi-0x10]
80: dd 5e 58                fstp   QWORD PTR [esi+0x58]
83: dd 46 58                fld    QWORD PTR [esi+0x58]
86: d9 e8                   fld1
88: d9 c1                   fld    st(1)
8a: d9 e1                   fabs
8c: de e1                   fsubp  st(1),st
8e: dc 4f d0                fmul   QWORD PTR [edi-0x30]
91: de c1                   faddp  st(1),st
93: dd 5e 58                fstp   QWORD PTR [esi+0x58]
96: dd 47 e0                fld    QWORD PTR [edi-0x20]
99: dc 1f                   fcomp  QWORD PTR [edi]
9b: 9b df e0                fstsw  ax
9e: d0 ec                   shr    ah,1
a0: 72 04                   jb     0xa6
a2: d9 e8                   fld1
a4: eb 5a                   jmp    0x100
a6: d9 c2                   fld    st(2)
a8: d8 c8                   fmul   st,st(0)
aa: d9 c2                   fld    st(2)
ac: d8 c8                   fmul   st,st(0)
ae: de c1                   faddp  st(1),st
b0: d9 c1                   fld    st(1)
b2: d8 c8                   fmul   st,st(0)
b4: de c1                   faddp  st(1),st
b6: d9 e8                   fld1
b8: dc 47 e0                fadd   QWORD PTR [edi-0x20]
bb: dc 4f f8                fmul   QWORD PTR [edi-0x8]
be: d9 e8                   fld1
c0: dc 67 e0                fsub   QWORD PTR [edi-0x20]
c3: dc 4f f8                fmul   QWORD PTR [edi-0x8]
c6: d9 ca                   fxch   st(2)
c8: d8 e1                   fsub   st,st(1)
ca: d9 e4                   ftst
cc: 9b df e0                fstsw  ax
cf: 50                      push   eax
d0: d9 e1                   fabs
d2: d8 f2                   fdiv   st,st(2)
d4: d9 c0                   fld    st(0)
d6: 8b 47 c0                mov    eax,DWORD PTR [edi-0x40]
d9: d1 e8                   shr    eax,1
db: 73 04                   jae    0xe1
dd: d9 fa                   fsqrt
df: d1 d0                   rcl    eax,1
e1: e8 30 ff ff ff          call   0x16
e6: dc 4f b8                fmul   QWORD PTR [edi-0x48]
e9: d9 e8                   fld1
eb: d8 c1                   fadd   st,st(1)
ed: d9 ca                   fxch   st(2)
ef: de c1                   faddp  st(1),st
f1: de f1                   fdivp  st(1),st
f3: 58                      pop    eax
f4: de ca                   fmulp  st(2),st
f6: d9 c9                   fxch   st(1)
f8: d0 ec                   shr    ah,1
fa: 73 02                   jae    0xfe
fc: d9 e0                   fchs
fe: de c1                   faddp  st(1),st
100:    dd 46 58                fld    QWORD PTR [esi+0x58]
103:    de f1                   fdivp  st(1),st
105:    dd 41 08                fld    QWORD PTR [ecx+0x8]
108:    d8 c9                   fmul   st,st(1)
10a:    dd 59 08                fstp   QWORD PTR [ecx+0x8]
10d:    dc cb                   fmul   st(3),st
10f:    dc ca                   fmul   st(2),st
111:    de c9                   fmulp  st(1),st
113:    90                      nop
114:    d9 c0                   fld    st(0)
116:    d8 4f 9c                fmul   DWORD PTR [edi-0x64]
119:    d9 c2                   fld    st(2)
11b:    d8 4f 98                fmul   DWORD PTR [edi-0x68]
11e:    de c1                   faddp  st(1),st
120:    d9 c3                   fld    st(3)
122:    d8 4f 94                fmul   DWORD PTR [edi-0x6c]
125:    de c1                   faddp  st(1),st
127:    d9 c1                   fld    st(1)
129:    d8 4f b4                fmul   DWORD PTR [edi-0x4c]
12c:    d9 c3                   fld    st(3)
12e:    d8 4f b0                fmul   DWORD PTR [edi-0x50]
131:    de c1                   faddp  st(1),st
133:    d9 c4                   fld    st(4)
135:    d8 4f ac                fmul   DWORD PTR [edi-0x54]
138:    de c1                   faddp  st(1),st
13a:    d9 ca                   fxch   st(2)
13c:    d8 4f a8                fmul   DWORD PTR [edi-0x58]
13f:    d9 cb                   fxch   st(3)
141:    d8 4f a4                fmul   DWORD PTR [edi-0x5c]
144:    de c3                   faddp  st(3),st
146:    d9 cb                   fxch   st(3)
148:    d8 4f a0                fmul   DWORD PTR [edi-0x60]
14b:    de c2                   faddp  st(2),st
14d:    90                      nop
14e:    dc 46 b8                fadd   QWORD PTR [esi-0x48]
151:    dd 19                   fstp   QWORD PTR [ecx]
153:    dc 46 b0                fadd   QWORD PTR [esi-0x50]
156:    dd 1a                   fstp   QWORD PTR [edx]
158:    dc 46 a8                fadd   QWORD PTR [esi-0x58]
15b:    dd 1b                   fstp   QWORD PTR [ebx]
15d:    89 d8                   mov    eax,ebx
15f:    5b                      pop    ebx
160:    5f                      pop    edi
161:    5e                      pop    esi
162:    5d                      pop    ebp
163:    c2 08 00                ret    0x8
mclarekin commented 5 years ago

thanks

On Sat, Mar 23, 2019 at 7:26 AM Krzysztof Marczak notifications@github.com wrote:

You should use x86 disassembly, because MB3D is 32-bit application Here is nice documentation for x86 assembler. It can help you to understand instructions https://en.wikibooks.org/wiki/X86_Assembly

0: 55 push ebp 1: 8b ec mov ebp,esp 3: 56 push esi 4: 57 push edi 5: 53 push ebx 6: 8b 75 08 mov esi,DWORD PTR [ebp+0x8] 9: 8b 7e 30 mov edi,DWORD PTR [esi+0x30] c: 89 c3 mov ebx,eax e: 83 c6 70 add esi,0x70 11: eb 4e jmp 0x61 13: 90 nop 14: 90 nop 15: 90 nop 16: d1 e8 shr eax,1 18: 74 16 je 0x30 1a: 73 04 jae 0x20 1c: d9 c0 fld st(0) 1e: eb 04 jmp 0x24 20: d9 e8 fld1 22: d9 c9 fxch st(1) 24: d8 c8 fmul st,st(0) 26: d1 e8 shr eax,1 28: 73 fa jae 0x24 2a: dc c9 fmul st(1),st 2c: 75 f6 jne 0x24 2e: dd d8 fstp st(0) 30: c3 ret 31: dd 00 fld QWORD PTR [eax] 33: d9 e1 fabs 35: 50 push eax 36: 8b 47 cc mov eax,DWORD PTR [edi-0x34] 39: d9 c0 fld st(0) 3b: e8 d6 ff ff ff call 0x16 40: 58 pop eax 41: dc 4f c4 fmul QWORD PTR [edi-0x3c] 44: d9 c9 fxch st(1) 46: dd 47 d8 fld QWORD PTR [edi-0x28] 49: d8 c0 fadd st,st(0) 4b: d8 e1 fsub st,st(1) 4d: d8 ca fmul st,st(2) 4f: de c1 faddp st(1),st 51: d9 e8 fld1 53: de c2 faddp st(2),st 55: de f1 fdivp st(1),st 57: f6 40 07 80 test BYTE PTR [eax+0x7],0x80 5b: 79 02 jns 0x5f 5d: d9 e0 fchs 5f: c3 ret 60: 90 nop 61: e8 cb ff ff ff call 0x31 66: 89 d0 mov eax,edx 68: e8 c4 ff ff ff call 0x31 6d: dd 01 fld QWORD PTR [ecx] 6f: eb 03 jmp 0x74 71: 90 nop 72: 90 nop 73: 90 nop 74: 83 7e 60 00 cmp DWORD PTR [esi+0x60],0x0 78: 7f 09 jg 0x83 7a: ff 46 60 inc DWORD PTR [esi+0x60] 7d: dd 47 f0 fld QWORD PTR [edi-0x10] 80: dd 5e 58 fstp QWORD PTR [esi+0x58] 83: dd 46 58 fld QWORD PTR [esi+0x58] 86: d9 e8 fld1 88: d9 c1 fld st(1) 8a: d9 e1 fabs 8c: de e1 fsubp st(1),st 8e: dc 4f d0 fmul QWORD PTR [edi-0x30] 91: de c1 faddp st(1),st 93: dd 5e 58 fstp QWORD PTR [esi+0x58] 96: dd 47 e0 fld QWORD PTR [edi-0x20] 99: dc 1f fcomp QWORD PTR [edi] 9b: 9b df e0 fstsw ax 9e: d0 ec shr ah,1 a0: 72 04 jb 0xa6 a2: d9 e8 fld1 a4: eb 5a jmp 0x100 a6: d9 c2 fld st(2) a8: d8 c8 fmul st,st(0) aa: d9 c2 fld st(2) ac: d8 c8 fmul st,st(0) ae: de c1 faddp st(1),st b0: d9 c1 fld st(1) b2: d8 c8 fmul st,st(0) b4: de c1 faddp st(1),st b6: d9 e8 fld1 b8: dc 47 e0 fadd QWORD PTR [edi-0x20] bb: dc 4f f8 fmul QWORD PTR [edi-0x8] be: d9 e8 fld1 c0: dc 67 e0 fsub QWORD PTR [edi-0x20] c3: dc 4f f8 fmul QWORD PTR [edi-0x8] c6: d9 ca fxch st(2) c8: d8 e1 fsub st,st(1) ca: d9 e4 ftst cc: 9b df e0 fstsw ax cf: 50 push eax d0: d9 e1 fabs d2: d8 f2 fdiv st,st(2) d4: d9 c0 fld st(0) d6: 8b 47 c0 mov eax,DWORD PTR [edi-0x40] d9: d1 e8 shr eax,1 db: 73 04 jae 0xe1 dd: d9 fa fsqrt df: d1 d0 rcl eax,1 e1: e8 30 ff ff ff call 0x16 e6: dc 4f b8 fmul QWORD PTR [edi-0x48] e9: d9 e8 fld1 eb: d8 c1 fadd st,st(1) ed: d9 ca fxch st(2) ef: de c1 faddp st(1),st f1: de f1 fdivp st(1),st f3: 58 pop eax f4: de ca fmulp st(2),st f6: d9 c9 fxch st(1) f8: d0 ec shr ah,1 fa: 73 02 jae 0xfe fc: d9 e0 fchs fe: de c1 faddp st(1),st 100: dd 46 58 fld QWORD PTR [esi+0x58] 103: de f1 fdivp st(1),st 105: dd 41 08 fld QWORD PTR [ecx+0x8] 108: d8 c9 fmul st,st(1) 10a: dd 59 08 fstp QWORD PTR [ecx+0x8] 10d: dc cb fmul st(3),st 10f: dc ca fmul st(2),st 111: de c9 fmulp st(1),st 113: 90 nop 114: d9 c0 fld st(0) 116: d8 4f 9c fmul DWORD PTR [edi-0x64] 119: d9 c2 fld st(2) 11b: d8 4f 98 fmul DWORD PTR [edi-0x68] 11e: de c1 faddp st(1),st 120: d9 c3 fld st(3) 122: d8 4f 94 fmul DWORD PTR [edi-0x6c] 125: de c1 faddp st(1),st 127: d9 c1 fld st(1) 129: d8 4f b4 fmul DWORD PTR [edi-0x4c] 12c: d9 c3 fld st(3) 12e: d8 4f b0 fmul DWORD PTR [edi-0x50] 131: de c1 faddp st(1),st 133: d9 c4 fld st(4) 135: d8 4f ac fmul DWORD PTR [edi-0x54] 138: de c1 faddp st(1),st 13a: d9 ca fxch st(2) 13c: d8 4f a8 fmul DWORD PTR [edi-0x58] 13f: d9 cb fxch st(3) 141: d8 4f a4 fmul DWORD PTR [edi-0x5c] 144: de c3 faddp st(3),st 146: d9 cb fxch st(3) 148: d8 4f a0 fmul DWORD PTR [edi-0x60] 14b: de c2 faddp st(2),st 14d: 90 nop 14e: dc 46 b8 fadd QWORD PTR [esi-0x48] 151: dd 19 fstp QWORD PTR [ecx] 153: dc 46 b0 fadd QWORD PTR [esi-0x50] 156: dd 1a fstp QWORD PTR [edx] 158: dc 46 a8 fadd QWORD PTR [esi-0x58] 15b: dd 1b fstp QWORD PTR [ebx] 15d: 89 d8 mov eax,ebx 15f: 5b pop ebx 160: 5f pop edi 161: 5e pop esi 162: 5d pop ebp 163: c2 08 00 ret 0x8

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/buddhi1980/mandelbulber2/issues/630#issuecomment-475731084, or mute the thread https://github.com/notifications/unsubscribe-auth/AMLZHIelKnSeHHxVisGupKV304WXRu1qks5vZSBwgaJpZM4cApRk .

adrianmeyerart commented 5 years ago

This feature would be mindblowing guys (-; Spend a lot of time trying to manually bring stuff from M3D to Mandelbulber.

mclarekin commented 5 years ago

I have only had a proof of concept look at this subject. My main goal is too bring over formulas from M3D, such that they work identically to M3D, with the same parameter names. Any actual conversion of M3D parameter files into mandelbulber.fract would probably be limited in functionality. If I ever further this subject it will be in the distant future. It involves disassembling assembly language and will be a challenge for me. Both Krrzysztof and myself have long TODO lists and limited available time.

On Mon, May 6, 2019 at 8:38 PM MeyerAdrian notifications@github.com wrote:

This feature would be mindblowing guys (-; Spend a lot of time trying to manually bring stuff from M3D to Mandelbulber.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/buddhi1980/mandelbulber2/issues/630#issuecomment-489548151, or mute the thread https://github.com/notifications/unsubscribe-auth/ADBNSHA3QL6M46MXTAK42LLPT7VBZANCNFSM4HACSRSA .

adrianmeyerart commented 5 years ago

Oh sure, I totally belief that this would be quit hard and is a bigger thing. Just wanted to say that its a great idea and that there's probably a lot of people who would love it (-;

mclarekin commented 5 years ago

dIFS https://www.deviantart.com/ugnvs/art/DIFS-Shape-Quick-Reference-598433533

adrianmeyerart commented 5 years ago

Looks interesting! But for now only usefull for Mandelbulb3D users right?

Right now facing the problem that I want to bring some hybrid fractals from Mandelbulb3D to Mandelbulber. But there is so many formulas missing /-:

Will give it a quick go to try and bring the formulas I need dto Mandelbulber, but I fear this is quite a thing...

adrianmeyerart commented 5 years ago

Oh shit, just realised that in Mandelbulber formulas look like this :-P Except the JIT Formulas, but their very limited.

.Version = 2 .DEoption = -1 .SIpower = 2 [CONSTANTS] Double = 0.816496580927726 Double = 0.5773502691896258 Double = 0.7071067811865475 [CODE] 558BEC81EC300000005356578B75088B7E308BD8D9D0DD03DC0FDD01DC4F08D9 E0DEC1DC4F10DD5DF8DD02DC4F10DD1A90DD03DC4F08DD01DC0FDEC1DD1990DD45F8 DC22DD1B90DD45F8DC02DD1A90D9D08BC35F5E5B89EC5DC20800 [END]

Guess thats out of my reach then /-:

mclarekin commented 5 years ago

@MeyerAdrian Yep the dIFS link was just a reference for me. I only have one dIFS working at the moment, but that success means we can do more.

zebastian commented 5 years ago

@MeyerAdrian Krzysztof and the team is working on decompiling / transpiling these blocks:

[CODE]
558BEC81EC300000005356578B75088B7E308BD8D9D0DD03DC0FDD01DC4F08D9
E0DEC1DC4F10DD5DF8DD02DC4F10DD1A90DD03DC4F08DD01DC0FDEC1DD1990DD45F8
DC22DD1B90DD45F8DC02DD1A90D9D08BC35F5E5B89EC5DC20800
[END]

to mandelbulber. Though we dont know for sure, when or if this will be available in the future...

adrianmeyerart commented 5 years ago

Sounds awsome. And like a lot of tedious detective work :-P Open source WTF. So unnecessary such Cryptic stuff...

buddhi1980 commented 5 years ago

@MeyerAdrian it is not cryptography. This is just binary code of procesor instructions to execute. Source files for fractal formulas are missing.