LASooner Posted March 6, 2018 Share Posted March 6, 2018 (edited) FINAL VERSION. I've included source code and graphics, if anyone wants to improve the playability. Thanks to TI99IUC For the cartridge label design Uses Joystick 1, check your ALPHA LOCK before playing. Updated 12/14/2018 NIGHTSTK8.bin Cartridge version (No Title Splash Screen) NIGHTSTALK.dsk XB Disk Version (Includes Splash Screen) Nightstalker - Manual.pdf Game Manual Nightstalker-Source Files.zip All the source files to make the game. Edited December 17, 2018 by LASooner 21 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted March 6, 2018 Share Posted March 6, 2018 (edited) Oh my ! i played this game on the Mattel Aquarius years ago It is great to see a TI99's version LASooner ! It Cool and fantastic Colors too ! Thanks Edited March 6, 2018 by ti99iuc 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted March 6, 2018 Share Posted March 6, 2018 As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. Sadly RXB is not supported by XB256 and RXB has CALL HPUT(row,column,string,...) or CALL HPUT(row,column,number,...) {this is the same as HCHAR} CALL HGET(row,column,string-variable,...) {this is the opposite and gets stirngs off the screen that XB does not allow} To bad XB256 does not have a RXB256 versions as this would solve a ton of issiues people have making games. 1 Quote Link to comment Share on other sites More sharing options...
Bones-69 Posted March 6, 2018 Share Posted March 6, 2018 As an aside, does anyone know how to keep the DISPLAY AT from adding a blank character to the left and the right of the value? IS DISPLAY AT USING the only way? Because that function doesn't compile. And unfortunately XB256's CALL LINK("DISPLAY") only uses character strings not values. A few things come to mind... I am out and about so only going from memory at the moment, but think I am on the right track. If you use something like the following this is likely causing the spaces; DISPLAY AT(1,1):"SCORE";A Whereas the following should give you a better display; A$="SCORE "&STR$(A)::DISPLAY AT(1,1)SIZE(LEN(A$)):A$ I think using the same A$="SCORE "&STR$(A) should allow you to use the XB256 feature. Again, only going from memory. Game looks great by the way! 2 Quote Link to comment Share on other sites More sharing options...
+eebuckeye Posted March 6, 2018 Share Posted March 6, 2018 That looks awesome! Really nice job! Can't wait for the completed version! 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 A few things come to mind... I am out and about so only going from memory at the moment, but think I am on the right track. If you use something like the following this is likely causing the spaces; DISPLAY AT(1,1):"SCORE";A Whereas the following should give you a better display; A$="SCORE "&STR$(A)::DISPLAY AT(1,1)SIZE(LEN(A$)):A$ I think using the same A$="SCORE "&STR$(A) should allow you to use the XB256 feature. Again, only going from memory. Game looks great by the way! Ahh so I can use STR$ to apply the numeric value into a string that can be displayed, that's what I was looking for. Thanks! Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 Ahh so I can use STR$ to apply the numeric value into a string that can be displayed, that's what I was looking for. Thanks! That fixed the issue with the score showing up with blank spaces Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted March 6, 2018 Share Posted March 6, 2018 Wow looks awesome 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 (edited) BUGS: Bullet still registers hits after dying if player doesn't shootBats will start shooting at player after 5000 points, when the bats are supposed to become robots after death Robot not switching to higher level robots after 15000 points Fixed the issue with the score not drawing correctly (thanks Bones-69) Also changed the spider color to light green, it looks better on a CRT Edited March 7, 2018 by LASooner Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 OK, I missed this one.... how does one have a score that goes higher than 32767? Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 6, 2018 Author Share Posted March 6, 2018 I think I have a solution, All point values are hundreds or thousands, if I just add two zeros to the converted string, "200" Points would actually be 2 points internally. This means one could theoretically score up to 3,276,700 before you flip the score. I now return you to your regularly scheduled programming. 4 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 6, 2018 Share Posted March 6, 2018 Looks awesome! 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 7, 2018 Author Share Posted March 7, 2018 Update uploaded to first post. Memory is getting tight, so I'm optimizing as much as I can. But I may lift my skirt in the next week or so and get other eyeballs on my code to see what can be done to improve speed and space COMPLETED: Bats and Spiders stun player Add hit points to Level 3+ robots BUGS: Characters are being defined after the title screen comes up STILL NEED TO COMPLETE:Bats and Spiders die from bullet hits from either player or robots Level 2+ Robots pursue player through maze Level 4 Robot destroys bunkerLevel 4 Robot shots kill player bullets Add an attract screen mode, to give the player time to start the game and explain scoringBats start hanging from ceilingAdd delay before player and robot respawn Quote Link to comment Share on other sites More sharing options...
digdugnate Posted March 7, 2018 Share Posted March 7, 2018 this looks really neat 1 Quote Link to comment Share on other sites More sharing options...
majestyx Posted March 7, 2018 Share Posted March 7, 2018 That is some great work! If I didn't know better, I'd have thought it was the Intellivision version, or possibly the Apple ][ version I remember playing way back in high school. 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted March 7, 2018 Share Posted March 7, 2018 Wow... really coming together!!! 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 11, 2018 Author Share Posted March 11, 2018 (edited) Updated Rom image in Post 1: Bats and Spiders die from bullet hits from player This is the last major hurdle, but in getting this working the delay for the robot respawn seems to have broken Game is playable but too slow, I need to optimize some more, also running up against memory limits, lots of if/then statements that I'll need to see if I can do it better, Notepad ++ reports 178 IF/THEN Statements If anyone wants to take a crack at improving speed and memory, I've included the code. I program in TIdBit so the comments are in that format. Be nice, Code is not my strong suit. EDIT: Updated in a later message, just didn't want people trying to fix problems I fixed http://atariage.com/forums/topic/276268-night-stalker-in-progress-xb256-compiled/?p=3985398 Edited March 14, 2018 by LASooner 3 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 12, 2018 Author Share Posted March 12, 2018 I now have level 2 or higher robots chasing the player, it's working pretty well. However, I'm running out of memory after the game is compiled, I don't know why, but I'll have to look into optimizing it. In extended basic, the memory left is roughly 4.6k remaining before I run it, and roughly 3.6k remaining after running it, so I'm not sure what's happening after compiling that's causing me to lose that 3.6k, but that doesn't seem right. because of this I have not uploaded a new rom image since it doesn't run. Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 13, 2018 Author Share Posted March 13, 2018 (edited) Updated the Rom image in 1st post. Had to remove my title screen to make room, just so the game can run compiled. Will look into trying to free up memory, or just make a simple title. Bats and Spiders die from bullet hits from player Level 2+ Robots pursue player through maze Add delay before player and robot respawn Game is more or less feature complete, lots of debugging and performance issues to sort out. Level 4 robot features aren't critical as I don't think many will get there yet. Has anyone played it? Edited March 13, 2018 by LASooner 1 Quote Link to comment Share on other sites More sharing options...
unhuman Posted March 13, 2018 Share Posted March 13, 2018 (edited) Played it a bit ago. Was reserving feedback after you finished, as you already had all my issues covered. BTW - the new video doesn't work. One thing I'm a bit concerned about, however, is your intersection tracking. That's a lot of logic... You could put all the check 1, check 2, resetTo variables in an array and then iterate on the array. That'd save a lot of memory. Edited March 13, 2018 by unhuman 1 Quote Link to comment Share on other sites More sharing options...
Retrospect Posted March 13, 2018 Share Posted March 13, 2018 Yeah arrays could be used as kind of a "look-up-table" to be checked on each update the game makes, you'd be hitting the stack then, rather than program space. I must say , very good game. Something I've all-too-often struggled with is making sprites recognize character wall boundaries. 1 Quote Link to comment Share on other sites More sharing options...
doctorclu Posted March 13, 2018 Share Posted March 13, 2018 Oh wow, some basic code. Makes me want to print that out and try that on another computer like from the computer magazine days. Love Night Stalker and loving this! 1 Quote Link to comment Share on other sites More sharing options...
LASooner Posted March 13, 2018 Author Share Posted March 13, 2018 (edited) Video should be working now YouTube marked it private for some reason So put the sprite positions for the robots and bats in a 2 dimensional array and check against that? Is that what you guys are saying? Something like XX(ROW,COL), Storing all the the intersection locations in that to check against. Do I have that right? And would that improve speed as well? Edited March 13, 2018 by LASooner Quote Link to comment Share on other sites More sharing options...
majestyx Posted March 13, 2018 Share Posted March 13, 2018 I'm wondering about the XB code above and how it's being compiled. How are you able to get the IF-THEN statements to compile without using line numbers? I see things like 1870 IF DR(1)=1 THEN RETURN 2100 IF (BS1=2)*(M=2) THEN DS=1 ...and am wondering how those compile properly since one of the limitations of the compiler is that IF-THEN-ELSE will only work with line numbers. Also, not sure that this will save much memory, but one quick one that can be changed, based on the valid values of DS per your comment in the above code, would be 380 IF DS=1 THEN GOSUB 1020::RETURN 390 IF DS=2 THEN GOSUB 1050::RETURN 400 IF DS=3 THEN GOSUB 1240::RETURN reduced to 380 IF DS=0 THEN 410 390 ON DS GOSUB 1020,1050,1240::RETURN Anyway, sorry I'm not much help at this time (at work and checking your code on my downtime) but will continue to look it over. Again, great looking port! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.