Control Bit Documentation

Does anyone know if anyone has documented the test expression control bits used in the game files?

I'm putting together a mission string and I'm paranoid about using bits that are in use elsewhere in the game. I don't want to unwittingly activate some random event or mission from a pre-existing campaign.

joonix

Here's from my copy of Nova 1.1 on Mac OS: Attached File Mission_BitMap_Nova_1.1.txt.zip (46.42K)
Number of downloads: 1

If you're on a Mac you can run Mission BitMap Carbon to analyze any plug-in or data files (although you'll need to use MissionComputer to convert the new-format .ndat data files into Mac plug-ins for Mission BitMap to recognize them) for set and test expressions including bit usage.

If you want to know all the logical string that are parsed, there's a checkbox when you run Mission BitMap to include those. It would have quintupled the filesize though so I chose to omit them from the above text file. If you're on Windows, I don't know of a utility for that, although I'd be happy to upload the results of my copy of Nova 1.0.A. I suppose you could send the Windows data files to a Mac, use MissionComputer to convert them, then use Mission BitMap on those. I can probably do that for you if you need it and ask nicely.

Here is just the list of bits used:

CODE

Used Bits:
---------
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,
60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,
80,81,82,83,84,85,86,87,88,89,90,96,123,124,125,126,127,128,129,130,
131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,
153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,175,178,
179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,
199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,
219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,250,
275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,
295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,
315,316,317,318,319,320,321,322,323,324,325,326,327,330,331,332,333,334,335,340,
341,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,
366,367,368,369,370,371,372,373,374,375,376,377,415,417,422,423,424,425,426,427,
428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,450,
467,500,502,503,509,510,511,512,513,515,516,517,518,519,600,601,602,603,604,605,
606,607,608,609,610,611,612,613,650,651,652,653,666,667,677,681,749,750,751,752,
753,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,
819,838,850,851,852,995,1000,1100,1300,1301,1302,1303,1304,1305,1306,1307,1308,1
309,1500,1501,
1502,3000,3001,3002,3003,3004,3005,3006,3007,3009,3015,3025,3050,3721,3789,4000,
4322,4444,5757,5758,
5759,5760,5761,5762,5763,5764,5765,5770,5999,6000,6001,6002,6003,6004,6005,6006,
6007,6008,6009,6010,
6011,6012,6013,6014,6015,6016,6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,
6027,6028,6029,6030,
6031,6032,6033,6034,6100,6101,6102,6103,6104,6105,6106,6137,6200,6201,6202,6203,
6204,6205,6206,6300,
6301,6302,6666,6723,6724,7777,7778,7779,7780,7781,7782,7783,7784,7785,7786,7787,
7788,7878,7879,7880,
8338,8339,8340,8444,8888,8889,8890,8891,8892,8893,8894,8895,8896,8897,8898,8899,
8900,8901,8902,8903,
8904,8905,8906,8907,8908,8909,8910,8911,9011,9012,9013,9014,9015,9111,9200,9201,
9202,9203,9204,9205,
9206,9207,9208,9215,9216,9333,9334,9500,9501,9666,9812,9995,9998,9999,

And this might be of interest:

CODE

Bits Tested But Not Set:
503,3005,9999,

Bits Set But Not Tested:
467,4322,6001,6003,6014,6015,6018,6019,6020,6021,6022,6024,6025,6026,6027,6032,6
034,

This post has been edited by Qaanol : 18 February 2010 - 01:08 AM

First off, Qaanol, you have a lot of free time. Or, at least, it appears that way.

Second, wouldn't it have been easier to simply state bits #1–90, 96, 123–149, 152–170, etc. are used instead of listing each and every bit one by one?

I'm just curious. 🙂

Thank you, but perhaps you missed the part where Mission BitMap Carbon is an application you run, and you tell it to analyze a single file or a whole folder of files. It then parses all the set and test expressions, compiles the results, and saves them into a text file.

If you download the text file I uploaded, you'll see exactly what the output looks like. You'll also see the part of it from which I copied and pasted the list of bits that are used. So in fact, it would have been more work for me to go through that list by hand and figure out what the intervals are as you suggest.

If you download the program, which I linked, you can run it yourself.

Ah. That explains it. Thanks, Qaanol.

@darthkev, on 18 February 2010 - 01:39 AM, said in Control Bit Documentation:

(...)wouldn't it have been easier to simply state bits #1–90, 96, 123–149, 152–170, etc. are used instead of listing each and every bit one by one?

<img src="http://www.ambrosiasw.com/forums/public/style_emoticons/<#EMO_DIR#>/smile.gif" style="vertical-align:middle" emoid=":)/>/>/>" border="0" alt="smile.gif" />

This took me about an hour from what Qaanol posted.

Used bits:
#1–90, 96, 123–149, 152–170, 175, 178-237, 250, 275-327, 330-335, 340-341, 347-377, 415, 417, 422-446, 450, 467, 500, 502-503, 509-513, 515-519, 600-613, 650-653, 666-667, 677, 681, 749-753, 800-819, 838, 850-852, 995, 1000, 1100, 1300-1309, 1500-1502, 3000-3007, 3009, 3015, 3025, 3050, 3721, 3789, 4000, 4322, 4444, 5757-5765, 5770, 5999-6034, 6100-6106, 6137, 6200-6206, 6300-6302, 6666, 6723-6724, 7777-7788, 7878-7880, 8338-8340, 8444, 8888-8911, 9011-9015, 9111, 9200-9208, 9215-9216, 9333-9334, 9500-9501, 9666, 9812, 9995, 9998-9999

Unused bits:
#91-95, 97-122, 150-151, 171-174, 176-177, 238-249, 251-274, 328-329, 336-339, 342-346, 378-414, 416, 418-421, 447-449, 468-499, 501, 504-508, 514, 520-599, 614-649, 654-665, 668-676, 678-680, 682-748, 754-799, 820-837, 853-994, 996-999, 1001-1999, 1101-1299, 1310-1499, 1503-2999, 3008, 3010-3014, 3016-3024, 3026-3049, 3051-3720, 3722-3788, 3790-3999, 4001-4321, 4323-4443, 4445-5754, 5766-5769, 5771-5998, 6035-6099, 6107-6136, 6138-6199, 6207-6299, 6303-6665, 6667-6722, 6725-7776, 7789-7877, 7881-8337, 8341-8443, 8445-8887, 8912-9010, 9016-9110, 9112-9199, 9209-9214, 9217-9332, 9335-9499, 9502-9665, 9667-9811, 9813-9994, 9996-9997

Just in case anyone was wondering, 'cause I was.

Note: there are most likely errors as I did this by hand. And I apologize for the grave-digging.

Now what would be really OCD is if someone edited all the nova files to move the bit allocations so as to eliminate as many gaps as possible.

This post has been edited by Zyzygy : 22 July 2013 - 09:44 PM