What happened to OC? - CLOSED Carnage?!
Sign in to follow this  
Followers 0
WaeV

Halo Discoveries Log

Sometimes I run across interesting tidbits about Halo's inner workings in chatrooms. If it's very interesting or original work, I try to remember to save it in notepad for later. I think this information should generally be made available to people, regardless of whether they happened to be online at the right time.

 

This thread should be a community log for Halo discoveries, but I'll seed it with things I've saved.

 

========

 

tl;dr 32-bit tag references are actually two 16-bit parts

 

<Zero2r> it only cares about the first two bytes
<Zero2r> most of the time
<Zero2r> if it's nulled out, it'll want all bytes to be 0xFF, but otherwise, it mainly checks the first two
<Zero2r> so 0xE34D01D9 (pistol) becomes 0x01D9 which is the index on the tag array

...

<Zero2r> if all four bytes are 0xFFFFFFFF, it's nulled out
<Zero2r> otherwise, idk
<Zero2r> you could set it to whatever you want
<WaeV> what does 0x0000FFFF do?
<WaeV> not considered nulled out?
<Zero2r> hmm, just tested just setting the first two bytes to 0xFFFF without setting the other two
<Zero2r> Halo gets an exception error
<Zero2r> it thinks it's tag #65535 NOT nulled out
<Zero2r> of course, it could vary from dependency to dependency for all we know

Caesar likes this

Share this post


Link to post
Share on other sites

Tiddy-bits:

I remember when I was creating new bitmaps for Boarding Action, and I stumbled upon the woman in the bitmap, blew my mind lol

 

Boarding_Action_Egg.png

NeX and WaeV like this

nicksartthread.jpg

19th person to join the forums

:D

Share this post


Link to post
Share on other sites

Watch this video if you want to find out more about that girl 

Edited by aLTis

08f9474ede.jpg

Share this post


Link to post
Share on other sites

"What that freelance artist had done was... he made some of the polies across the bottom of the Boarding Action map no-collide so that the player could walk right through them. And if you happened to walk through that secret section of the map, he'd built a little tiny room that had pictures of his girlfriend on every wall, and it was like this little shrine to this crazy freelancer guy's girlfriend." - Hardy Lebel

DeChief, Skeezix the Cat and NeX like this

Share this post


Link to post
Share on other sites

I never found that, I think they must have removed it, but left the bitmap in regardless


nicksartthread.jpg

19th person to join the forums

:D

Share this post


Link to post
Share on other sites

Entity Plugin Datatypes

  • collection of 1-bit bools aka "flags"
    • bitmask8 -- 1-8 individual bitflags
    • bitmask16 -- 1-16 individual bitflags
    • bitmask32 -- 1-32 individual bitflags
  • floating-point numbers
    • single, float -- 32-bit float
    • double -- 64-bit float
  • integers
    • int8, char -- 8-bit signed integer
    • int16, short -- 16-bit signed integer
    • int32, long -- 32-bit signed integer
  • in-place strings (no support for string pointers)
    • string4 -- in-place char[4]
    • string32 -- in-place char[32]
    • string128 -- in-place char[128]
  • tag references
    • loneID -- int32 tag ID
    • dependency -- { tag_class[4], name_ptr[4], padding[4], tag_ident[4] } Total Size = 0x10
  • enumerations (combobox)
    • enum8 -- choose one of up to max(int8) options
    • enum16 -- choose one of up to max(int16) options
    • enum32 -- choose one of up to max(int32) options
  • handle to struct array, aka "reflexives"\
    • struct -- { array_count[4], ptr_to_first[4] } Total Size = 0x8 (size of the reflexive itself is variable)
  • index (choose one struct from a reflexive)
    • index -- int16, the array index of the chosen struct
  • colors
    • colorbyte -- array of four int8s. Total Size = 4 bytes
    • colorRGB -- array of three single-precision floats. Total Size = 12 bytes
    • colorARGB -- array of four single-precision floats. Total Size = 16 bytes

Share this post


Link to post
Share on other sites

If I recall the two 16-bits that make up an ID are:

 

int16_t unique_Identity;

int16_t tagNumber;

Also remember that if both are 0xFFFF, then the tag is nulled out. Otherwise, the tag is not nulled out.

Share this post


Link to post
Share on other sites

002 discovered things about Halo's in-game console.

 

Normally the \ character is used for "escaped" special characters. For example \n means the newline character, and \t is tab. However Halo's console works differently, and uses the | character.

 

<Zero2> |n is newline, |t is tab, |l is left-alignment, |r is right-alignment, |c is center-alignment

NeX likes this

Share this post


Link to post
Share on other sites
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.