The Al`kabor Project (EQMac) - PoP 1/5

  • Guest, it's time once again for the massively important and exciting FoH Asshat Tournament!



    Go here and give us your nominations!
    Who's been the biggest Asshat in the last year? Give us your worst ones!

Kharza-kzad_sl

shitlord
1,080
0
I'm amazed you can deal with that without source. That was a huge pain in the ass in the dx9 days. Had to release all rendertargets and textures and reupload them all.
 

Secrets

ResetEra Staff Member
1,900
1,914
I'm amazed you can deal with that without source. That was a huge pain in the ass in the dx9 days. Had to release all rendertargets and textures and reupload them all.
It's almost the same as with working with source. Used this as a reference for a lack of DX8 libraries:
http://www.unknowncheats.me/forum/425262-post2.html

The issue was less of the reset failing but the code path it was taking was rendering even if the D3D8 call to IDirect3DDevice::Reset failed. In this case, it was reset/present failing with D3DERR_INVALIDCALL, which upon further investigation was just because the old eqgfx_dx8.dll was not passing windowed mode to the presentation params. Upon further investigation reset calls work if the device is available AND we passed the windowed mode flag. It was a multi-layer problem.
That would have worked to just call reset at the appropriate time, but then you have the issue of the client releasing textures etc as you mentioned. So what I did is called the 'resolution change' function used for restoring the 'old' resolution on a time on the game's main loop, NOP'd the check where it checks to see your resolution is the same as the old, NOP'd the deinit/reactivation of the UI in the call itself in eqgame.exe, and then called the function on the game's main thread after the HWND receives WM_ACTIVATE. This makes the device reset never called except when the reset is actually allowed via user input, and fixes the crash.

Code looks horrible but it's something like:
if(*(DWORD*)(0x007F97D0) != 0 && setResolution == false)
{
//if our displayobject exists, and we're in the main game loop
DWORD ptr = *(DWORD*)(0x007F97D0);

resx = *(DWORD*)(ptr + 0x7A28);
resy = *(DWORD*)(ptr + 0x7A2C);
bpp = *(DWORD*)(ptr + 0x7A20);
refresh = *(DWORD*)(ptr + 0x7A30);
setResolution = true;
}
else
{

//set the 'old resolution flags' in the client. In EQMac these are s_iSavedWidth, s_iSavedHeight, etc
*(DWORD*)0x005FE990 = resx;
*(DWORD*)0x005FE994 = resy;
*(DWORD*)0x005FE998 = bpp;
*(DWORD*)0x0063AE8C = refresh;
//call the function directly for restoring the old ui mode, on window activation
((int(__cdecl*)())0x0043BBE2)();
}
It also helps that the EQMac client has debugging symbols in it (the OSX Intel one), it helped with making this for sure.
 

yamikazo

Trakanon Raider
1,361
546
New EQMac Windows Hack Fix:

-The client no longer crashes on CTRL ALT DELETE or any action that causes a device reset (UAC popup)
-'Fixed position' eqw2.ini option. I can't remember why I made this, but it locks your screen size.
-Included Haynar's framerate limiter (eqgame.dll) in this package.

Download below:
https://www.sendspace.com/pro/dl/68rl23

Changing your screen resolution will NOT work under this mode. You will have to manually set it in eqclient.ini with the game off, this is part of the crash fix.
Is this a patch, or is this an entirely new client?

Or, can I use those files to copy/paste into my existing game that has my settings and such, or do I need to back those up and drop them into a new install?
 

Secrets

ResetEra Staff Member
1,900
1,914
Is this a patch, or is this an entirely new client?

Or, can I use those files to copy/paste into my existing game that has my settings and such, or do I need to back those up and drop them into a new install?
Just a patch. Place it over your existing install if you had one with my client.
 

Herv_sl

shitlord
114
2
I gave a 180MB logfile from Al'kabor to... Surron / Geom on the p99 forums... to give to Torven.

Hope they made it there, if not will link to the google drive location.

I have another log from my cleric about the same size if anyone is interested in it.
 

Torrid

Molten Core Raider
926
611
He sent it to me. Thanks for this.

I got logs from a bunch of users recently so I'm pretty happy with my logs situation now. (more is always better however) Only thing I'm really missing is a good Ring of Fire (Acrylia Caverns) log.
 

Secrets

ResetEra Staff Member
1,900
1,914
I gave a 180MB logfile from Al'kabor to... Surron / Geom on the p99 forums... to give to Torven.

Hope they made it there, if not will link to the google drive location.

I have another log from my cleric about the same size if anyone is interested in it.
You the real MVP
 

hodj

Vox Populi Jihadi
<Silver Donator>
31,672
18,377
Check the sig and pass the word around.

I'm sure there's several people in this part of the forum who don't venture out of it much.
 

Lenas

Trump's Staff
7,559
2,299
This server is meant to be a complete recreation of EQMac, Al`kabor, and supports both a PC client and the official Intel Mac client. This server has been going strong since late 2014.

VELIOUS RELEASE DATE -- SEPTEMBER 21, 2016

Links:

Boards
Account Creation (forum login req.)
Server Progress Tracker

Everything you need to start

Wiki
Al'Kabor Spell Data
Character Browser
AllaClone (server db search)
Alla'Kabor (original EQMac fan db)


What's this about?

This project started in or around 2010 as a PEQ project where developers from PEQ would log on the OSX server known as Al'Kabor, using a ppc client to record pathing, quests, and the likes for the zones that did not exist on the PC version of Everquest. In the spring of 2012, SOE announced the closures of many of their games including The Al'Kabor Server and Everquest Online Adventure. A hacked PC Client was used by other developers in EQEmu community and it was unknown by the players at that time. It was quickly leaked to the public assuming the server would be shutting down for good. At that time, a couple of PEQ developers along with a couple of others in the eqemu community wanted to find ways to preserve the server as it is since it was the only unique "Classic" server. The Server sunset was postponed due to players plea to keep it alive for another year before it shut down for good. It also gave us a chance to develop tools to collect and to find a proper codebase which then became a PEQMac Project. We decided to make it a project apart from the PEQ project to avoid confusion. So we decided to call it The Al`Kabor Project since it is more universal with using a pc client as well as the mac client.

Goals:

Our goal is to make it as close as it was on the official Al`Kabor Server with bug fixes as well that never made it to the Al'Kabor server. With the eqmac community help and all, we believe that goal can be achieved.

The Al`Kabor Project Team.

Please sign up and help out, the project needs a bigger population to help test out higher level content, find bugs, compete quests, etc etc. All of the necessary instructions can be found on the boards and wiki.
 
Last edited:

Torrid

Molten Core Raider
926
611
The Mac client is the real client used to play on Sony's defunct server. The PC client could be considered a hack job of sorts, but the complaints people have about that client are mostly because of its age and not because it's hacked together. Our PC client is pre-Direct X 9 and was current in the days when EQ took control of your machine and disallowed multi-tasking, so EQW or an EQW-like wrapper is required.

Secrets and Haynar have been working on custom DLL client improvements and had much success. Right now it's a pain in the ass to set up their custom DLLs since they're still working on them, but eventually a polished single click download will be made available somewhere. Mousewheel camera zoom-out will not be made available however. (try top down F9 view, it's really not bad)
 

Melvin

Blackwing Lair Raider
1,399
1,168
How stable is the PC client? How often can I expect to fall through the world, or get stuck on a Loading Please Wait... screen, or are there any other similar issues to be aware of before I get started?
 

pharmakos

soʞɐɯɹɐɥd
<Bronze Donator>
16,305
-2,234
Played a bit again recently, after not logging in for a year. Things are running really smoothly these days, didn't notice any of the issues that were there when the project first opened up.
 

Fifey

Trakanon Raider
2,898
962
How stable is the PC client? How often can I expect to fall through the world, or get stuck on a Loading Please Wait... screen, or are there any other similar issues to be aware of before I get started?
I started in this server back in like March and I've yet to experience a single client related issue.

Stoked for Velious coming out though, I'm so tired of Kunark.
 

Lenas

Trump's Staff
7,559
2,299
How stable is the PC client? How often can I expect to fall through the world, or get stuck on a Loading Please Wait... screen, or are there any other similar issues to be aware of before I get started?

This is probably the most stable and fastest loading emu server you can play on. Any crash issues are usually recent patch related on the server side and get handled pretty quickly. Actually they just had a contest to find a crash bug in sebilis and rewarded the group that crashed the zone so they could identify it through logs. Turns out it had to do with gravity flux.
 
Last edited: