Quote:The conclusion from this of course is that MSCC is using signed 16-bit quantities. So there is no range 32768-65535, and you can't set a time limit greater than 32767. Rather, you are setting a negative time limit.
It doesn't always, though. Time bonus is the only signed 16-bit integer on the score screen; level bonus, level score, and overall score are all 32-bit and allow up to 2.1b before rolling over to -2.1b.
There are several things that lead me to believe the time limit is not stored as a signed 16-bit integer:
* when you set a time limit or chip counter of 32768+, the last two digits still display properly (e.g. 32775 displays as [garbled][7][5])
* I was a bit ambiguous above; it is the time bonus points that overflow, which starts as early as time=3277. (since 32770 > 32767) It is not unique to time limits above 32768, and in fact there is no discontinuity between the time bonus points at time=32767 (-10) and time=32768 (0).
* when you reset (4,32) or (5,32) - which store the initial time limit of the level - the new data on the bottom layer of (4,0) and (5,0) is consistent with an unsigned 16-bit integer going up to 65535 rather than a signed one that wraps to -32768. (At time=32767, (4,0) will contain 255 and (5,0) will contain 127. At time=32768, (4,0) will contain 0 and (5,0) will contain 128.)