1
Mods & Development / remake of Warcraft 1
« on: September 04, 2019, 09:57:07 PM »
saw this today: https://github.com/acoto87/war1
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Quote from: WhatWouldjessu001Dojust a non-toxic thread here guysQuote from: tupacYou're being petty and narrow-minded, maciek.Quote from: maciekYou have now been added also.Quote from: tupacso ask those people on your own forum???Quote from: tk[as]That's your opinion. Plenty of people play on my server. You made your choice months ago. You are in the shit list already and won't be removed.Quote from: tupacMost of the assholes here is blocked from my software.nobody joining ur server tupac...that's just the way it is. things will never be the same.
Some of us are actually interested in the long term success of this game. [...]
No one has done anything to you. What is your agenda? What's your plan/mission/purpose? [...]
You don't own W2. [...]
You want to kill W2. [...]
Then you used SSE2 just to make that converts 8->32bpp faster. And then you used d3d shaders to make it work faster, but on systems not supporting SSE2, right?
Rip DKdoesn't seem deceased from my quick google search...?
Both versions have the same bug.. alt+tab chat crashthe minimal version is doing basically nothing...
full is slower than minimalThat whole part of the full version should be ported to a d3d shader instead of trying to use SIMD
merge both projects: full and minimalThe full version changes color-depth the minimal version is a study of how DWM broke the game.
comments or questionsI'll answer questions...
15011370 6A 01 PUSH 1
15011372 FF15 68014900 CALL DWORD PTR DS:[490168] // Sleep in exe IAT
15011378 EB E3 JMP SHORT 1501135D
1501137A 90 NOP
1501137B 90 NOP
data[] = { 0x6A, 0x01, 0xFF, 0x15, 0x68, 0x01, 0x49, 0x00, 0xEB, 0xE3, 0x90, 0x90 };
GetPropA and Sleep is constant in all the systems, past and future. Can it be hardcoded as 3C?
Ordinal208 == storm208yeah, IDA just makes up a name for it because it is un-named...
why EBP-3C is address of Sleep?That is a typo, EBX is the pointer to GetPropA (not EBP)
void CpuSaver_Hook_Storm208( HANDLE hProcess ){
DWORD dwPrevProtect;
DWORD storm208_va;
DWORD offset = 0x15011370 - 0x150112E0;
BYTE data[] = { 0x89, 0xE8, 0x83, 0xE8, 0x3C, 0x6A, 0x01, 0xFF, 0xD0, 0xEB, 0xE2, 0x90 };
ReadProcessMemory( hProcess, (void*)0x004902C8, storm208_va, 4, 0 );
VirtualProtectEx( hProcess, storm208_va + offset, sizeof(data), PAGE_EXECUTE_READWRITE, &dwPrevProtect );
WriteProcessMemory( hProcess, storm208_va + offset, data, sizeof(data), 0 );
VirtualProtectEx( hProcess, storm208_va + offset, sizeof(data), dwPrevProtect, &dwPrevProtect );
}
/*
old:
1501135D 68 247D0315 PUSH OFFSET 15037D24 ; "SDlg_EndDialog"
15011362 56 PUSH ESI ; hWnd
15011363 FFD3 CALL EBX ; USER32.GetPropA
15011365 85C0 TEST EAX,EAX
15011367 75 13 JNZ SHORT 1501137C
15011369 8BCE MOV ECX,ESI
1501136B E8 40FAFFFF CALL 15010DB0
15011370 68 247D0315 PUSH OFFSET 15037D24 ; "SDlg_EndDialog"
15011375 56 PUSH ESI ; hWnd
15011376 FFD3 CALL EBX ; USER32.GetPropA
15011378 85C0 TEST EAX,EAX
1501137A 74 ED JZ SHORT 15011369
new:
...
15011370 89E8 MOV EAX,EBP // ptr to GetPropA
15011372 83E8 3C SUB EAX,3C // adjust to point at Sleep
15011375 6A 01 PUSH 1
15011377 FFD0 CALL EAX
15011379 EB E2 JMP SHORT 1501135D // loop to GetPropA
1501137B 90 NOP
*/
10001284 0019ED54 0001:00000284 C:\War2anti\ddraw.dllthe return address doesn't line up for the current version...?