 |
 |
GoldenEye 007 Nintendo 64 Community, GoldenEye X, Nintendo 64 Games Discussion GoldenEye Cheats, GoldenEye X Codes, Tips, Help, Nintendo 64 Gaming Community
|
 |
 |
 |
 |
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6173
 |
Posted: Mon Nov 24, 2008 7:45 pm Post subject: Drivable Speedboat & All Bonds ~ MRKane |
 |
|
http://www.goldeneyevault.com/viewfile.php?id=125
I personally love it because you get to play for the most part, as we would've back in the day! All the all bonds are great though, in their different ways. |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Mon Nov 24, 2008 8:15 pm Post subject: |
 |
|
I'll have to give this a try later, they look great. |
|
|
|
|
|
 |
 |
 |
 |
 |
Kode-Z Hacker

Joined: 09 Nov 2007 Posts: 1142 Location: London, England  |
Posted: Tue Nov 25, 2008 12:45 pm Post subject: |
 |
|
I tried it this morning!
Mark did a great job!  |
|
|
|
|
|
 |
 |
 |
 |
 |
Dragonsbrethren Hacker


Joined: 23 Mar 2007 Posts: 3058
 |
Posted: Wed Nov 26, 2008 12:28 am Post subject: |
 |
|
Yeah, Connery and Dalton look great! Moore is a little off, but the readme already mentions having to use a short low-poly model for him, so that's understandable. I did notice that one side of Connery's head seems to be using Brosnan's texture still though, the flesh tone is a little off.
Question, would it be possible to add these modified models to the game without replacing existing characters? (Or does it already do that? I completely forgot to check). |
|
|
|
|
|
 |
 |
 |
 |
 |
MRKane 007

Joined: 11 Dec 2008 Posts: 1076
 |
Posted: Thu Dec 11, 2008 9:18 pm Post subject: |
 |
|
Wow...and I stumble in on this. Guess I don't get out enough.
I've been pottering around with the file editing utility that's included with the editor, and have been making a few fun changes.
Wonder if that'll work...? Well I like to call the first one "Elvis Bond" but it's a pretty quick hack. Basically I've been getting into the nuts and bolts of the model files and picking vertex information apart. Hopefully to achieve a more accurate "All Bonds" and make that tank into a speed boat for use with the dam (the beta of which has fixated me for years).
So far I've managed to nut out the vertex information and texture pointers, but the face information and UV mapping have escaped me - I'm still browsing for more information in this forum, but any help is always appreciated.
As for connery - if I remember right there's vertex colour issues with the hair, and I might have forgotten something - I'll look at that with the next patch.
The patch only replaces the character selections and the scientist model, however the next one (if I get around to it) will use unused character slots for the bodies which should remove that Moore bug - yet if I could put money on it, I'd say that's a scaling thing that's sorced in the 02199 stuff.
Glad you liked it.[/img] _________________ No Mr. Bond, I expect you to be re-coded! |
|
|
|
|
|
 |
 |
 |
 |
 |
Wreck Administrator


Joined: 14 Dec 2005 Posts: 7252 Location: Ontario, Canada  |
Posted: Fri Dec 12, 2008 1:52 am Post subject: |
 |
|
Haha, mohawk Bond is priceless!
Do I sense a Mr. T custom model in the future?
Awesome to see someone venturing down this path. I haven't had a chance to check out your All Bonds patch in-person, but the pictures on the Vault look very nice. As long as you keep at it, I'm sure each new release will become better and better. Great stuff, Mr. Kane. _________________
YOUTUBE | TWITTER/X | FACEBOOK | VAULT | MOD DB | RHDN |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6173
 |
Posted: Fri Dec 12, 2008 5:10 am Post subject: |
 |
|
The u,v information is in the vertex file - each line is 0x10, it's from 0xA to 0xE (two bytes each), but it's in a weird converted format. Here's the C++ code for vertices, ignore FlipBytes (just due to how C++ reads in and imageplacement is *later* scaled by image width/height):
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].xcoord = -((float) tempcoord + startX);
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].ycoord = (float) tempcoord + startY;
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].zcoord = (float) tempcoord + startZ;
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].unknown = tempcoord;
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].ximageplacement = (float) tempcoord;
roomPoints[x+roomPointsOffset].ximageplacement = (((roomPoints[x+roomPointsOffset].ximageplacement * 8.0f) / 256.0f));
fread(&tempcoord, 2, 1, inRoomPoints);
tempcoord = Flip16bit(tempcoord);
roomPoints[x+roomPointsOffset].yimageplacement = (float) tempcoord;
roomPoints[x+roomPointsOffset].yimageplacement = (((roomPoints[x+roomPointsOffset].yimageplacement * 8.0f) / 256.0f));
fread(&roomPoints[x+roomPointsOffset].red, 1, 1, inRoomPoints);
fread(&roomPoints[x+roomPointsOffset].green, 1, 1, inRoomPoints);
fread(&roomPoints[x+roomPointsOffset].blue, 1, 1, inRoomPoints);
fread(&roomPoints[x+roomPointsOffset].alpha, 1, 1, inRoomPoints); |
|
|
|
|
|
 |
 |
 |
 |
 |
monkeyface Moderator


Joined: 05 Apr 2008 Posts: 275
 |
Posted: Fri Dec 12, 2008 6:53 am Post subject: |
 |
|
MRKane wrote: | Wow...and I stumble in on this. Guess I don't get out enough.
I've been pottering around with the file editing utility that's included with the editor, and have been making a few fun changes.
Wonder if that'll work...? Well I like to call the first one "Elvis Bond" but it's a pretty quick hack. Basically I've been getting into the nuts and bolts of the model files and picking vertex information apart. Hopefully to achieve a more accurate "All Bonds" and make that tank into a speed boat for use with the dam (the beta of which has fixated me for years).
So far I've managed to nut out the vertex information and texture pointers, but the face information and UV mapping have escaped me - I'm still browsing for more information in this forum, but any help is always appreciated.
As for connery - if I remember right there's vertex colour issues with the hair, and I might have forgotten something - I'll look at that with the next patch.
The patch only replaces the character selections and the scientist model, however the next one (if I get around to it) will use unused character slots for the bodies which should remove that Moore bug - yet if I could put money on it, I'd say that's a scaling thing that's sorced in the 02199 stuff.
Glad you liked it.[/img] |
That's great. Too bad I have no idea on how to do it.
Subdrag, do you know why the "idle" pose when you export characters is some sort of fakir-esque maze of limbs? It's impossible to alter the model, since you have no idea of what you're editing. Have you looked into skeletons and/or animations? Can .obj files contain skeletons and animations? |
|
|
|
|
|
 |
 |
 |
 |
 |
MRKane 007

Joined: 11 Dec 2008 Posts: 1076
 |
Posted: Fri Dec 12, 2008 1:48 pm Post subject: |
 |
|
Thanks SubDrag! That's making a little more sense now. Also there is a "Repeat" in the vertex data - I use that term loosley as it's incomplete. I thought it defined faces at first, but alas - I still can't nut out where the faces are stored. The model is making the clipping look simple at this stage.
Mr T...I'm seriously liking that idea...pity the foo'... _________________ No Mr. Bond, I expect you to be re-coded! |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6173
 |
|
|
|
|
|
 |
 |
 |
 |
 |
MRKane 007

Joined: 11 Dec 2008 Posts: 1076
 |
Posted: Sat Dec 13, 2008 10:58 pm Post subject: |
 |
|
Why is it never as easy as saying: It's here...lol
Well I'll have a pick through that, I can happily say at first glance all of that means nothing, but like the clipping - figure it can't be that difficult to nut out.
In saying that djBond is about the most complicated player model present in Goldeneye, and definatley the heaviest - also one that I've never bothered looking at. I still have no idea how Zoinkity managed to nut all of this out...I guess I live in awe.
Well heaps of thanks for the hand! You know how often I drop by with these sort of things, but will try to make it often  _________________ No Mr. Bond, I expect you to be re-coded! |
|
|
|
|
|
 |
 |
 |
 |
 |
MRKane 007

Joined: 11 Dec 2008 Posts: 1076
 |
Posted: Wed Dec 17, 2008 10:20 pm Post subject: |
 |
|
Ok - again I'm in need of help - I just can't seem to find out where the information for the faces is stored. Any hints as to how this is coded? I've nutted out the verticies, and wondered if it was the data-set afterwards but it doesn't seem to change anything. Any help appreciated! _________________ No Mr. Bond, I expect you to be re-coded! |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6173
 |
Posted: Thu Dec 18, 2008 5:52 am Post subject: |
 |
|
Oops, didn't realize you were after heads! Heads are separate from models. Here's Zoinkity's doc on heads:
simple heads:
Simple heads only have one head model (no distance model present). They follow a very simple header format as shown here (taken from Trevhead). All require 2 offsets at the beginning of the file and only contain one line of points and mapping.
header:
00000000 00000000 00000000 0002 0001
433E9EA3 0000 0004 00000000 00000000
2 offsets, 4 images
offsets: (2)
0x0 00000000
0x4 00000000
images: (4)
000007F4 20200000 02000000
000007F8 20400000 02000000
000007F9 20400000 02000000
000007FC 20200000 02000000
Table:
00180000 05002390 00000000 00000000 00000000 00000000
point display struct:
050023B0 00000000 05000050 0198 0069 050019D0 05002060 0003 0000 00000000
mapping at 0x23B0
normal point table at 0x50; 0x198 entries
collision point table at 0x19D0; 0x69 entries
point usage table at 0x2060
--------
Complex heads:
Complex heads have mulitple head models (distance-specific models) or multiple objects attached to the head, such as sunglasses. These use slightly more complicated file tables. This example is of CheadmartinZ. Run headmartinZ run.
Complex heads *will* have 1-2 offset values preset.
First is to the 12-relative command for sunglasses.
Second is to 12-relative command for distance model (low-res)
header:
00000000 00000000 00000000 0002 0001
435E5914 0000 0006 00000000 00000000
2 offsets, 6 images
offsets: (2)
0x0 050000B0
0x4 05000068
images: (6)
0x8 000007CC 20200600 02000000
0x14 000007CB 10200600 02000000
0x20 0000073E 20400000 02000000
0x2C 0000073F 20400000 02000000
0x38 0000073D 20400000 02000000
0x44 00000740 20300400 02000200
Table:
0x50 00120000 050000E0 00000000 00000000 00000000 05000068
0x68 00120000 050000E8 05000050 05000098 00000000 05000080
0x80 00180000 050001BC 05000068 00000000 00000000 00000000
0x98 00180000 05000780 05000050 050000B0 05000068 00000000
0xB0 00120000 050007A0 05000050 00000000 05000098 050000C8
0xC8 00180000 05000A30 050000B0 00000000 00000000 00000000
relative:
0xE0 05000068 00000000
relative:
0xE8 05000080 00000000
point display struct: //low-res head
0x1BC 05000A50 00000000 050000F0 0006 0006 05000150 050001B0 0003 0000 00000000
mapping @ 0xA50
normal point table @ 0xF0; 6 normal points
collision points @ 0x150; 6 collision points
point usage table @ 0x1B0
point display struct: //hi-res head
0x780 05000AB0 00000000 050001E0 0038 001B 05000560 05000710 0003 0000 00000000
mapping @ 0xAB0
normal point table @ 0x1E0; 38 normal points
collision points @ 0x560; 1B collision points
point usage table @ 0x710
relative:
0x7A0 050000C8 00000000
point display struct: //sunglasses
0xA30 05000B98 05000BF0 050007A8 0014 0012 050008E8 05000A08 0003 0000 00000000
mapping @ 0xB98
collisionless mapping @ 0xBF0
normal point table @ 0x7A8; 14 normal points
collision points @ 0x8E8; 12 collision points
point usage table @ 0xA08 |
|
|
|
|
|
 |
 |
 |
 |
 |
MRKane 007

Joined: 11 Dec 2008 Posts: 1076
 |
Posted: Tue Dec 23, 2008 4:48 pm Post subject: |
 |
|
Oh...man I've sent you on a wild goose chase.
I meant "Face data" as in "Polygon" data. I've managed to tap out pretty much everything with the tank, and have been turning it into a boat - however - the vertex information is easily inserted, but I can't figure out the texture and polygon information. Now I don't have my doco here, but I think it's this:
Main tank body (because I can't remember the turret or the cannon)
vertex data: 0x300 - 0x1720
collisions/normals: 0x1720 ~ 0x2100
Polygon data about here? 0x2100+?
Thing is, I can't figure out where/how the polygon data is stored. I figure it'll be similar to a standard object (which is how I'd do it if I were them) but I can't figure that out either!
[PattyLarkin] Anyway the main thing is [/PattyLarkin] Merry Christmas everyone! Looks like it'll be an exciting year ahead here and thanks for all the help! _________________ No Mr. Bond, I expect you to be re-coded! |
|
|
|
|
|
 |
 |
 |
 |
 |
SubDrag Administrator

Joined: 16 Aug 2006 Posts: 6173
 |
Posted: Tue Dec 23, 2008 6:43 pm Post subject: |
 |
|
Also from Zoinkity:
header:
00000000 8003A208 00000000 00090005
45C496B8 00000018 00000000 00000000
5 models; 9 offsets, 24 images
offsets: (9)
0x0 05000144
0x4 0500018C
0x8 05000204
0xC 0500021C
0x10 05000234
0x14 0500015C
0x18 050001A4
0x1C 0500024C
0x20 05000264
images: (1
0x24 0000056E 20200600 02000000
0x30 00000578 20200600 02000000
0x3C 00000374 20200000 03020200
0x48 0000092B 40200700 01000000
0x54 00000571 20200600 02000000
0x60 0000056F 20200600 02000000
0x6C 0000092C 20200600 02000000
0x78 0000092D 20200600 02000000
0x84 0000092E 20200600 02000000
0x90 0000092F 20200600 02000000
0x9C 00000930 40400700 00000000
0xA8 00000931 40400700 00000000
0xB4 00000932 20400700 01000000
0xC0 000005B8 40400700 00000000
0xCC 00000933 40400700 00000000
0xD8 000001ED 20400700 01000000
0xE4 00000934 40400700 00000000
0xF0 00000935 40400700 00000000
0xFC 00000936 40400700 00000000
0x108 00000937 40400700 00000000
0x114 00000938 40400700 00020200
0x120 0000002E 10800700 01020200
0x12C 00000939 40400700 00020200
0x138 000005EA 01010100 02000000
Table:
0x144 00020000 050002C4 00000000 00000000 00000000 0500015C
0x15C 000A0000 050002E0 05000144 0500018C 00000000 05000174
0x174 00180000 050020F4 0500015C 00000000 00000000 00000000
0x18C 00020000 05002114 05000144 00000000 0500015C 050001A4
0x1A4 000A0000 05002130 0500018C 050001D4 00000000 050001BC
0x1BC 00180000 050031BC 050001A4 00000000 00000000 00000000
0x1D4 000A0000 050031DC 0500018C 05000204 050001A4 050001EC
0x1EC 00180000 05003390 050001D4 00000000 00000000 00000000
0x204 00020000 050033B0 0500018C 0500021C 050001D4 00000000
0x21C 00020000 050033CC 0500018C 00000000 05000204 05000234
0x234 00020000 050033E8 0500021C 05000294 00000000 0500024C
0x24C 000C0000 05003404 05000234 05000264 00000000 00000000
0x264 00120000 0500342C 05000234 00000000 0500024C 0500027C
0x27C 00160000 050034F8 05000264 00000000 00000000 00000000
0x294 000A0000 05003508 0500021C 00000000 05000234 050002AC
0x2AC 00180000 05003D90 05000294 00000000 00000000 00000000
position:
0x2C4 00000000 C3C11C7D C31A3FF8 00000000 FFFFFFFF 0500018C 4568C7A3
dimentions:
0x2E0 00000001
C4BEA000 44BEA000
C48E6000 43C10000
C5542000 45546000
point display struct:
0x20F4 05003DB0 00000000 05000300 0149 006D 05001790 05001E60 0004 0000 00000000
mapping @ 0x3DB0
normal point table @ 0x300; 149 normal points
collision point table @ 0x1790; 6D collision points
point usage table @ 0x1E60
position:
0x2114 C11C97B1 43C11C7D 43C33F76 0001 0001 FFFFFFFF 05000204 452D0453
dimentions:
0x2130 00000002
C492C000 4492C000
00000000 442DC000
C49A6000 44A4A000
point display struct:
0x31BC 05004120 00000000 05002150 00B5 003B 05002CA0 05003050 0004 0000 00000000
mapping @ 0x4120
normal point table @ 0x2150; B5 normal points
collision point table @ 0x2CA0; 3B collision points
point usage table @ 0x3050
dimentions:
0x31DC 00000003
C407C000 43CC8000
442DC000 4525F000
C42D0000 C4190000
point display struct:
0x3390 050042D8 050042F0 050031F8 000C 000C 050032B8 05003378 0004 0000 00000000
mapping @ 0x42D8
normal point table @ 0x31F8; C normal points
collision point table @ 0x32B8; C collision points
point usage table @ 0x3378
position:
0x33B0 C389FCDB 442DC2D4 C3C094BB 0002 0002 FFFFFFFF 00000000 00000000
position:
0x33CC 411C97B1 4398C8D6 44913A0C 0003 0003 FFFFFFFF 05000234 45581CDF
position:
0x33E8 B58637BD BF11AB08 4557FA1B 0004 0004 FFFFFFFF 00000000 448790C6
fire size and position:
0x3404 00000000 40A00000 00000000 4505F000 44804000 447A0000 0500003C 45377EEB 00000000 00000000
relative:
0x342C 0500027C 00000000
unknown display struct: //uses image 374 (fire of some type). Could be special firing flag type?
0x34F8 00000003 05003438 05004358 00000000
point table @ 0x3438
mapping @ 0x4358
dimentions:
0x3508 00000004
C3908000 43908000
C38D8000 438B8000
C3B80000 45580000
point display struct:
0x3D90 050043E8 00000000 05003528 0054 0028 05003A68 05003CE8 0004 0000 00000000
mapping @ 0x43E8
normal point table @ 0x3528; 54 normal points
collision point table @ 0x3A68; 28 collision points
point usage table @ 0x3CE8 |
|
|
|
|
|
 |
 |
 |
 |
 |
|
 |
 |
 |
 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
 |