May 2023 Version Update (Part 1)

Eorzea Time
 
 
 
Language: JP EN FR DE
users online
Forum » FFXI » General » May 2023 Version Update (Part 1)
May 2023 Version Update (Part 1)
First Page 2 3 ... 9 10 11
Offline
By RadialArcana 2023-05-13 07:24:19
Link | Quote | Reply
 
Set it to 1 and no higher, hopefully they fix it.
[+]
Offline
By Dodik 2023-05-13 07:27:03
Link | Quote | Reply
 
And Leaden/Trueflight on magic weak mobs, hybrid WS on certain enemies. Fudo was routinely hitting 99k for me on the bard Sahagin in Ambu couple months ago which was hilarious.
 Asura.Saevel
Offline
Server: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2023-05-13 11:17:21
Link | Quote | Reply
 
Lili said: »
And Flaming Crush, and Climatic Rudra.


Not on anything that matters.

Dodik said: »
And Leaden/Trueflight on magic weak mobs, hybrid WS on certain enemies. Fudo was routinely hitting 99k for me on the bard Sahagin in Ambu couple months ago which was hilarious.

Again not on anything that matter, with the exception of TF/LS closing skillchains on specific magic targets.

But again we were talking about Physical Damage Limit on current content.

Vaerix said: »
KujahFoxfire said: »
Bahamut.Kahraba said: »
Asura.Melliny said: »
There's no reason to believe PDL on these new weapons would work any differently from every other existing PDL piece. If I understand correctly you're suggesting the aftermath might not only raise the attack cap by giving +PDL, but also provide the requisite attack values to make use of it outright. That's more than just a little unlikely. I wouldn't get my hopes up on that one.

The weaponskills are probably going to be really good though. They pretty much have to be. I'm expecting them to have impressive mods and tp scaling. There's a chance they may have hidden properties not mentioned in the description as well. Howling fist has an attack mod and coronach has enmity suppression, so it's possible these new weaponskills could also be packing some surprises too. We'll just have to wait and see.
but what if the aftermath of PDL is a typo and they just meant Damage limit + like FFX?

Im fairly sure letting us go over 99k is gonna completely break game balance, but i'm all for it haha

In current content hitting 99999 isn't something that happens regularly (even MS War wasn't popping 99999 vs v20 bumba) if they make a weapon that can break that damage cap it wouldn't be felt really on current content but would make old content like Fu absolutely hilarious.
 Leviathan.Wiccaan
Offline
Server: Leviathan
Game: FFXI
user: Wiccaan
Posts: 27
By Leviathan.Wiccaan 2023-05-13 20:23:47
Link | Quote | Reply
 
MipMap Information / Fix

SE decided to change how the mipmap setting is being honored for whatever reason in the latest retail client update. Here is the information in regards to what was changed and how to fix it.

The client loads the mipmap setting in several locations and applies different rendering adjustments. The main one of interest though is loaded into a sub-structure that holds the value.

In the old client, this looked like this when loaded and used:
Code
    if ( FUNC_CYmdb_GetMipMappingLevel() )
        mmlvl = FUNC_CYmdb_GetMipMappingLevel();
    else
        mmlvl = 1;
    *((_BYTE *)this + 42) = mmlvl;


However, in the new retail client, they changed this to:
Code
    mmlvl = FUNC_CYmdb_GetMipMappingLevel();
  *((_BYTE *)this + 42) = 2 - (mmlvl != 1);


The block of assembly doing this now looks like:
Code
.text:10038D60 E8 BB BE FD FF                                call    FUNC_CYmdb_GetMipMappingLevel
.text:10038D65 FE C8                                         dec     al
.text:10038D67 89 5E 20                                      mov     [esi+20h], ebx
.text:10038D6A F6 D8                                         neg     al
.text:10038D6C 1A C0                                         sbb     al, al
.text:10038D6E 89 5E 1C                                      mov     [esi+1Ch], ebx
.text:10038D71 83 C0 02                                      add     eax, 2
.text:10038D74 88 46 2A                                      mov     [esi+2Ah], al
.text:10038D77 8B 46 2C                                      mov     eax, [esi+2Ch]


The code block here can be altered and updated to force a mipmap level of 6 like the following:
Code
    local patch = {
        0x89, 0x5E, 0x20,                           -- mov [esi+20h], ebx   ; original code restored
        0x89, 0x5E, 0x1C,                           -- mov [esi+1Ch], ebx   ; original code restored
        0xC7, 0x46, 0x2A, 0x06, 0x00, 0x00, 0x00,   -- mov [esi+2A], 6      ; forced mipmap setting
        0x90, 0x90, 0x90, 0x90, 0x90,               -- nop {5}
    };
    ashita.memory.write_array(mipmap.ptr, patch);


The pattern used for this patch ptr is: 'FEC8895E20F6D81AC0895E1C83C00288462A'

For Ashita users, you can find a 'mipmap' addon available on our Discord: https://discord.gg/Ashita

Windower can make use of this info if need be to make their own addon/plugin to restore this functionality as well.

Example images of the way retail handles this now and with it patched back to '6':
https://imgur.com/a/ys0r3jN

Enjoy. :)
[+]
Offline
By RadialArcana 2023-05-14 03:38:52
Link | Quote | Reply
 
Thank you! I don't get why they changed it.
[+]
 Leviathan.Wiccaan
Offline
Server: Leviathan
Game: FFXI
user: Wiccaan
Posts: 27
By Leviathan.Wiccaan 2023-05-14 04:12:54
Link | Quote | Reply
 
RadialArcana said: »
Thank you! I don't get why they changed it.

I can't say for sure, but I do have a theory/guess as to why they 'nerfed' this setting. With the influx of HD texture packs that heavily upscale or recreate new textures that are much larger than the base game textures, it adds up quickly to generate mipmaps for each texture that is used for a zone and its environment. XI is 32bit and is not (by default) marked as large address aware. Because of that, XI runs out of memory pretty quickly when using HD textures due to also being used with a higher mipmap level. My guess is that SE is intentionally locking this to '2' to try and meet a decent middle ground level while reducing the amount of memory allocated for all the mipmaps generated.

Users that run into the issue of not having a zone load properly/at all (ie. loading into a black area with just models showing) would generate a bunch of invalid bug reports to SE due to using non-official mods/files. Rather than ban people for doing said mods, they instead may have gone this route to find a middle ground.
[+]
 Carbuncle.Snicky
Offline
Server: Carbuncle
Game: FFXI
user: Snicky
Posts: 6
By Carbuncle.Snicky 2023-05-14 04:13:54
Link | Quote | Reply
 
RadialArcana said: »
Thank you! I don't get why they changed it.

If the original code snippet that Wiccan showed was accurate...

Probably someone new learning the code would be my guess.
That sort of double function call for the same value would be the kind of thing that would get commented on in a code review and optimized out. If the FFXI config only supported values of 0 and 1, taking the if/else out is also a minor optimization to ensure that the expected input values from the config always mapped to an expected mmlvl.

Something small like this and relatively harmless makes for a nice commit and pull request for someone learning the ropes.

That's my guess.

As for the HD texture pack issue, if there's no harm in making the game large address aware wouldn't it be a better fix to just do that? Wonder why they haven't.
[+]
Offline
By RadialArcana 2023-05-14 04:43:53
Link | Quote | Reply
 
Quote:
I can't say for sure, but I do have a theory/guess as to why they 'nerfed' this setting. With the influx of HD texture packs that heavily upscale or recreate new textures that are much larger than the base game textures, it adds up quickly to generate mipmaps for each texture that is used for a zone and its environment. XI is 32bit and is not (by default) marked as large address aware. Because of that, XI runs out of memory pretty quickly when using HD textures due to also being used with a higher mipmap level. My guess is that SE is intentionally locking this to '2' to try and meet a decent middle ground level while reducing the amount of memory allocated for all the mipmaps generated.

Yeah makes sense.

Mipmapping is a double edged sword really. Being able to set it higher fixes the obnoxious shimmer problems but it also brings with it ram and hitching problems too if you use very high res texture mods. Cause unlike other games that store the mipmaps in the data files, XI makes them on the fly to save ps2 hd space and they are lost every time you zone. Assuming all this load is put on the cpu.

I made some super high res textures on a specific npc years ago just to see what would happen, and when I got into range where it would load and with mipmap 6 the game would literally lock up for 2 seconds to make the mipmaps. With mipmap 0, nothing negative happened at all.

Bump mapping also increases ram use too (especially since Amelia made custom bump maps), since it adds a lot of extra black and white textures to zone loading.

Pity there seems to be no outside way to handle the mipmap / shimmer problem so the game setting can be at 0, since it's one of the major performance problems with modding the game.
[+]
 Fenrir.Niflheim
VIP
Offline
Server: Fenrir
Game: FFXI
user: Tesahade
Posts: 664
By Fenrir.Niflheim 2023-05-14 07:35:32
Link | Quote | Reply
 
Leviathan.Wiccaan said: »
MipMap Information / Fix

SE decided to change how the mipmap setting is being honored for whatever reason in the latest retail client update. Here is the information in regards to what was changed and how to fix it.

The client loads the mipmap setting in several locations and applies different rendering adjustments. The main one of interest though is loaded into a sub-structure that holds the value.

...

For Ashita users, you can find a 'mipmap' addon available on our Discord: https://discord.gg/Ashita

Windower can make use of this info if need be to make their own addon/plugin to restore this functionality as well.

Example images of the way retail handles this now and with it patched back to '6':
https://imgur.com/a/ys0r3jN

Enjoy. :)

Thank you for the info Atom0s, we released MipmapFix a plugin that reinstates the original behavior. (did credit you on the author since you wrote the patch hope that is ok)

The setting in the windower launcher still controls your mipmapping, so whatever you have that set to will be your mipmapping level with the plugin loaded.

Once you launch the launcher, MipmapFix will be in the menu if you download it and enable you're good to go.

If you want to use it on an already running box you can load it by doing: //load MipmapFix
You then will need to zone before the change will take effect.
[+]
 Leviathan.Wiccaan
Offline
Server: Leviathan
Game: FFXI
user: Wiccaan
Posts: 27
By Leviathan.Wiccaan 2023-05-14 15:55:11
Link | Quote | Reply
 
Carbuncle.Snicky said: »
RadialArcana said: »
Thank you! I don't get why they changed it.

If the original code snippet that Wiccan showed was accurate...

Probably someone new learning the code would be my guess.
That sort of double function call for the same value would be the kind of thing that would get commented on in a code review and optimized out. If the FFXI config only supported values of 0 and 1, taking the if/else out is also a minor optimization to ensure that the expected input values from the config always mapped to an expected mmlvl.

Something small like this and relatively harmless makes for a nice commit and pull request for someone learning the ropes.

That's my guess.

As for the HD texture pack issue, if there's no harm in making the game large address aware wouldn't it be a better fix to just do that? Wonder why they haven't.

Why would I post non-accurate info? I am posting snippets pulled directly from the clients disassembled code. The naming of certain things (variables and some functions) that I post when I do things like this are not always 100% accurate to what SE has named them, but in many cases they are pulled directly from debug symbols and information left in the client.

FFXI is coded on an ancient codebase originally coded for PS2 then ported to PC using a large amount of #ifdef and similar macros to keep most of the code base 1:1 to the console version while only replacing parts of code that need to be platform specific. (ie. Window creation, memory management, rendering, etc.) The code is still compiled on the old PS2 devkit tooling as well, meaning it is making use of VC6 for its compiler which has very few compiler based optimizations. On a modern compiler, a double call of the same function and storage into a variable would be automatically picked up and optimized away, but not the case for VC6.

The raw ASM for the old client code is:
Code
.text:10038CE0 FUNC_CYyTexBase_CYyTexBase proc near
.text:10038CE0                 push    ebx
.text:10038CE1                 push    esi
.text:10038CE2                 mov     esi, ecx
.text:10038CE4                 xor     ebx, ebx
.text:10038CE6                 mov     dword ptr [esi], offset PTR_vtbl_CYyTexBase
.text:10038CEC                 mov     [esi+4], ebx
.text:10038CEF                 mov     [esi+8], ebx
.text:10038CF2                 mov     [esi+24h], bx
.text:10038CF6                 mov     [esi+26h], bx
.text:10038CFA                 mov     [esi+28h], bl
.text:10038CFD                 mov     [esi+29h], bl
.text:10038D00                 call    FUNC_CYmdb_GetMipMappingLevel
.text:10038D05                 test    al, al
.text:10038D07                 jz      short loc_10038D15
.text:10038D09                 call    FUNC_CYmdb_GetMipMappingLevel
.text:10038D0E                 and     eax, 0FFh
.text:10038D13                 jmp     short loc_10038D1A
.text:10038D15 ; ---------------------------------------------------------------------------
.text:10038D15
.text:10038D15 loc_10038D15:
.text:10038D15                 mov     eax, 1
.text:10038D1A
.text:10038D1A loc_10038D1A:
.text:10038D1A                 mov     [esi+2Ah], al
.text:10038D1D                 mov     eax, [esi+2Ch]
.text:10038D20                 and     eax, 0FFFFFE00h
.text:10038D25                 mov     [esi+20h], ebx
.text:10038D28                 mov     [esi+2Ch], eax
.text:10038D2B                 mov     [esi+1Ch], ebx
.text:10038D2E                 mov     eax, dword_10472CA4
.text:10038D33                 mov     ecx, eax
.text:10038D35                 inc     eax
.text:10038D36                 push    ecx
.text:10038D37                 push    offset a10d     ; "%10d"
.text:10038D3C                 push    (offset aUniq+5) ; Buffer
.text:10038D41                 mov     dword_10472CA4, eax
.text:10038D46                 call    _sprintf
.text:10038D4B                 add     esp, 0Ch
.text:10038D4E                 mov     ecx, esi
.text:10038D50                 push    offset aUniq    ; "-uniq"
.text:10038D55                 call    sub_10038D90
.text:10038D5A                 mov     eax, esi
.text:10038D5C                 pop     esi
.text:10038D5D                 pop     ebx
.text:10038D5E                 retn
.text:10038D5E FUNC_CYyTexBase_CYyTexBase endp


There are various parts to this code that would be optimized in a much more efficient manner on modern compilers.

As for the large address aware handling, it only goes so far just to mark the process as being 'aware'. Given that XI has its own memory pooling and management systems inside of the client, they are coded and designed to not be fully aware of that larger amount of memory or how to properly make use of when LAA is enabled. There are patches/tooling to already mark FFXI as LAA, but it only helps so much in moving the mark forward of when the client will go 'OOM' and crash still.

Given the client is also coded to use Direct3D 8, it lacks a lot of the improvements seen to the DirectX SDK over the years since. Even just porting up to 9 would be a large gain in performance and additional feature sets for the game. SE had promised this was going to happen multiple times in the past, but it never came to be sadly.


Fenrir.Niflheim said: »
Thank you for the info Atom0s, we released MipmapFix a plugin that reinstates the original behavior. (did credit you on the author since you wrote the patch hope that is ok)

Sounds good to me. :)
[+]
 Odin.Dirac
Offline
Server: Odin
Game: FFXI
user: DiracOdin
Posts: 22
By Odin.Dirac 2023-05-14 16:06:07
Link | Quote | Reply
 
I remember being annoyed when anisotropic filtering stopped working with Nvidia cards around driver version 170. Cranking mipmapping up didn't reduce shimmering nearly as much as 8x anisotropic with mipmap at level 1. Also the mipmap level transistion became visible on ground textures around driver version 180. Anisotropic filtering also stopped working on ATI cards around driver version 9.4. Anyone know if it works these days?
 Leviathan.Wiccaan
Offline
Server: Leviathan
Game: FFXI
user: Wiccaan
Posts: 27
By Leviathan.Wiccaan 2023-05-14 16:35:06
Link | Quote | Reply
 
Odin.Dirac said: »
I remember being annoyed when anisotropic filtering stopped working with Nvidia cards around driver version 170. Cranking mipmapping up didn't reduce shimmering nearly as much as 8x anisotropic with mipmap at level 1. Also the mipmap level transistion became visible on ground textures around driver version 180. Anisotropic filtering also stopped working on ATI cards around driver version 9.4. Anyone know if it works these days?

Was there a specific zone/area you recall that had this shimmer problem the most in regards to these settings?

The only difference I see with cranking up anisotropic filtering is lighting looks slightly better on various wall lights, fires, and similar. This does require you to use something like dgVoodoo or another proxy to force the game to use the actual system GPU then setting the filtering to x16 in the Nvidia control panel to enable properly.
 Carbuncle.Snicky
Offline
Server: Carbuncle
Game: FFXI
user: Snicky
Posts: 6
By Carbuncle.Snicky 2023-05-15 00:03:01
Link | Quote | Reply
 
Leviathan.Wiccaan said: »
Carbuncle.Snicky said: »
RadialArcana said: »
Thank you! I don't get why they changed it.

If the original code snippet that Wiccan showed was accurate...

Why would I post non-accurate info? I am posting snippets pulled directly from the clients disassembled code.

My apologies. That was just me hedging my bets in case you had simplified the code to make it easier to understand or something. I didn’t mean to suggest you were being intentionally misleading.
Offline
Posts: 14420
By Pantafernando 2023-05-16 06:48:27
Link | Quote | Reply
 
Btw, it seems like SE released a ninja patch to fix the mysterious RoE quests.
Offline
By Dodik 2023-05-16 10:13:45
Link | Quote | Reply
 
Turning off mip-mapping in game entirely and using anisotropic filtering via the GPU drivers and a d3d proxy would likely be much better both performance and looks wise.
[+]
 Fenrir.Jinxs
Offline
Server: Fenrir
Game: FFXI
user: Jinxs
Posts: 537
By Fenrir.Jinxs 2023-05-16 10:38:38
Link | Quote | Reply
 
Dodik said: »
Turning off mip-mapping in game entirely and using anisotropic filtering via the GPU drivers and a d3d proxy would likely be much better both performance and looks wise.

What's the best way to turn this off?
Offline
By Dodik 2023-05-16 11:45:49
Link | Quote | Reply
 
Windower mip-mapping slider to 0, all way to the left, is what I use.
 Asura.Eiryl
Online
Server: Asura
Game: FFXI
user: Eiryl
By Asura.Eiryl 2023-05-16 13:18:13
Link | Quote | Reply
 
Fenrir.Jinxs said: »
Dodik said: »
Turning off mip-mapping in game entirely and using anisotropic filtering via the GPU drivers and a d3d proxy would likely be much better both performance and looks wise.

What's the best way to turn this off?

By not knowing what it is by default it was off
 Siren.Kruel
Offline
Server: Siren
Game: FFXI
user: Kruel666
Posts: 287
By Siren.Kruel 2023-05-16 13:33:28
Link | Quote | Reply
 
Dodik said: »
Turning off mip-mapping in game entirely and using anisotropic filtering via the GPU drivers and a d3d proxy would likely be much better both performance and looks wise.
I can confirm this has been working for me for years.

Mip mapping off, using dgvoodoo as a d3d proxy and using nvidia control panel to apply whatever anisotropic filtering or anti aliasing I want to have. (I use nvidia inspector for more in depth customisation because not every setting through nividia control panel always work in games).

If anisotropic filtering doesn't get applied through control panel, you can use inspector to force it.

I'd assume it works in general.
[+]
 Asura.Saevel
Offline
Server: Asura
Game: FFXI
Posts: 9910
By Asura.Saevel 2023-05-16 14:05:04
Link | Quote | Reply
 
dgVoodoo2 lets you force both of those, been using them for awhile now.
Offline
By RadialArcana 2023-05-16 15:26:47
Link | Quote | Reply
 
Does dgvoodoo increase ram use or have any other negative impacts?

Mipmapping x6 increases vram use by about 60-80%
 Valefor.Prothescar
Guide Master
Offline
Server: Valefor
Game: FFXI
Posts: 19647
By Valefor.Prothescar 2023-05-16 15:58:08
Link | Quote | Reply
 
You can increase vram allocation with dgvoodoo. I have mine set to 4096 per instance (don't set it this high, I did it because I can w/ my gpu, most cards will have 4-8gb of vram so 2gb is the most that you should really have it at especially when multi boxing) and haven't had a crash since w/ HD textures and ansitropy x16.

Anything that causes the game to ask the gpu to load more high resolution textures (mip mapping included) will increase vram usage.
[+]
 Siren.Kruel
Offline
Server: Siren
Game: FFXI
user: Kruel666
Posts: 287
By Siren.Kruel 2023-05-16 15:59:04
Link | Quote | Reply
 
RadialArcana said: »
Does dgvoodoo increase ram use or have any other negative impacts?

Mipmapping x6 increases vram use by about 60-80%
Dgvoodoo along with the 4gb exe patch allows FF11 to exceed the vram cap up to 4gb.

I came across it at first when people were having black screen issues with HD zones, game was running out of memory and it fixed it.

Can't say i've noticed an increase of vram being used by dgvoodoo, except for the extra ram I want it to use by uncapping it.

It really is a massive positive being able to allow FF11 to use more vram if you're system can handle it, but you can also designate lower amounts of ram also, even keep it standard if that's what you want.
[+]
 Bahamut.Navius
Offline
Server: Bahamut
Game: FFXI
user: phot0nic
Posts: 66
By Bahamut.Navius 2023-05-16 16:04:46
Link | Quote | Reply
 
My experience with anisotropic filtering / mipmapping has been completely different. I use dgVoodoo, and while turning on anisotropic filtering (either through the Nvidia control panel, dgVoodoo settings, or even Nvidia Profile Inspector) can help reduce shimmering on HD textures, even cranking all of these settings up to their respective maximums does not eliminate it. It's still very noticeable and annoying, especially in high detail places such as the stone ground in Jeuno or the sand in Rabao. The only way I've found to actually get rid of the shimmering is to crank mipmapping up to 6.

Also, despite how inefficient the game's mipmapping implementation may be, I notice a far more significant FPS drop from anisotropic filtering than mipmapping. So for me, turning up mipmapping provides both better appearance *and* performance than anisotropic filtering. I just wanted to add this for those reading the thread, that YMMV based on hardware configurations.

Out of curiosity, those of you who do not notice shimmering with mipmapping turned off, are you using the highly-detailed HD textures from this thread (FFXI HD Mods), or are you using lower detail up-scaled HD textures (such as those made by Ashenbubs)? Just curious why there's such a discrepancy.
 Valefor.Prothescar
Guide Master
Offline
Server: Valefor
Game: FFXI
Posts: 19647
By Valefor.Prothescar 2023-05-16 16:11:48
Link | Quote | Reply
 
I use ashenbubs. When I do HD textures in games I typically want to keep the original design, just better looking. What I find in most other texture packs is they use a lot of artistic liberties which I'm not personally a fan of.
[+]
 Siren.Kruel
Offline
Server: Siren
Game: FFXI
user: Kruel666
Posts: 287
By Siren.Kruel 2023-05-16 16:12:31
Link | Quote | Reply
 
I use a combination of both, i'm not a fan of a lot of the more cartoonish upscales so just spent a lot of time mixing and matching.

Places like your example Jeuno, and many other places I'm using the high detail zones with no shimmering.

I have:

Super sampling: on
Bump mapping: off
Mip mapping: off
Dgvoodoo 4gb: on
Pol.exe patched with 4gb patch
Not using dgovoodoos anisotropic filtering, forcing it through nvidia inspector.
 Valefor.Prothescar
Guide Master
Offline
Server: Valefor
Game: FFXI
Posts: 19647
By Valefor.Prothescar 2023-05-16 16:17:46
Link | Quote | Reply
 
Another thing you can do that might improve texture quality is to apply a small amount of sharpening. Either through graphics drivers or something like reahade. If you overdo it you're going to make it look worse but a small amount helps with clarity.
 Bahamut.Navius
Offline
Server: Bahamut
Game: FFXI
user: phot0nic
Posts: 66
By Bahamut.Navius 2023-05-16 16:19:56
Link | Quote | Reply
 
Ok, that's interesting. I'm not surprised if you don't see shimmering with Ashenbubs' texture pack, it's really the highly detailed ones that have a problem for me, not the upscaled ones.

Also, I use all the same settings as Kruel, and it sounds like we're using the same Jeuno textures, but the shimmering in Jeuno without mipmapping is pretty terrible for me.
First Page 2 3 ... 9 10 11