ShootersForever.com Forum Index

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


Citadel
Goto page Previous  1, 2
 
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department
View previous topic :: View next topic  
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1684

 PostPosted: Mon Aug 27, 2012 8:42 am    Post subject: Reply with quote Back to top

Oops! Sorry! I meant 'greater than decagon'. Anything over ten sides.
The > decagon issue applies to all clipping tiles unless you applied a very specific patch to eliminate it. There's also a related 'nonpolygon issue' I'll get to in a moment.

Technically they aren't supposed to be polygons but triangles with segments cut in each face, and that explains some of the peculiar behaviour when one of the 'split' sides is ridiculously oversized or when the segmentation isn't evenly distributed.

Background:
Tiles all consist of a header that's 8 bytes long, followed by side info that's another 8 each side. So, to work out the size of a tile entry all you really need to know is the number of sides.
Code:
triangle:
8  header
8  side 1
8  side 2
8  side 3
total: 0x20

quad:
8  header
8  side 1
8  side 2
8  side 3
8  side 4
total: 0x28

etc.


The issue lies in that the tile parser uses an offset table instead of caluclating the size, leading to the two problems just mentioned. The table has only eleven entries and is found at 80040F4C, or 0x201BC in the root compressed file.
Code:
0x20  0 sides
0x20  1 side
0x20  2 sides
0x20  3 sides
0x28  4 sides
0x30  5 sides
0x38  6 sides
0x40  7 sides
0x48  8 sides
0x50  9 sides
0x58  10 sides

Any more sides than 10 will be undefined, or more appropriately will be 0, then 0x80, then undefined, since the next couple values are guaranteed. Either way, they won't work except by accident.

You'll also notice that any sides less than 3 will be assumed to be the same size as three by this parser. In actual fact there's more than one, each for a specific purpose. That isn't ideal design, since you should really just have a function dedicated to it when you're doing the exact same thing in a couple places, but that's how it goes. So, this parser expects one size, and the other will calculate the size.

There is a patch that radically alters the clipping parser to eliminate this behaviour, but there are other disadvantages to using obscenely-sided tiles. First off has to do with search paths and interlinkage, and the second with conceptual design implying these are segments of a single triangle and demanding an equal division of sides.

Of course, we didn't work that mess out until much later, so Citadel is the worst example of a custom floor. Compare that to Car Park or Chicago, also done by hand but after most of the issues were finalized.
Actually, Chicago needs a new background dump, because that was before we realized how to export env. mapped stuff to GE. Any time you see crazy swirly colors like that it's probably normals being read like vertex colors.
_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
 
View user's profile Send private message Send e-mail
Wreck
Administrator
Administrator


Joined: 14 Dec 2005
Posts: 7197
Location: Ontario, Canada

 PostPosted: Mon Aug 27, 2012 9:29 am    Post subject: Reply with quote Back to top

I wonder if there needs to be something special done for the environment mapping in stage backgrounds for GoldenEye into Perfect Dark? I've noticed a bit of strange behaviour with it in some ports. Might need to take a good look at it.
_________________

YOUTUBE | FACEBOOK | VAULT | MOD DB | RHDN
 
View user's profile Send private message Visit poster's website
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6118

 PostPosted: Wed Aug 29, 2012 7:04 pm    Post subject: Reply with quote Back to top

My environment mapping test in pd didn't work perfectly... I wonder if rgbs still aren't autoported perfectly.
 
View user's profile Send private message
Rey
007
007


Joined: 07 Feb 2012
Posts: 785
Location: US

 PostPosted: Thu Aug 30, 2012 11:51 am    Post subject: Reply with quote Back to top

If the setup been of Citadel doesent have clipping,then how am I able to add presets?
_________________
www.youtube.com/gamerrey23
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1684

 PostPosted: Thu Aug 30, 2012 2:04 pm    Post subject: Reply with quote Back to top

Do you see at the top of the window how it says 'Zoinkity's Citadel'?
The original clipping file isn't compatible with the engine for a couple silly reasons, least being that all the positions are float values and the headers are formatted differently. So, instead, it loads my clipping file instead. Just one more thing the editor does behind your back ;*)

If you open the clipping folder you'll see two files for Citadel:
844010.bin, which is mine
844010citadelreal.bin, which is the original, incompatible one.

Did figure out the format of it actually, and one day if I'm bored enough I'll port the original back into modern GE format for the heck of it. I've actually concidered doing it just to align my own tiles to their original pad values. No real point to it, but hey.

Original clipping and tile format:
Code:
clipping file format
0x0   4   RESERVED
0x4   4   offset to tiles
0x8   4   NULL-terminated list of offsets to certain flagged tile sets
...   var.   tiles, terminated with 'unstric'
...   var.   pad string names

tile format:
0x0   4   offset to pad string name
0x4   2   flags for attributes and lighting
   0F00   4-bit Red lighting component
   00F0   4-bit Green lighting component
   000F   4-bit Blue lighting component
0x6   1   special attribute
   0   normal tile
   1   kneeling
   3   ladder
0x7   1   room#
0x8   1   #vertices
0x9   1   primary vertex 1
0xA   1   primary vertex 2
0xB   1   primary vertex 3
0xC   var.   vertices, 0x10 each

vertex format:
0x0   4   (float) x position
0x4   4   (float) y position
0x8   4   (float) z position
0xC   4   offset to connected tile

_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!


Last edited by zoinkity on Mon Sep 10, 2012 6:40 am; edited 1 time in total
 
View user's profile Send private message Send e-mail
SubDrag
Administrator
Administrator


Joined: 16 Aug 2006
Posts: 6118

 PostPosted: Thu Aug 30, 2012 2:12 pm    Post subject: Reply with quote Back to top

That's interesting. So the original clipping engine actually connected the bgfile to clipping tile, but no connections between tiles? I wonder if they started down this road, and just wasn't working right so had to do completely separate?
 
View user's profile Send private message
Rey
007
007


Joined: 07 Feb 2012
Posts: 785
Location: US

 PostPosted: Thu Aug 30, 2012 2:54 pm    Post subject: Reply with quote Back to top

So most of the items are basically toggled in the air? I can't find the clipping file you you mentioned.
_________________
www.youtube.com/gamerrey23
 
View user's profile Send private message
zoinkity
007
007


Joined: 24 Nov 2005
Posts: 1684

 PostPosted: Thu Aug 30, 2012 4:28 pm    Post subject: Reply with quote Back to top

There are connections between tiles. The last word is an offset directly linking one tile to the next. It's the same thing as the offset values, except no offsetting. The pad pointers are handy too, although the binary form is shorter. Personally I wish they used the binary form in setups as well.

One huge advantage of the old format is it supports >0xFE rooms and very precise positions, so really you don't need to worry about a 'best fit' to geometry at a given scale.

The modern format though isn't just more compact, but easier to parse. Instead of 0xC headers and 0x10 vertices, you have 0x8 for either--a simple <<3. Plus, it doesn't contain any more or less data in the end. Also, unstrict no longer is a special case but uses a formatting element, detecting an empty tile as the end of the list.


The file may have been pulled out of more recent installations. I have GE editors going back to beta pre-release ones. It was in version 1 releases and some of the earlier version 2s. It can also be pulled manually or with the standalone file dumper.

Converted file:
http://www.mediafire.com/?3f2dmffrix0b8di
_________________
(\_/) Beware
(O.o) ze
(> <) Hoppentruppen!
 
View user's profile Send private message Send e-mail
Johnny Thunder
00 Agent
00 Agent


Joined: 10 Jan 2017
Posts: 482
Location: Mexicali, Baja California, Mexico

 PostPosted: Tue Apr 11, 2017 9:39 pm    Post subject: Reply with quote Back to top

That interesting, I plan, possibly after finishing my mod, I will do a Citadel mission, but in what if I will have serious difficulty will be to make the sets so that the enemies walk
_________________
Johnny Thunder masterpiece:
RickRollEye 64

Visit my youtube channel:
Johnny Thunder: The Revenger

Visit My discord:
Afterwards Studios
 
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    ShootersForever.com Forum Index -> Q-Lab Hacking Department All times are GMT - 8 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
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

Cobalt 2.0 BB theme/template by Jakob Persson.
Copyright © 2002-2004 Jakob Persson


Powered by BB © 01, 02 BB Group

 


Please Visit My Other Sites: GoldenEyeForever.com | GrandTheftAutoForever.com

Got kids? Check out my Dora The Explorer site with games and coloring pages!

Our forums feature Nintendo 64 games, GoldenEye 007 N64 New Maps and Missions, GoldenEye Cheats, N64 Emulator, Gameshark, GoldenEye Multiplayer and more!

[ Privacy Policy ]