I did a lot of testing today and found some info, but still have been unable to get new widgets to display properly.
first id of build queue
Code: Select all
004F9154 8D 85 28 02 00 00 lea eax, [ebp+228h]
I also think this this loops though all widget on selected table. so I really don't understand why it skips new widgets.
Code: Select all
0053E595 89 F8 mov eax, edi
0053E597 8B 59 04 mov ebx, [ecx+4] ; instanceId
0053E59A 8B 11 mov edx, [ecx] ; typeId
0053E59C E8 1F FF FF FF call WDFRead_LoadWidget
0053E5A1 85 C0 test eax, eax
0053E5A3 74 15 jz short loc_53E5BA
0053E5A5 8B 14 24 mov edx, [esp+4+var_4]
0053E5A8 03 51 08 add edx, [ecx+8]
0053E5AB 83 C1 0C add ecx, 0Ch
0053E5AE 46 inc esi
0053E5AF 89 02 mov [edx], eax
0053E5B1 39 EE cmp esi, ebp
0053E5B3 7C E0 jl short loc_53E595
My thought this is reading widget id's and not from table?
Code: Select all
4FDE6D 83 C1 04 add ecx, 4
so now I have moved the "labor" table to allow me to expand the *solar table without moving it.
I am thinking the cmp or what ever is hidden in some place that i have not looked yet.
I wanted to get my current progress documented.
My tests platform is Vanilla 1024 from all in one installer with the relocation code data and code installed
If you install You must fill area 0x0019f400 - 0x01b23ff with 00's before patching.
here is the edited wdf *solar.wdf files with 8 total build queue widgets here is my current patch file for changes (each change is labeled)
Note; this is not a functioning patch.
Note; All value below are vanilla values and locations, due to increase of 1 -> 4 bytes to prevent value going negative many locations changed.
6C -> CC change locations
Code: Select all
00437F49 0x37349 83 C0 6C add eax, 6Ch
004378BD 0x36cbd B9 6C 00 00 00 mov ecx, 6Ch
004378DB 0x36cdb 83 C0 6C add eax, 6Ch
004378DE 0x36cde 83 C5 6C add ebp, 6Ch
00437BFB 0x36ffb B9 6C 00 00 00 mov ecx, 6Ch
00437C18 0x37018 83 C3 6C add ebx, 6Ch
0044D51F 0x4c91f B9 6C 00 00 00 mov ecx, 6Ch
0044D537 0x4c937 83 E9 6C sub ecx, 6Ch
0044D53A 0x4c93a 83 C5 6C add ebp, 6Ch
0044D6DB 0x4cadb B9 6C 00 00 00 mov ecx, 6Ch
0044DD34 0x4d134 B8 6C 00 00 00 mov eax, 6Ch
0044DD39 0x4d139 BB 6C 00 00 00 mov ebx, 6Ch
Code: Select all
0044D04B 0x4c44b 83 C7 60 add edi, 60h
0044D37D 0x4c77d 89 43 60 mov [ebx+60h], eax
0044D382 0x4c782 8D 53 60 lea edx, [ebx+60h]
0044D7DC 0x4cbdc C7 42 60 00 00 00 00 mov [dword ptr edx+60h], 0
0044D7EC 0x4cbec 83 C2 60 add edx, 60h
0044D84B 0x4cc4b 8B 53 60 mov edx, [ebx+60h]
0044D870 0x4cc70 C7 43 60 01 00 00 00 mov [dword ptr ebx+60h], 1
0044D8D5 0x4ccd5 8B 53 60 mov edx, [ebx+60h]
0044D905 0x4cd05 FF 43 60 inc [dword ptr ebx+60h]
0044DA06 0x4ce06 83 7E 60 00 cmp [dword ptr esi+60h], 0
0044DA10 0x4ce10 3B 4E 60 cmp ecx, [esi+60h]
0044DA38 0x4ce38 8B 7E 60 mov edi, [esi+60h]
0044DB1D 0x4cf1d FF 4E 60 dec [dword ptr esi+60h]
0044DA71 0x4ce71 8B 56 60 mov edx, [esi+60h]
0044DA86 0x4ce86 8B 46 60 mov eax, [esi+60h]
0044DA9C 0x4ce9c FF 4E 60 dec [dword ptr esi+60h]
0044DB5A 0x4cf5a 8B 42 60 mov eax, [edx+60h]
0044DB88 0x4cf88 83 79 60 00 cmp [dword ptr ecx+60h], 0
0044DB98 0x4cf98 8B 71 60 mov esi, [ecx+60h]
0044DC12 0x4d012 FF 49 60 dec [dword ptr ecx+60h]
0044DBC0 0x4cfc0 8B 41 60 mov eax, [ecx+60h]
0044DBD7 0x4cfd7 8B 41 60 mov eax, [ecx+60h]
0044DBED 0x4cfed FF 49 60 dec [dword ptr ecx+60h]
0044DC4C 0x4d04c 83 7A 60 04 cmp [dword ptr edx+60h], 4
0044DC85 0x4d085 83 78 60 00 cmp [dword ptr eax+60h], 0
0044DD4E 0x4d14e C7 41 60 00 00 00 00 mov [dword ptr ecx+60h], 0
0044DD65 0x4d165 8D 51 60 lea edx, [ecx+60h]
Code: Select all
0044D376 0x4c776 C7 43 64 01 00 00 00 mov [dword ptr ebx+64h], 1
0044D7E5 0x4cbe5 C7 42 64 01 00 00 00 mov [dword ptr edx+64h], 1
0044D87C 0x4cc7c C7 43 64 01 00 00 00 mov [dword ptr ebx+64h], 1
0044D8BB 0x4ccbb C7 43 64 01 00 00 00 mov [dword ptr ebx+64h], 1
0044D90D 0x4cd0d C7 43 64 01 00 00 00 mov [dword ptr ebx+64h], 1
0044DA9F 0x4ce9f C7 46 64 01 00 00 00 mov [dword ptr esi+64h], 1
0044DB20 0x4cf20 C7 46 64 01 00 00 00 mov [dword ptr esi+64h], 1
0044DB33 0x4cf33 C7 46 64 01 00 00 00 mov [dword ptr esi+64h], 1
0044DBF1 0x4cff1 C7 41 64 01 00 00 00 mov [dword ptr ecx+64h], 1
0044DC16 0x4d016 C7 41 64 01 00 00 00 mov [dword ptr ecx+64h], 1
0044DD55 0x4d155 C7 41 64 01 00 00 00 mov [dword ptr ecx+64h], 1
Code: Select all
0044D005 0x4c405 8B 40 68 mov eax, [eax+68h]
0044D025 0x4c425 89 50 68 mov [eax+68h], edx
0044DB9B 0x4cf9b C7 41 68 00 00 00 00 mov [dword ptr ecx+68h], 0
0044DD5E 0x4d15e C7 41 68 00 00 00 00 mov [dword ptr ecx+68h], 0
Code: Select all
004FDF5F 0xfd35f 83 F9 04 cmp ecx, 4
0044DC4C 0x4d04c 83 7A 60 04 cmp [dword ptr edx+60h], 4 limit production is full
0044D9C7 0x4cdc7 83 F9 04 cmp ecx, 4 PRODUCTION_QUEUE_MAXSIZE
Code: Select all
#*solar.wdf total widgets
>> 0x000f01e7 22
#*solar.wdf total widgets
>> 0x000f01fe 22
#offset for moved table 5960F4 -> 68a320
>> 0x000f0203 44 5f 59
#*solar.wdf total widgets
>> 0x000f7ad3 22
#offset for moved table 5960F4 -> 68a320
>> 0x000f7b1c 44 5f 59
#memory increase *solar.wdf
>> 0x000f7eac 78
#*solar.wdf total widgets
>> 0x000f7ff2 22
#offset for moved table 5960F4 -> 68a320
>> 0x000f8237 44 5f 59
#memory increase 4F9C30
>> 0x000f9039 2c
#memory increase 4FD610
>> 0x000fca20 3c
#memory increase 4FDF10
>> 0x000fd31c 34