. /../Known Noctis IV Bugs, and.../ 123456..71
absent more than alex
written by Shadowlord on Dec 20, 2004 17:17
Ventris gorran said:
There is a minor bug in the clock. The in game clock merely converts local time to felisian time. The "official" desktop clock is synchronized with UTC and the in game clock probably should be as well; afterall, it makes little sense to localize felisian time for each of our terrestrial timezones otherwise we'll be writing times as 6011:661.789.985 UTC-7 or some other silly thing.
That's true, but NIV uses DOS interrupt calls to get the date and time, and there don't appear to be any to get UTC time. However... There is a call that exists in Win95 (and hopefully newer windowses) which converts DOS date/times into UTC: http://www.ctyme.com/intr/rb-3218.htm

But that might not work if you were running NIV from a boot disk, depending on what OS the boot disk was based on.

We can use another win95 interrupt to find out if NIV is being run in win95 or newer, though: http://www.ctyme.com/intr/rb-4859.htm

If these work the way I'm thinking, we might be able to make NIV use UTC if it's running in windows, and if not, to continue to use local time the way it does now.

Quoth a page on MSDN, the time we get from this win95 interrupt would be "a 64-bit value that represents the number of 100-nanosecond intervals that have elapsed since 12:00 A.M. January 1, 1601 (UTC)"
written by Ventris gorran on Dec 20, 2004 17:49
Shadowlord said:
If these work the way I'm thinking, we might be able to make NIV use UTC if it's running in windows, and if not, to continue to use local time the way it does now.
Which would be the best of both worlds. I had firgured this was related to NIV being DOS based but was unsure as I haven't done any digging on the issue other than to figure out why I kept seeing different epoc values for the same tme.
omg! toadstoolz!
written by Dumbum on Dec 21, 2004 15:39
(This is more of a feature request...)
Can you make NIV so that it supports online play? In the way that you can see other stardrifters and explore a planet together with other people?
written by Barebones on Dec 21, 2004 17:15
Now that you mention it, perhaps it is not too difficult to use server-stored information (perhaps the same as the Mapper uses) to implement a GOES command that jump to the coordinates where somebody else is. "Follow", you might call it. Of course, going to the extent of walking together on a planet's surface, would require modification of Noctis itself.
written by Xenomorph on Dec 21, 2004 17:18
Do we really want this?

As has been said on several occasions, the main thing about Noctis is that you are alone.
written by Megagun mk. ii on Dec 21, 2004 17:42
Looking at other SD's might be possible, really... Actually. I've already experimented with this a bit, and I think it's not going to be too hard: use IRC to comminicate between Stardrifters.. Using a GOES command might be hard (because of DOS + Internet).. And if you don't like it, you might aswell not use it. When I and ShadowLord had an IRC session from within Noctis, we found out that this was probably the only way to get Noctis IV back into the attention of most people.
written by Sl on Dec 21, 2004 20:13
Mega's just about covered it. We've talked about implementing some form of multiplayer (talked about it in IRC), and I actually requested CTCP support in hacirc, since it would provide an easy way to implement at least some multiplayer.

Currently with hacirc and a small modification to NIV, you can chat on IRC from the GOES console, and that's the first step. Other than that, future goals which involve some form of interaction with other players:
1) Get a form of GOES working from the surface, especially for IRC (though it would also be useful for CASTing notes about a planet while you're still on the planet)
2) Make it possible to see other drifters if they're in the same system as you, and to see when they move, etc.
3) Make it possible to follow other drifters (with a 'follow drifter' command which lets you target their drifter, and also with a GOES module which lets you fly to someone who may not be in the same system, by typing their IRC nick (You'd still use fuel getting there).)
4) Possibly seeing other players on planets. This might be difficult if there isn't a felisian model in NIV (I doubt there is, but haven't looked). There'd also be the problem of coloring them (due to the limited palette). They might have to be different colors on different planets.

These things are of varying difficulties, though #2 will probably be easiest and #4 will probably be hardest. It's still up in the air which of these will get done, btw, and depends on how hard they turns out to be.

Update about the UTC time: I've made code which successfully converts standard time to UTC time, and appears to do it successfully, except that, bizarrely, the seconds increase by 2 instead of 1, and occasionally increase by 10, and exhibit other strange effects. I'm not sure why right now. Also, if UTC time would be earlier than the local time the last time you played, then NIV won't start (I had to delete current.bin and surface.bin). If the UTC time starts working right, though, then the exit-instead-of-working problem could probably be fixed.

Lastly, I'm looking into the feasability of two things right now:
1. Transitions to adjacent sectors on-planet (It would still fade out and back in) without having to return to the drifter.
2. Flying the lander. I'm thinking that this would be done with three keys, one to fly up, one to hover above the ground, and one to land. The fly up key would take you back to the drifter (unless you pressed one of the other keys before you got high enough to depart), the hover key would just keep you at a fixed distance above the ground, and the land key would make the lander descend and land. Note that it would no longer bounce, and would instead slow down as it approached the ground (as it does when you call it), landing smoothly when it arrives. (The bouncing probably isn't healthy for anyone inside the lander ) The number keys would control your speed while in the air, and the lander would attempt to fly in the direction that you are facing.
Those are both theoretical at this point, may be changed or implemented differently, or not implemented at all if it turns out to be too difficult to do (or unfeasable).
written by Sl on Dec 21, 2004 21:07
Xenomorph said:
Do we really want this?

As has been said on several occasions, the main thing about Noctis is that you are alone.
If there's a galactic GOES network, you would think you could communicate with other drifters, find them, and explore with them if you so desire. Plus it's really nice to be able to chat with other people while in NIV, without having to alt-tab out, etc.
written by Ees33 on Dec 23, 2004 21:46
What about the buffer overflow at the edge of the surface quadrant on a planet? You know, the one that generates all that weird stuff at the surface edges?

I would suggest the running of a routine like this once the surface is completely generated:

/* do corners first /
p_surfacemap[    0] = p_surfacemap[  201];
p_surfacemap[  199] = p_surfacemap[  398];
p_surfacemap[39999] = p_surfacemap[39798];
p_surfacemap[39800] = p_surfacemap[39601];

/* then do top and bottom /
for(x=1;x<199;x++)
{
   p_surfacemap[x      ] = p_surfacemap[  200+x];
   p_surfacemap[x+39800] = p_surfacemap[39600+x];
}

/* then do left and right /
for(y=1;y<199;y++)
{
   p_surfacemap[200*y    ] = p_surfacemap[200*y+  1];
   p_surfacemap[200*y+199] = p_surfacemap[200*y+198];
}
The basic idea is quite simple. Suppose you have the grid:

x x x x x
x 2 3 2 x
x 3 1 3 x
x 2 3 2 x
x x x x x

The "x" means a spot at the edge where the overflow occurs, and numbers represent good surface. This routine would transform the grid to

2 2 3 2 2
2 2 3 2 2
3 3 1 3 3
2 2 3 2 2
2 2 3 2 2

This way, the asm routines that contain the overflow bug (the 'smooth' routines) would not have be fixed, ie. you wouldn't need to put in all those slow "if" checks to check if you're smoothing over the edge of the surface, which would slow it down.

What do you think?
absent more than alex
written by Shadowlord on Dec 25, 2004 15:19
I haven't looked at that at all, and wasn't aware there was a problem, but it may (depending on how it works) be more effective to make the smooth algorithm do the edges separately (this would require no extra IFs, per se, though it would add to code size slightly..).
written by Ees33 on Dec 25, 2004 19:28
Shadowlord said:
I haven't looked at that at all, and wasn't aware there was a problem, but it may (depending on how it works) be more effective to make the smooth algorithm do the edges separately (this would require no extra IFs, per se, though it would add to code size slightly..).
It seems then that you haven't been to the edge of the surface sector. There's weird terrain there -- with high spikes and walls (of course you can't get TO the edge, just close to it). If you have, then that's the bug -- and it could be fixed by running the given code segment at the point the surface generation ends.
absent more than alex
written by Shadowlord on Dec 26, 2004 05:48
First release:

Noctis.exe only: <cd/zips/Shadowlord/niv-fixed-bin-r1>
Source and some source-related docs: <cd/zips/Shadowlord/niv-fixed-src-r1>

Please consider this a beta version. There's at least one known bug in it.

New features/fixes/bugs/etc which weren't listed in a previous post:

  • Whee! Flying lander! There's a flying lander option which is on by default (If you turn it off, the lander acts like it used to). If it's on: When the lander lands and when you get in the lander, it will act normally. But while it is flying up or down, you may press 'a' to tell it to hover, 'z' to tell it to land, or 'q' to tell it to go back to the stardrifter. The number keys will give it a speed, and it will then fly in the direction you face. It might continue flying when you drop the speed to 0, and it might crash into hills or mountains if you fly towards them - the lander's flying software needs improvements.
  • [FIXED] The compass did not correctly display your direction of facing. It has been corrected. You may notice I reversed the order of the directions on the compass - It's 'N W S E' now instead of 'N E S W' (it was appearing to turn the opposite way you were turning)
  • Sector transitions. Sectors are square now, and if you walk, run, fly, or hop to an edge, you will transition into the adjacent sector in the direction you were travelling.
  • It seems that (at least here) NIV stays on a black screen about 1 out of every 4 times it is started IF and only IF you are *ON A PLANET*. This appears not to happen in the old NIV, so is probably caused by some code I wrote, but I have no idea what's causing it ATM. (Wild-Assed Guess: The sector-transition code, though the freeze still happens when you're nowhere near sector borders.) Note: ctrl-c won't break out of the freeze. The puzzling thing is that it only happens *sometimes*, with no differences between test runs.
└> last changed by Shadowlord on December 26, 2004 at 19:13
sumting need doing?
written by Lightning4 on Dec 26, 2004 06:11
Now we need to get you and MG to combine versions to make a Super Hactis..
hidden agenda
written by Trad.a on Dec 26, 2004 08:07
W00t! Sector transitions! *loves the fade*
sumting need doing?
written by Lightning4 on Dec 26, 2004 08:35
I notice though, where does the capsule go, should you leave it in one sector and move to the next? Will it be there if you go back to that sector, or always in the sector you're currently in? I also notice escape doesn't work, and I did get the black screen, but so far only when I was returning to my drifter.
And finally, q to return to orbit doesn't seem to be working, at least for me..
reading this thread
no members are reading this thread
. /../Known Noctis IV Bugs, and.../ 123456..71
42701, 12 queries, 0.110 s.this frame is part of the AnyNowhere network