public static void Configure()
{
AddMapDefinition(0, 0, new Point2D(10000, 10000), new Point2D(0, 0)); //felucca // changed for Shattered Map
AddMapDefinition(1, 1, new Point2D(7168, 4096), new Point2D(5120, 4096)); //trammel
AddMapDefinition(2, 2, new Point2D(2304, 1600), new Point2D(2304, 1600)); //Ilshenar
AddMapDefinition(3, 3, new Point2D(2560, 2048), new Point2D(2560, 2048)); //Malas
AddMapDefinition(4, 4, new Point2D(1448, 1448), new Point2D(1448, 1448)); //Tokuno
AddMapDefinition(5, 5, new Point2D(1280, 4096), new Point2D(1280, 4096)); //TerMur
//those are sample maps that use same original map...
//AddMapDefinition(32, 0, new Point2D(7168, 4096), new Point2D(5120, 4096));
//AddMapDefinition(33, 0, new Point2D(7168, 4096), new Point2D(5120, 4096));
//AddMapDefinition(34, 1, new Point2D(7168, 4096), new Point2D(5120, 4096));
EventSink.ServerList += new ServerListEventHandler(EventSink_OnServerList);
EventSink.Login += new LoginEventHandler(EventSink_Login);
}
bool UltimaLiveUpdateMapDefinitionsHandler::handlePacket(uint8_t* pPacketData)
{
std::vector<MapDefinition> definitions;
uint32_t count = ntohl(*reinterpret_cast<uint32_t*>(&pPacketData[7]));
int newNumMaps = (count * 7) / 9;
for (int i = 0; i < newNumMaps; i++)
{
int offset = 15 + (i * 9);
uint8_t mapNumber = (uint8_t)pPacketData[offset]; //iteration byte 000 - map file index number
uint16_t width = ntohs(*reinterpret_cast<uint16_t*>(&pPacketData[offset + 1])); //iteration byte 001 to 002 - map width
uint16_t height = ntohs(*reinterpret_cast<uint16_t*>(&pPacketData[offset + 3])); //iteration byte 003 to 004 - map height
uint16_t wrapX = ntohs(*reinterpret_cast<uint16_t*>(&pPacketData[offset + 5])); //iteration byte 005 to 006 - wrap around dimension X
uint16_t wrapY = ntohs(*reinterpret_cast<uint16_t*>(&pPacketData[offset + 7])); //iteration byte 007 to 008 - wrap around dimension Y
if ((width > 0) && (height > 0) && (wrapX > 0) && (wrapY > 0))
{
MapDefinition def;
def.mapNumber = mapNumber;
def.mapWidthInTiles = width;
def.mapHeightInTiles = height;
def.mapWrapWidthInTiles = wrapX;
def.mapWrapHeightInTiles = wrapY;
definitions.push_back(def);
}
else
{
Logger::g_pLogger->LogPrint("Received bad definition for map %i\n", i);
}
}
m_pManager->onMapDefinitionUpdate(definitions);
return false;
}
AddMapDefinition(0, 0, new Point2D(10000, 10000), new Point2D(0, 0)); //felucca // changed for Shattered Map
AddMapDefinition(0, 0, new Point2D(10000, 10000), new Point2D(10000, 10000)); //felucca // changed for Shattered Map
(((((((((((((Initializing Shard Maps)))))))))))))))))
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map0.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map1.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map2.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map3.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map4.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map5.mul
File exists and is ok
Loading Map: C:\ProgramData\UltimaLive\TheShatteredEmpire\map0.mul
CLIENT HAS CRASHED! Crash Report:
0018dcb0 | f4 82 01 07 00 0f 01 00 00 00 00 00 00 4d 65 72 | .............Me
r |
0018dcc0 | 69 63 00 d1 6d 7c dc 18 00 fd 00 00 00 05 00 00 | ic..m|.........
. |
0018dcd0 | 00 0f 00 00 00 00 00 00 00 e0 46 fc 6d 4d 65 72 | ..........F.mMe
r |
0018dce0 | 69 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ic.............
. |
0018dcf0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 31 39 32 | .............19
2 |
0018dd00 | 2e 31 36 38 2e 32 2e 39 00 00 00 00 00 00 00 76 | .168.2.9.......
v |
0018dd10 | c0 00 00 05 69 67 72 70 69 6e 67 2e 64 6c 6c 00 | ....igrping.dll
. |
0018dd20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd30 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd70 | 00 00 00 00 00 00 00 00 43 52 41 53 48 00 00 00 | ........CRASH..
. |
0018dd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dd90 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018dda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018ddb0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018ddc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018ddd0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 13 f9 e2 | ...............
. |
0018dde0 | ac 14 5e dc 18 59 5e dd 1d 1e 5e dd 08 37 5e dc | ..^..Y^...^..7^
. |
0018ddf0 | f9 cc 5e df bd 1b 5e df d0 32 5e e0 a1 8c 5e e0 | ..^...^..2^...^
. |
0018de00 | 9d b5 5e e0 95 3b 5e e0 8d 6c 5e e0 84 b5 5e e0 | ..^..;^..l^...^
. |
0018de10 | 73 df 5e e0 3b 02 5e e1 1b 4a 5e e0 f0 e0 5e e0 | s.^.;.^..J^...^
. |
0018de20 | b2 74 5e e0 d5 4f 5e e0 d1 ec 5e db 9c 0c 00 46 | .t^..O^...^....
F |
0018de30 | 41 2a | A*
|
Yes it is, however all mentions of map definitions have been updated to reflect the custom size (MapRegistry.cs). I'm guessing the issue might be with either block sizes themselves somewhere, or the actual Igrping.dll needs recompiled with some changes. I tried to reallocate memory usage and recompile it, as Praxiiz suggested a few pages back in response to my initial question, but that doesn't allow the client to open at all.
Luckily, there is a workaround.
editbin /largeaddressaware client.exe
(((((((((((((Initializing Shard Maps)))))))))))))))))
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map0.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map1.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map2.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map3.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map4.mul
File exists and is ok
Checking for C:\ProgramData\UltimaLive\\TheShatteredEmpire\map5.mul
File exists and is ok
Loading Map: C:\ProgramData\UltimaLive\TheShatteredEmpire\map0.mul
CLIENT HAS CRASHED! Crash Report:
0018de70 | f4 7a 01 07 00 0f 01 00 00 00 00 00 00 4d 65 72 | .z...........Me
r |
0018de80 | 69 63 00 4d 63 3c de 18 00 83 00 00 00 05 00 00 | ic.Mc<.........
. |
0018de90 | 00 0f 00 00 00 00 00 00 00 58 77 76 63 4d 65 72 | .........XwvcMe
r |
0018dea0 | 69 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ic.............
. |
0018deb0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 31 39 32 | .............19
2 |
0018dec0 | 2e 31 36 38 2e 32 2e 39 00 00 00 00 00 00 01 4b | .168.2.9.......
K |
0018ded0 | c0 00 00 05 69 67 72 70 69 6e 67 2e 64 6c 6c 00 | ....igrping.dll
. |
0018dee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018def0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df10 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df30 | 00 00 00 00 00 00 00 00 43 52 41 53 48 00 00 00 | ........CRASH..
. |
0018df40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...............
. |
0018df90 | 00 00 00 00 00 00 00 00 00 00 00 00 00 d5 2b 40 | ..............+
@ |
0018dfa0 | a4 12 0f 31 94 64 0f 32 15 de 0f 32 12 f9 0f 31 | ...1.d.2...2...
1 |
0018dfb0 | df 4c 0f 35 d0 cb 0f 36 16 42 0f 35 c2 2c 0f 35 | .L.5...6.B.5.,.
5 |
0018dfc0 | 2c 3d 0f 35 08 fb 0f 35 10 ef 0f 35 e4 9b 0f 37 | ,=.5...5...5...
7 |
0018dfd0 | 49 73 0f 37 fc 7a 0f 36 31 7e 0f 37 54 47 0f 37 | Is.7.z.61~.7TG.
7 |
0018dfe0 | 55 25 0f 30 0b dc 00 46 41 2a | U%.0...FA*
|
static const int STATICS_MEMORY_SIZE = 400000000;//changed 200000000 to 400000000
static const int MAP_MEMORY_SIZE = 300000000;//changed 100000000 to 300000000
static const int STAIDX_MEMORY_SIZE = 20000000;//changed 100000000 to 200000000
static const int MAP_MEMORY_SIZE = 300000000;//changed 100000000 to 300000000
static const int STAIDX_MEMORY_SIZE = 20000000;//changed 100000000 to 200000000
static const int STATICS_MEMORY_SIZE = 400000000;//changed 200000000 to 400000000
Not a problem at all. Not many people have attempted this so, and I want to make this system as stable as possible. I don't mind at all.PS - Seriously. Thanks for giving this more than 5 minutes of attention. I realize this is highly specific to only me and my shard, and I really do appreciate any and all time you've spent trying to figure this out.
static const int MAP_MEMORY_SIZE = 300000000;
static const int MAP_MEMORY_SIZE = 400000000;
EA said:The Ultima Online License.
Ultima Online is an Internet-based online fantasy role-playing game service that allows you to play the "Ultima Online" computer game when you subscribe and pay a fee, or when you participate through an Internet Game Room (IGR) pursuant to the IGR's rules. As part of the Ultima Online service, Electronic Arts maintains a site on the World Wide Web with a URL address of "www.uo.com" (the "Web Site"). Throughout the remainder of this Agreement, the Ultima Online service (including the Web Site) will be referred to as the "Service", if you have purchased the Ultima Online game CD-ROM published by Electronic Arts Inc. it will be referred to as the "CD" and the software programs contained on the CD and provided to you through the Service will be referred to as the "Software". Electronic Arts grants to you a limited, non-exclusive license to use the CD, the Software and the Service subject to all of the terms and conditions of this Agreement, and the additional terms set forth in the documentation of the CD.
We use essential cookies to make this site work, and optional cookies to enhance your experience.