Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Mass Effect Andromeda

Featured Replies

  • Author
  • Localization

warrantyvoider, posted Mon May 01, 2017 4:49 pm (22781)


it creates dds files, so it also creates dds headers, essentially click create, enter your target size, select target format and maybe force dx10 header, then replace the pixeldata in the created dds or just use the header for whatever
  • Replies 674
  • Views 119
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

AnonBaiter, posted Mon May 01, 2017 4:51 pm (22782)


So I should just import raw data just fine?
  • Author
  • Localization

warrantyvoider, posted Mon May 01, 2017 5:18 pm (22783)


not in my tool. I dunno what is so confusing:
1.you can load an image, bmp or dds
2.you can save that image to, again, bmp or dds
3.you can create a white bitmap with size X;Y as input

if you use option 3 and you know the format and size of your raw pixel data, you can create an empty, white bmp with that size, export is as dds in your prefered format. it creates a dds with a valid header, and you can use that header to add before your raw pixel data, to make a dds file out of that. ok sofar? if you dont know the size and just wanna test a bunch of bytes, you can replace the same amount of bytes of pixel data in that white dds you just created, with your test data. the result will look lineshifted, but you could see if color and co are ok, also guess the width of an image by the repeating pattern length

greetz
  • Author
  • Localization

AnonBaiter, posted Mon May 01, 2017 5:24 pm (22784)


I think I get it now. Sorry I wasn't clear.
  • Author
  • Localization

warrantyvoider, posted Mon May 01, 2017 5:56 pm (22785)


yay, seems I can finally make valid headers^^
Image
  • Author
  • Localization

warrantyvoider, posted Mon May 01, 2017 7:36 pm (22786)


wohoo, this actually works! added 4 more common dx10 format types to support! still far from done, but with the previous tool this should be solvable now

Image

now on github

greetz WV
  • Author
  • Localization

Hairless_Wookiee, posted Tue May 02, 2017 5:06 am (22802)


It seems like format 66/BC7_UNORM textures are not extracting at full resolution, but rather the 4th mip. For instance, a 2048x2048 texture is extracting as 256x256, a 1024x1024 texture is extracting at 128x128. Format 67/BC7_SRGB textures are working properly, extracting at the full resolution.
  • Author
  • Localization

warrantyvoider, posted Tue May 02, 2017 6:17 am (22803)


Hairless_Wookiee wrote:
It seems like format 66/BC7_UNORM textures are not extracting at full resolution, but rather the 4th mip. For instance, a 2048x2048 texture is extracting as 256x256, a 1024x1024 texture is extracting at 128x128. Format 67/BC7_SRGB textures are working properly, extracting at the full resolution.


well you can use my tool above to make me a better header if you think I set some flags wrong and tell me where it differs, also the code is open source. then currently the real first mip is calculated this way: sum the mip sizes from small to biggest until the sum matches the actual data length and take that last mip as new start. the firstMip variable in the res data is not always true, so should not be used.

greetz WV
  • Author
  • Localization

Hairless_Wookiee, posted Tue May 02, 2017 6:55 am (22804)


Here's the header results from the version exported by the MEA Tools vs resizing and re-exporting it from Photoshop and creating a dummy image in TexTools:

http://i.imgur.com/xaHYdxW.jpg
  • Author
  • Localization

warrantyvoider, posted Tue May 02, 2017 7:06 am (22806)


Hairless_Wookiee wrote:
Here's the header results from the version exported by the MEA Tools vs resizing and re-exporting it from Photoshop and creating a dummy image in TexTools:

http://i.imgur.com/xaHYdxW.jpg


ah man, thats useful and I will look into it, but I also made a tool to display those infos... https://github.com/zeroKilo/DDSCheckerWV could you pls redo this with that tool? thanks

greetz

PS:am at work, so can only make testreleases here before I can commit it to git later

EDIT: comparing your hex by hand, my tool still exports fine, it doesnt matter that you create a 2048x2048 texture, if there is only data for a 256x256 texture available, I can not export more, its as simple as that. simply check DDS_header here
  • Author
  • Localization

Hairless_Wookiee, posted Tue May 02, 2017 7:21 am (22808)


I'm just going by the info panel in the Texture Plugin. It says a particular texture is 2k or 1K, but only exports a lower resolution, unlike the other formats. For instance:

Type : Texture2D
Format : 66 - 0x42 (supported) (BC7_UNORM)
Size X : 1024 (128)
Size Y : 1024 (128)
Depth : 1
Slice Count : 1
Mip Count : 11
Mip Start : 3
Mip 1 Offset : 0x000AE4F4
Mip 2 Offset : 0x000DA015
Mip Sizes :
-> 1024x1024 = 0x100000 bytes
-> 512x512 = 0x40000 bytes
-> 256x256 = 0x10000 bytes
-> 128x128 = 0x4000 bytes
-> 64x64 = 0x1000 bytes
-> 32x32 = 0x400 bytes
-> 16x16 = 0x100 bytes
-> 8x8 = 0x40 bytes
-> 4x4 = 0x10 bytes
-> 2x2 = 0x10 bytes
-> 1x1 = 0x10 bytes
= 0x155570 bytes

So I gather for whatever reason that it can't find the data for the higher resolutions.
  • Author
  • Localization

warrantyvoider, posted Tue May 02, 2017 7:35 am (22809)


you really dont like to read my posts, do you? that info you see there, is what is STORED in the res data, I just display whats stored as META DATA. it has a variable called firstMip which already shows you in the brackets the real size it would expect (because it may start with mip 1,2,3... and so on, instead of 0) and I additionally check for the real size before exporting. just sum the mip sizes up and compare at which level you would reach the amount of data in the chunk. also mip = resolution. if the original size was 2048x2048, it makes a 2048x2048mip, a 1024x1024mip, a 512x512mip, a 256x256mip AND SO ON. now they stored not the biggest mip plus all smaller ones, but started with a smaller one instead. so even if the meta data SAYS its a 2048x2048 texture and it SAYS it starts with mip 2 (which would be 512x512), doesnt mean there is that much data in the chunk! if there is only data for 256x256 and smaller, I can not magically find data that does not exist! Games are cooked! That means resolutions get downgraded to allow portability and what not, so on compiling of the resulting game, the engine decided which sizes it actually wants to store (no need for a 2048er texture, when the ingame object at best gets a handful rendered pixels on screen)

greetz

PS: take your own example:
Hairless_Wookiee wrote:
...
Size X : 1024 (128)
Size Y : 1024 (128)
...
Mip Start : 3
...
Mip Sizes :
(0) -> 1024x1024 = 0x100000 bytes
(1) -> 512x512 = 0x40000 bytes
(2) -> 256x256 = 0x10000 bytes
(3) -> 128x128 = 0x4000 bytes
(4) -> 64x64 = 0x1000 bytes
(5) -> 32x32 = 0x400 bytes
(6) -> 16x16 = 0x100 bytes
(7) -> 8x8 = 0x40 bytes
(8) -> 4x4 = 0x10 bytes
(9) -> 2x2 = 0x10 bytes
(10) -> 1x1 = 0x10 bytes
= 0x155570 bytes


officially its a 1024x1024 texture, but it starts officially at mip 3, from the list below you can see, thats actually 128x128. now if you add all sizes from 10 to including 3, it >should< match the amount of data in the chunk, but it doesnt has to. it can have all mips, then the size would have to match 0x155570, it could also only have data for 64x64 and smaller, thats why you only know the real size after export. I could display the guessed mip start, but you can already see if from the preview, which is always the biggest resolution available
  • Author
  • Localization

warrantyvoider, posted Tue May 02, 2017 6:44 pm (22827)


added BC5_UNORM support (format 63 - 0x3F), this was a bit tricky as you can not directly convert between that format and bmp (it only needs 2 bytes per pixel, bmp has 3 or 4) so I had to add a mid step in conversion and now it works^^
Image

I also updated my DDSCreator tool, because you could surely create BC5 from bmp and save it to dds, but you couldnt directly load it back in until I added the midstep. it also has alot more options now
Image

now on github!

greetz WV

PS: source
  • Author
  • Localization

warrantyvoider, posted Wed May 03, 2017 6:54 pm (22852)


well I guess youve been waiting for this...

texture import and mod support! now on github :D

for now it only accepts a dds as input, which also has to match in data size and format, but with the ddscreator tool this should be no problem.
Happy Modding! :D

Image
Image

also added my first mod for testing here :D

greetz WV
  • Author
  • Localization

epyonx3, posted Thu May 04, 2017 2:54 am (22865)


This is really cool! Any chance this tool can extract audio from the game as well? Specifically conversational audio?
  • Author
  • Localization

warrantyvoider, posted Thu May 04, 2017 3:16 am (22866)


epyonx3 wrote:
This is really cool! Any chance this tool can extract audio from the game as well? Specifically conversational audio?

Why is eveyone always asking for the next thing when i JUST released something?
  • Author
  • Localization

y3804, posted Thu May 04, 2017 5:26 am (22870)


warrantyvoider wrote:
epyonx3 wrote:
This is really cool! Any chance this tool can extract audio from the game as well? Specifically conversational audio?

Why is eveyone always asking for the next thing when i JUST released something?


rip
  • Author
  • Localization

HiveMind, posted Thu May 04, 2017 9:48 am (22872)


I know this will sound very stupid but how do i use plugins? I tought i have to RMB -> Plugins, but when i press nothing happens

Image
  • Author
  • Localization

warrantyvoider, posted Thu May 04, 2017 10:32 am (22873)


the context menu is for editing single things, I havent added support of that into the texture plugin, simply open it from menu
  • Author
  • Localization

FeLLiPe, posted Thu May 04, 2017 11:25 am (22875)


So I'm an absolute noob at this, but I wanted to give the texture import a try. I extracted the texture of the classic N7 helmet, removed the N7 logo and then imported it back in. The preview in the texture plugin showed the new updated texture, but when I went into the game and equipped said helmet, everything started failing to load. In the loadout menu on Tempest, my guns failed to show, only their names, same for armor parts.

I made my own main menu logo to make sure it's not something I'm doing wrong when importing and that one worked without a hitch.
  • Author
  • Localization

warrantyvoider, posted Thu May 04, 2017 11:37 am (22876)


do you use the exact same format for import? how about paths or how should I check this?
  • Author
  • Localization

HiveMind, posted Thu May 04, 2017 11:49 am (22877)


Turns out plugins just doesn't load at all. Here is what i have found in log file
Code:
Error loading plugins: ?? ????? ??????? ?? ??? ??? "PluginTalktableWV, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" ???? ???? ?? ?? ????????. ?????? ?? ????????????. (?????? ?? HRESULT: 0x80131515)
   ? System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   ? System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   ? System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   ? System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   ? MEAExplorerWV.Plugins.Init()

It says 'unable to load file PluginTalktableWV'

I suspect i have to install something. Some new Framework or VS redist?
  • Author
  • Localization

warrantyvoider, posted Thu May 04, 2017 12:16 pm (22878)


right click all dlls and goto properties: check unblock! this is some stupid new win10 feature
  • Author
  • Localization

FeLLiPe, posted Thu May 04, 2017 12:17 pm (22879)


warrantyvoider wrote:
do you use the exact same format for import? how about paths or how should I check this?



It's possible I might be using wrong format, I used the one Texture plugin showed in Info box of said texture (BC3_UNORM for main menu logo and BC7_sRGB for the helmet)

Here are both the original and the edited file for the helmet along with meamod file.
https://www.dropbox.com/s/m0e3cmrlzwds238/N7Helmet.zip?dl=0
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.