Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Tools

Development::Tools 3rd Party Tools for EQEMu (DB management tools, front ends, etc...)

Reply
 
Thread Tools Display Modes
  #16  
Old 07-29-2015, 10:31 AM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

I love the quality of information, knowom!

I totally hear you on 2048x2048xBCn textures being preferable over 1024x1024xRGBA. You've given me plenty to think about.

Biggest impact on the EQ texture-swapping project is the availability of the textures. Do you have good sources of 2k textures? Most of the places I've found just googling around have been 1k, or even lower.
Reply With Quote
  #17  
Old 07-29-2015, 11:18 AM
knowom's Avatar
knowom
Discordant
 
Join Date: Jun 2006
Posts: 371
Default

Quote:
Originally Posted by Shendare View Post
I love the quality of information, knowom!

I totally hear you on 2048x2048xBCn textures being preferable over 1024x1024xRGBA. You've given me plenty to think about.

Biggest impact on the EQ texture-swapping project is the availability of the textures. Do you have good sources of 2k textures? Most of the places I've found just googling around have been 1k, or even lower.
I made some from scratch with GIMP I have 2 links to a variety of them they were all 2k resolution. They weren't overly hard to make either. Some are more usable than others, but they don't look too bad I feel personally. http://www.eqemulator.org/forums/sho...light=textures

Had a few demonstration of textures in this thread I was curious roughly how they'd look roughly in practice.
http://www.eqemulator.org/forums/sho...light=textures

I experimented a bit on the 4xBRZ and HQ4x filters to see how blending them would turn out with GIMP I settled on using 4xBRZ as a top layer with Lighten Only mode and HQ4x as second layer with Darken Only mode applied.



I also did that same procedure, but then duplicate of default texture layer used for top layer with a overlay though you could probably get close to the same results by adjust transparency with the other two filter layers or similar at least. What it shows though is that the two filters along with original can be conjoined to get a more subtle and natural transition between them. The filters are mostly used for old emulators for sprite based games though they've been used in some old FPS games too like quake and doom to make them look more modern to decent effect.

__________________
"We are all on the same team, and I think not enough people realize this."
- Leetsauce
Reply With Quote
  #18  
Old 07-29-2015, 11:36 AM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Ah, I see.

Making new textures from scratch is fantastic, though outside the scope of simply making it easy for anyone to drag and drop new big textures over the small ones in older EQ zone files.

I still have plenty to ponder between 32bpp, 16bpp, and block compression, at various texture sizes. Gonna have to do some experimenting in-game and see where tradeoffs for file size actually get noticeable.
Reply With Quote
  #19  
Old 07-30-2015, 03:50 AM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

I feel like I'm spamming, so I think I may hold off on thread updates from now on until I feel
the program is complete and every planned feature is fully functional.

https://github.com/Shendare/EQZip/releases

Release Notes:

7/29/2015 - Version 1.2
  • Noticeable improvement in quality of texture mipmaps with high quality bicubic sampling
  • Added full support for 16-bit DDS textures (auto-sensing A1R5G5B5 or R5G6B5)
  • Set default import format to RGB16
  • Code cleanup (Settings -> Util.cs)

Planned Updates and Known Issues:
  • A feature will be added to vertically flip a texture, as some in-game geometry expects
    a texture to be bottom-up, and it can be hard to tell until you see it in-game.
  • An "Auto" import format will be implemented to auto-sense the best DDS format to use
    for an incoming texture based on how it uses an alpha channel (A1R5G5B5, R5G6B5, or
    A8R8G8B8). It will be the new default.
  • DDS imports do not support compression at this time.
Reply With Quote
  #20  
Old 07-30-2015, 08:34 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Well... that actually didn't take long... I think I've got all the features in it that I wanted.

Here's the full Readme for EQ-Zip v1.3:

EQ-Zip EverQuest Archive Manager
-----------

Current Version: 1.3

Last Updated: 7/30/2015

Github Link: https://github.com/Shendare/EQZip

To Download: https://github.com/Shendare/EQZip/releases

Features:

* Creates, Loads and Saves .S3D, .EQG, .PFS, and .PAK EverQuest package files

* Thumbnails of all supported texture types (RGB16/24/32, DXT1/2/3/4/5, V8U8)

* Automatically converts textures to .dds with mipmaps when importing (toggle)

* Automatically converts textures to .png, .gif, .bmp, or jpg when exporting (toggle)

* Drag-and-drop files into or out of an archive and Windows Explorer, or between EQ-Zip windows!

* Cut, Copy, and Paste files between archives and Windows Explorer, or each other

* Select a texture and choose Replace... to easily browse for a new texture to swap it out with

* Or just drag and drop a new texture from Windows onto an existing one in the archive!

* Import/Export/Replace textures via: Application Menu, Toolbar Button, or Right-click context menu

* Export all files in an archive to a destination folder

* Recent menu feature to remember the last 9 archives worked with (toggle)

* .Net 3.5 compatible, but archives will compress about 30% smaller when compiled to .Net 4.5

Screenshots:











Disclaimer:

EQ-Zip is not affiliated with, endorsed by, approved by, or in any way associated with Daybreak Games, the EverQuest franchise, or any of the other compression/archive based applications out there with the word "Zip" in them, who reserve all copyrights and trademarks to their properties.

License:

Portions of this software's code not covered by another author's or entity's copyright are released under the Creative Commons Zero (CC0) public domain license.

To the extent possible under law, Shendare (Jon D. Jackson) has waived all copyright and related or neighboring rights to this EQ-Zip application. This work is published from: The United States.

You may copy, modify, and distribute the work, even for commercial purposes, without asking permission.

For more information, read the CC0 summary and full legal text here:

https://creativecommons.org/publicdomain/zero/1.0/

Credits:

EverQuest game package file format determined from examination of the Delphi code in S3DSpy, by Windcatcher, without whose work this would be impossible.

http://sourceforge.net/projects/eqem.../S3DSpy%201.3/

DDS texture file parsing rebuilt from code by Lorenzo Consolaro. (MIT License)

https://code.google.com/p/kprojects/

TGA image loading class from David Polomis. (CPOL 1.02)

http://www.codeproject.com/Articles/...a-Image-Reader

Virtual Windows Shell File handling functionality thanks to David Anson (MIT License)

https://dlaa.me/blog/post/9923072

Icons made from the freeware non-commercial "Aqua Neue (Graphite)" pack.

Release Notes:

7/30/2015 - Version 1.3

* Added feature to easily horizontally or vertically flip an image to get it to show up properly in-game if the geometry
expects the texture to be stored in some way besides left-to-right, top-to-bottom.

* Added help descriptions to the Preferences window for choosing Import and Export auto-conversion options.

* Corrected 24/32-bit to 16-bit color scaling. NB: Integers truncate; they don't round.

* DDS Import Format - Auto

By default, importing graphics files to an EQ-Zip archive will automatically convert them to a .dds texture with mipmaps.
The default .dds format is now "Auto", which tells EQ-Zip to pick the best format for the new texture based on the graphics
file's use or absence of an alpha channel.

* All pixels fully opaque -> RGB16 - (R5G6B5)
* All pixels fully transparent or opaque -> ARGB16 (A1R5G5B5)
* Some pixels partially transparent -> RGB32 (A8R8G8B8)

This yields the most compact format (without lossy compression) for any texture, while preserving good color and alpha channels.

If you do not like Auto, you can specify how many bits-per-pixel to import .dds files at (16, 24, or 32), or deactivate
auto-conversion altogether.

This completes my planned features. If you think of a new feature you want to see, or come across a bug, let me know
at Shendare at Shendare DotNet.

Enjoy customizing your EverQuest experience with EQ-Zip!

- Shendare (Jon D. Jackson)

-----------

Former Release Notes:

7/29/2015 - Version 1.2

* Noticeable improvement in quality of texture mipmaps with high quality bicubic sampling
* Added full support for 16-bit DDS textures (auto-sensing A1R5G5B5 or R5G6B5)
* Set default import format to RGB16
* Code cleanup (Settings -> Util.cs)

7/28/2015 - Version 1.1

* DXT1 Decompression - Improved Slightly
* DXT2 Decompression - Enabled
* DXT3 Decompression - Added
* DXT4 Decompression - Enabled
* DXT5 Decompression - Improved Significantly
* V8U8 Decompression - Improved Significantly

7/25/2015 - Version 1.0

* Initial Release
Reply With Quote
  #21  
Old 09-08-2015, 01:37 PM
MajinCry's Avatar
MajinCry
Sarnak
 
Join Date: Sep 2015
Location: Scotland
Posts: 33
Default

Got a bug report.

When extracting files (copy-pasting from EQ-Zip to a folder, using the "Extract All" or "Extract File" options, click-dragging files from EQ-Zip to a folder) from "erudnext_chr.s3d", the same error is thrown for a large number of the selected files: "Generic GDI+ Error"

'Eres a lil' picture to demonstrate.



And here's the copy-paste of the error details.

Code:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+.
   at System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
   at EQ_Zip.EQArchiveFile.SetImage(Image NewImage, String Format)
   at EQ_Zip.EQArchiveFile.AsFormat(String NewFormat, Boolean ChangeExtension)
   at EQ_Zip.formMain.listView1_ItemDrag(Object sender, ItemDragEventArgs e)
   at System.Windows.Forms.ListView.LvnBeginDrag(MouseButtons buttons, NMLISTVIEW nmlv)
   at System.Windows.Forms.ListView.WmReflectNotify(Message& m)
   at System.Windows.Forms.ListView.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
EQ-Zip
    Assembly Version: 1.3.0.0
    Win32 Version: 1.3.0.0
    CodeBase: file:///J:/EQ/Tools/EQ-Zip/EQ-Zip.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34251 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34238 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34234 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.34209 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Edit: I should mention my specs.

Windows 7 64 bit, 16GB DDR3 @ 1333MHz, AMD Phenom II x4 965 BE, AMD Radeon HD 7850 2GB GDDR5
Reply With Quote
  #22  
Old 09-08-2015, 01:43 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Cool. I'll take a look. There are problems with a couple other files, too. I think it's global_chr.s3d that crashes completely. Probably some wackiness in the way some of the oldest s3d files were put together.
Reply With Quote
  #23  
Old 09-08-2015, 02:01 PM
MajinCry's Avatar
MajinCry
Sarnak
 
Join Date: Sep 2015
Location: Scotland
Posts: 33
Default

Quote:
Originally Posted by Shendare View Post
Cool. I'll take a look. There are problems with a couple other files, too. I think it's global_chr.s3d that crashes completely. Probably some wackiness in the way some of the oldest s3d files were put together.
I'm not too sure if it's to do with the more venerable files. Whilst erudnint_chr.s3d and fearplance_chr.s3d get the error as well (file creation date: 1999), fgh_chr.s3d (file creation date: 2006) gets the error, as does cub_chr (file creation date: 2012).

Did a quick google, and it seems this error occurs when a stream (whatever that is) is closed when the program has created an image file. 'Eres the Stack Overflow link.
Reply With Quote
  #24  
Old 09-08-2015, 02:10 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Hmm... all _chr.s3d files. Time to dig in. Thanks for the link.
Reply With Quote
  #25  
Old 09-08-2015, 02:13 PM
MajinCry's Avatar
MajinCry
Sarnak
 
Join Date: Sep 2015
Location: Scotland
Posts: 33
Default

Quote:
Originally Posted by Shendare View Post
Hmm... all _chr.s3d files. Time to dig in. Thanks for the link.
Oi'm rootin' fer yer, sah.

This program of yours is a lifesaver. Only thing it needs aside from the remedying of the aforementioned issue, is the possibility of extracting resources from multiple .s3d files at once. Then it'll be perfect.
Reply With Quote
  #26  
Old 09-08-2015, 02:15 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Heh. Like 7-zip. Select a bunch of s3d/eqg files, right-click in Explorer, and choose "Extract Files to *\".
Reply With Quote
  #27  
Old 09-08-2015, 02:25 PM
MajinCry's Avatar
MajinCry
Sarnak
 
Join Date: Sep 2015
Location: Scotland
Posts: 33
Default

Quote:
Originally Posted by Shendare View Post
Heh. Like 7-zip. Select a bunch of s3d/eqg files, right-click in Explorer, and choose "Extract Files to *\".
That's the stuff dreams are made out of, sarge. I'd readily sacrifice one of my virgin goats for such a possibility.
Reply With Quote
  #28  
Old 09-08-2015, 03:04 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

The StackOverflow link led to a post with the cause and fix. Got it cleared up now.

https://github.com/Shendare/EQZip/releases/

Release Notes:

9/8/2015 - Version 1.4

* Fixed: Extracting from _chr.s3d archives with lots of files inside should no longer yield a "Generic GDI+ Error".

* Known Issue: Some files may still have too many files inside for C# to easily parse. global_chr.s3d is one that is known, with 1,617 files stored in it. A stack overflow occurs even when not extracting the images from the stored files for display. I'll have to put together a way to split up the processing of obscenely large numbers of files into batches.
Reply With Quote
  #29  
Old 09-08-2015, 03:09 PM
MajinCry's Avatar
MajinCry
Sarnak
 
Join Date: Sep 2015
Location: Scotland
Posts: 33
Default

Quote:
Originally Posted by Shendare View Post
The StackOverflow link led to a post with the cause and fix. Got it cleared up now.
Glory be to Crom!

Much obliged for the fix, milordship. Time to get to extractin'.

Just to make sure, when you talked about the right-click -> Extract to *\ functionality, that was to mean what would the best method of implementing multi-extraction, rather than that feature already being present, aye?
Reply With Quote
  #30  
Old 09-08-2015, 04:48 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Right. Shell integration is not part of the program right now.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 03:30 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3