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.

Are there any tools to extract models from EA UFC 2,3,4

Featured Replies

  • Author
1 hour ago, 2wrwrw3rw3r said:

The Textures and heads are compressed and can be decompressed using this bms script RX3Decompressor.zip

that worked for every texture apart from head_conor_mcgregor_normal.gnf, working in terms of noesis can read .gnf but yeah i get this error from quick bms when trying to do the normal.gnf 


  offset           filesize   filename
--------------------------------------
+ 0000000000000030 179319     Decompressed\\head_conor_mcgregor_normal.gnf
+ 000000000002bcb0 251617     Decompressed\\head_conor_mcgregor_normal.gnf
+ 00000000000693a0 260080     Decompressed\\head_conor_mcgregor_normal.gnf
+ 00000000000a8ba0 262144     Decompressed\\head_conor_mcgregor_normal.gnf
Info:  algorithm   478
       offset      00000000000a8ba0
       input size  0x0000000000040000 262144
       output size 0x0000000000040000 262144
       result      0xfffffffffffffff6 -10

Error: uncompressed data (-10) bigger than allocated buffer (262144)
       It usually means that data is not compressed or uses another algorithm

Last script line before the error or that produced the error:
  20  clog Name Offset ZSize ZSize

- OFFSET       0x00000000000a8ba0
- ZSIZE        0x0000000000040000
- SIZE         0x0000000000040000
  coverage file 0    36%   953204     2584893    . offset 00000000000e8ba0 "

  • Replies 113
  • Views 9.8k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • I know I’ve already posted my progress with materialising Mike Tyson but I thought I’d show these also as I managed to convert the normals from green to purple which for me personally and unity mods i

  • 2wrwrw3rw3r
    2wrwrw3rw3r

    for the mcgregors normal you can use this bms Decompressor.zip

  • 2wrwrw3rw3r
    2wrwrw3rw3r

    I tried using the head models and tested two of them (DDP and Rovyal). I was able to get the models to work. From my understanding, all of the heads share the same offsets and parameters, so if you ca

Posted Images

  • Supporter

The error of the RX3Decompressor is due to wrong size of block (because of wrong addr)

an uncompressed block.

Not sure about the addr problem:  0xa8ba0

edit: very interesting! I compared the output of Aluigi's script (see some posts below) with my manual extraction, it looks like the block starts with 20E0197E (instead of 28B52FFD). So it's uncompressed data!

------------------------------------------------------------------------------

So I missed that block. (I used: )

0. 0x30 179319
1. 0x2bcb0 251617
2. 0x693a0 260080

<missing block>
3. 0xe8bb0 261271
4. 0x168860 259409
5. 0x1a7dc0 192787
6. 0x1d6ee0 240488
7. 0x211a50 249631
8. 0x24e980 165821

for decompressing/concatenating but the resulting gnf is not readable by Noesis.

 

@Rabatini: fyi

head_conor_mcgregor_normal.zip

Edited by shak-otay

  • Author
21 minutes ago, Rabatini said:

It´s because, maybe this files have some extra header.
send me one compressed.

did send but notice ahead was already sent, removed upload

Edited by Conyaboi28

1 hour ago, Conyaboi28 said:

So with that bms script, decompressing the textures will make noesis read the .gnf files or will it make the zstdmagicextractor work for the normals also not just the diffuse maps 

it will make noesis read the .gnf files 

20 minutes ago, shak-otay said:

The error of the RX3Decompressor is due to wrong size of block.

Not sure about the problem:  0xa8ba0

correct 0xe8bb0

Could be a signed error, but bb0 and ba0 are not to explain
0xa 0101
0xe 1101

I used

0. 0x30 179319
1. 0x2bcb0 251617
2. 0x693a0 260080
3. 0xe8bb0 261271  <<<
4. 0x168860 259409
5. 0x1a7dc0 192787
6. 0x1d6ee0 240488
7. 0x211a50 249631
8. 0x24e980 165821

for decompressing/concatenating but the resulting is not readable by Noesis:

test1-9-normal.zip 1.97 MB · 0 downloads

@Rabatini: fyi

head_conor_mcgregor_normal.zip 2.46 MB · 2 downloads

for the mcgregors normal you can use this bms Decompressor.ziphead_conor_mcgregor_normalout.thumb.png.f3b05ef78a0a41571c4cdde64e5dc14a.png

  • Author
21 minutes ago, 2wrwrw3rw3r said:

it will make noesis read the .gnf files 

yeah i got that, good script but yeah like i said above, i cant get the normals to decompress with that

 

edit - just noticed you posted other script, thanks man, i need to start reading before i comment more lol 

Edited by Conyaboi28

  • Author
48 minutes ago, 2wrwrw3rw3r said:

Decompressor.zip

 

1 hour ago, Conyaboi28 said:

RX3Decompressor.zip

funny enough rx3decompressor worked for the body normal but for the head normal had to use decompressor 

 

update - the rx3decompressor worked for brock lesnar head normal, so i think it varies from different fighter, if a normal doesnt work from that then switch to decompressor, easy does it. well i think thats the texture problem solved for now unless someone makes a noesis script to read the compressed .gnf files, its just now getting the objects with the correct uv maps and cleaning up the submeshes if used by hextoobj. noesis py script for ufc 4 .mcd next step 

Edited by Conyaboi28

  • Supporter
31 minutes ago, Conyaboi28 said:

 

funny enough rx3decompressor worked for the body normal but for the head normal had to use decompressor 

It's just a different signature of one block (at 0xA8BA0) in the head normal, afaics.

So the trick is, it's uncompressed! And needs to be concatenated uncompressed. Hell, wtf...

edit:

Quote

if a normal doesnt work from that then switch to decompressor, easy does it

Why not always use Aluigi's Decompressor.bms? To avoid any hassle.

Edited by shak-otay

  • Author
18 hours ago, shak-otay said:

Atm I need to check the format, because 26 MRTS and 10 xdni blocks need a formal approach other than my usual hacking.

edit: ConnorMcGregor, UFC4:

ConnorMcGregorUCF4.png

edit: uvs done:

CMcG_head_uvs.png.9937beee5f9ef3d411aa88b5f09ab7ca.png

obj file attached, without normals, though there's two blocks of them

 

hCMG1-12decomp_ConnorMcG.zip 167.45 kB · 2 downloads

going back to this, how do i correct it all to make uvs correct and submeshes cleaned into just meshes so the model can have the textures applied to it properly because at the moment i get this, eyes broken and blocks all over

Desktop Screenshot 2025.11.02 - 13.08.33.48.png

39 minutes ago, shak-otay said:

Why not always use Aluigi's Decompressor.bms? To avoid any hassle.

does that work with all then cus if so then yeah makes sense ill just use that only

Desktop Screenshot 2025.11.01 - 01.59.40.38.png

Edited by Conyaboi28

  • Author
51 minutes ago, shak-otay said:

Which obj did you use?

The one from here works like a charm:

ConnorMcGregor-diffuse.png

I’m pretty sure I’m using that obj, but again there’s no eye models included in the head model and its giving me errors, what program is that 

  • Supporter

It's pre 2.9 blender.

Quote

as the one I sent was a basic tester, full models have separate head, hair, body, gloves, shorts, mouthguard

I checked for the head only (from basic tester).

If you send the separate body I'll check that to give instructions how you can get the rest.

3 hours ago, shak-otay said:

It's just a different signature of one block (at 0xA8BA0) in the head normal, afaics.

So the trick is, it's uncompressed! And needs to be concatenated uncompressed. Hell, wtf...

edit:

Why not always use Aluigi's Decompressor.bms? To avoid any hassle.

Yes, you can just always run the decompressor ones. 

2 hours ago, Conyaboi28 said:

going back to this, how do i correct it all to make uvs correct and submeshes cleaned into just meshes so the model can have the textures applied to it properly because at the moment i get this, eyes broken and blocks all over

Desktop Screenshot 2025.11.02 - 13.08.33.48.png

does that work with all then cus if so then yeah makes sense ill just use that only

Desktop Screenshot 2025.11.01 - 01.59.40.38.png

The UV's are upside down, you have to go inside blender uv editor and you have to rotate the uvs 180 degrees for the textures to show up all lined up , alternatively you can flip the texture image itself

 

26 minutes ago, 2wrwrw3rw3r said:

The UV's are upside down, you have to go inside blender uv editor and you have to rotate the uvs 180 degrees for the textures to show up all lined up , alternatively you can flip the texture image itself

Okay thanks man I’ll give that a go, see what I get in my results

1 hour ago, shak-otay said:

If you send the separate body I'll check that to give instructions how you can get the rest.

heres hair model, cant send body yet as dont know which one it is until i connect model to head model, bodies arent named by fighter, as some fighters use the same bodies 

conor hair mcd.rar

52 minutes ago, 2wrwrw3rw3r said:

The UV's are upside down, you have to go inside blender uv editor and you have to rotate the uvs 180 degrees for the textures to show up all lined up , alternatively you can flip the texture image itself

lovely stuff, again sorry im a rookie so i had no idea. if shak-otay manages to do this for all mcd in conor mcgregor files, could have a complete ufc 4 model ripped. problem is though with the bodies being unnamed and just different types of bodies not neccessarily unique to that fighter i cant find which is the right body unless shak-otay did this for all male bodies .mcd which i can assure he wont. if theres a hex value or file that tells us what body he uses then thatll make it easier. once i know the body i know the shorts and gloves. when he gives me step by step on how to do ill be doing it myself. 

Desktop Screenshot 2025.11.02 - 16.49.32.17.png

1 hour ago, Conyaboi said:

lovely stuff, again sorry im a rookie so i had no idea. if shak-otay manages to do this for all mcd in conor mcgregor files, could have a complete ufc 4 model ripped. problem is though with the bodies being unnamed and just different types of bodies not neccessarily unique to that fighter i cant find which is the right body unless shak-otay did this for all male bodies .mcd which i can assure he wont. if theres a hex value or file that tells us what body he uses then thatll make it easier. once i know the body i know the shorts and gloves. when he gives me step by step on how to do ill be doing it myself. 

Desktop Screenshot 2025.11.02 - 16.49.32.17.png

i think ea uses generic body types for the everyone, you can probably just use the ufc 3 bodies and you'll probably find one which will line up with McGregor, for the eyes and eyelashes you can probably line them up to his model in blender 

1 hour ago, 2wrwrw3rw3r said:

i think ea uses generic body types for the everyone, you can probably just use the ufc 3 bodies and you'll probably find one which will line up with McGregor, for the eyes and eyelashes you can probably line them up to his model in blender 

That’s how I got the Mike Tyson model prepped, I just added each .mcd that I converted to fbx till they lined up and looked accurate. Then I knew the body, then because the body is numbered you just use the same number on gloves and shorts, may use different textures though. UFC 3 bodies may work and connect to his head model but I don’t think they’re the same as ufc 4 bodies 

  • Supporter

@Conyaboi: well, I put much too much effort into this so the instructions are kept very condensed, just to say so.

edit: @all: for all those who just step in here: UFC 4 .mcd (and .gnf, texture) are zstd compressed.

Use Aluigi's Decompressor.bms to be found in this thread to decompress them. hex2obj needs an uncompressed file. (Decompressed .gnf textures can be read by Noesis from Rich Whitehouse.)

-----------------------------------------------------------------------------

Checking the .mcd file, Conor's hair:

the FVFsize is 16 for the hair here (but was 12 for the head, as you may remember).

If you run intro troubles getting the parameters for the body feel free to ask. But you'll need to learn some basics of 3D formats.

(Maybe someone will create a script for UFC 4 .mcd files. I, for one, am finished here).

a) Conor's hair in hex2obj (checked one sub mesh only)

Conor_hair_hex2obj.thumb.png.394e2aaada1114cb960425da6c68fd72.png:

b) Getting face index start address (search for xndi) :

ConorHair_firstfaceindex.thumb.png.e3f36e9dcad52bb06f9fed3b6859a06b.png

c) Getting start of vertex blocks (search for MRTS) :

Conor_HairVertexstart.png.8449aa6dc696142f2a64f1feec1c3c64.png

d) Last, not least, the uvs (skipping 2 MRTS blocks of normals, usually) :

Conor_hair_uvs.png.43f834212d51a229a174a5a2a9453971.png

HTH

edit: to get the mesh with uvs as a wavefront obj file you'll need to select File\SaveAs mesh

 

Edited by shak-otay

1 hour ago, shak-otay said:

@Conyaboi: well, I put much too much effort into this so the instructions are kept very condensed, just to say so.

The FVFsize, which is 16 for the hair here was 12 for the head, as you may remember.

If you run intro troubles getting the parameters for the body feel free to ask. But you'll need to learn some basics of 3D formats.

(Maybe someone will create a script for UFC 4 .mcd files. I, for one, am finished here).

a) Conor's hair in hex2obj (checked one sub mesh only)

Okay thanks I will try my best to follow this and if i struggle getting parameters I’ll be sure to @ you. You’ve been a big help so I appreciate that. 

@2wrwrw3rw3r did you ever try getting in contact with the person who made the py for the ufc 1-3 models, might be worth seeing if they would add ufc 4 or make one 

 

edit- do you know the .gnf for mcgregors shorts in ufc 3, the shorts with his name on

Edited by Conyaboi

Create an account or sign in to comment

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.