-
Content Count
388 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by parkfun101
-
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Thanks Tarzilla, I did already find the link, but I think you'd have to know Assembly language really well to understand how to read it. Also, trying to predict when the black screen comes up seems to be more and more difficult to predict. I don't think the compiler generates any debug files for the rom. I also don't think this compiler even has a command line interface. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
The CCI3 compiler seems to catch all of the syntax issues like missing brackets. I use Notepad++ to do all my code. It's free and has very nice features like I can highlight a word and it highlights that same word throughout the code. It also color codes things like ifs and for loops, etc. Notepad++ is great for missing brackets since you can highlight the starting or ending bracket and it highlights the opposite bracket for you. We even use this at work. Oh, I don't use goto statements in my code, I just use function calls with return values. Pixelboy, I've never actually used the Debugger in BlueMSX before. I'm going to have to try that. If you have any tips on using it, feel free to share. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I think what might be good to have, for any Colecovision programmer, would be a list of What NOT to do when making CV games. That way if you get an issue, you could check the list to make sure you're not doing that. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I'm testing using BlueMSX. I haven't tested this issue on a CV yet since I wanted to try to fix the issue first. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Well, I've worked on a bunch of games in Klik N Play, The Games Factory, VB5, a few in .Net, and I've never had an issue like this before. Tank Challenge was a bit different because we could play that for a good 45 minutes, there could have been a Black Out issue with that, but if it did happen, it was after the match and you weren't trying to go for a high score, so it wouldn't have been noticeable. Worst case, I can always remove the Continue feature. You'd still be able to play against a friend in 1P vs 2P mode on any level. If I resort to removing the Continue feature, I may add an option to start off at a certain area so you can play against the CPU on the higher areas. The area number doesn't seem to be the problem....I only have 10 levels right now that just repeat. I thought maybe it had to do with redisplaying the level, but the 1P vs 2P mode lets you preview the level before you play it (like Tank Challenge). I tried that and I could NEVER get that to fail, so that's not the issue. I love working on these games, it is very challenging. I'm just stuck on this issue. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I'm at a loss right now. The game Black Out issue has never really been fixed. Sometimes, using my cheat test (pressing 3, 4, and 5 to destroy enemy bikes), I can get to level 93, sometimes 87, etc. When I try to play the game normally, the level number is usually around 63 or so before it blacks out . I've changed a bunch of variables to byte and tried commenting out 1 or 2 functions at a time and then playing again to see if I can get any further. If this continues, the only way I could release this game is to perhaps remove the Continue feature so you can't easily get to those levels numbers....it would be VERY difficult to get that far ....even to level 40. I would also have to force the user to press the RESET button on the game console so they can refresh everything, otherwise, you may continue and the game could freeze in the first few rounds. If anyone wants to take a look at my code, please PM me, I've been working on this issue since 2 Fridays ago and I've given up trying to figure out this issue. Hopefully, this is just something stupid that I've missed, otherwise, this will be my last Colecovision game I work on. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Here is the modified code I'm using for Light Grid Racing formerly Light Cycle Racing (changed due to trademarked name "Light Cycle"). ---------------------------------- //Used for score or points up to 6 digits - Right Aligned //Ex: PrintInt(8,7, 3, 1); //NOTE: When using Fake6Digit, the 1's digit will always be 0 so don't expect to display 1-9, use Fake6Digit = 0 for that. void PrintInt(byte x, byte y, int L, byte Fake6Digit){ byte digits; char* s = str(L); digits = 1; if (L >= 10000) digits = 5; if (L <= 9999) digits = 4; if (L <= 999) digits = 3; if (L <= 99) digits = 2; if (L <= 9) digits = 1; if (Fake6Digit==1){ print_at(x, y, "0"); //Fakes 6 digits by starting with a 0 if (digits > 1){ print_at(x-digits, y, &s[5-digits]); } } else { //Just display a regular 5 digit number x=x+1; print_at(x-digits, y, &s[5-digits]); } }//PrintInt ---------------------------------- If you want a level select from 1-10 you could do like PrintInt (0,0, 1, 0); //Don't display the Fake 6th Digit If you want to have the 6th digit available for a score or something PrintInt (0,0, SCOREP1, 1); //Allow up to 6 digits. You could just use str(SCOREP1), but that prints the score like this 00005, I'd rather it just be 5. Again, my code works fine unless you need to put a value other than 0 in the 1st digit's place. Another good thing about this method is that it doesn't need to call any special header files besides the ones you are probably using for the game anyhow. I had made some others that did and it really added to the filesize due to the functions I was calling. That is why I'm not using any str_len() type functions so I can avoid having to use the string.h include file. I'm sure this could be tweaked so if the value is < 10, to automatically skip the printing of the "0"....Hey, I like that, I might change that so you don't have to specify whether or not to fake the digit, it will just figure it out on its own. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
That's cool that other people have used that idea. It's probably in a bunch of 80's games and we think we were the first ones to think of it. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
As a test, I went back to my older version of the game that still had the long variables. I initialized all the variables and ran the test and the game would indeed black out or freeze at the 85 level mark. So long variables were the main culprit here. Perhaps the Z80 can't handle long variables so well. Also a note, long variables are not in the documentation for creating Colecovision games by Daniel Bienvenu. He also warns not to use floating point variables. Perhaps there should be a similar warning for using the long datatype. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I actually do think that it was a combination of using the long datatype and having uninitialized variables. It's not like I just have the score variable, I also had a variable for storing each score for all of the modes which were all stored as long. This is so on the Title screen when you are selecting the modes, so you can see what the different scores and hiscores are. Tarzilla, you would probably have to play for several hours without having to continue in order to get even a 6 digit score. That would be extremely difficult due to the randomness of the game with the teleports and A.I. design. I do have it setup to use my "Faked" 6 digit score method where 0 is more like a placeholder so visually if you destroy a bike you get 500pts., however, in code, you are only getting 50pts. This allows me to avoid using the long datatype and still get a 6 digit score. I tried this yesterday and it worked great. Another note about taking out the long datatype. After doing this, it gave me over 2,000 bytes back because I had all of those long variables. That means I could add either 20+ more levels than originally planned or put that into more sounds, graphics etc. All this because I took out the long datatype for those variables. From a gamer's point of view, I would prefer more levels rather 1 extra digit score, don't you agree? I also have a feeling that if I use the long datatype I will still have the issue I was having before and nobody wants to go for a hiscore and then have the game freeze up on them. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Ok, I think I figured out the problem with my game. I just tested and I could get to level 201 and I stopped testing at that point. Here is what seems to have caused the issue and it is not something I thought would cause this behavior. Just a recap for those Googling to figure out the problem and fix: The issue: Play Colecovision game for a long time and then it freezes, the game just restarts, or the game blacks out. The cause: In my case, some global variable arrays were not being used and therefore also not being initialized. For example: SCORE[1] was for P1 and SCORE[2] was for P2 and both are integers, I had them as long earlier, but changed it to integer. I wasn't using SCORE[0] and therefore it wasn't being initialized. I also did this with some other variables as well. The fix: I changed it so SCORE[0] is for P1 and SCORE[1] is for P2 and initialized all other unused variables to 0 at the start of the game just so they had an initial value. I immediately assumed the issue was caused by the nmi since it is a source for many headaches, but not in this case. Variables declared in a function get caught by the compiler and it will give you a Warning message, but Global variables are not caught and it gives no warning that they are not declared, at least not in CCI3. Now, I'm just going to clean up the rest of the variables and make sure I don't break anything trying to do that. Oh, and I thought of a "SNEAKY" way to allow for 6 digit scores, but only use a an integer. Basically, I will fake the scores like this: Bike = 500 points so I make the bike worth 50 points and always leave an extra "0" displayed for the score so it looks like 500. As long as none of the scores are single digits, this should work fine. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Well, I'm still working on figuring out the issue. I wanted to be able to display 7 digits for the score like the Arcade game has, but my function for doing this seemed to be part of the problem. Also I had 3 arrays for storing the scores that I did as the long datatype and after changing those to int, the game allowed me to go from 55 to 85 levels before blacking out . It also gave me 2,590 bytes back! So I guess using the long datatype in a Colecovision game is not such a good idea. Understand that when I say levels, I mean the same 10 levels repeated over and over so 1 level is just a level you complete. I still think I have some variables I can modify that may help the game even further. So, I guess for this game, I'll keep the score at 5 digits, but that will help fix some of the issues I was having. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Good News, I was looking at the wrong area. For the _DATA area, my Size is only at 449 bytes which is well below 1024bytes. Also good news, as I am converting ints to byte, I've noticed my game allowing me to go further and further into the levels, so I will continue working on this. Thank you guys so much for your help on this. :thumbsup: -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Kiwi and Pixelboy, I think you nailed it on the head. I started fixing some areas where I have bytes being assigned to integers and it has reduced that figure in crtcv.map. Mine is at 27,350 bytes. I think I need to start using some pointers, I don't think I have even one in my game. After fixing some of the issues, I got the game to go from level 50 to level 55 before it broke. Unfortunately, it looks like I have a lot of work to do to resolve this issue completely. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I think I'll go with Light Grid Racing simply because I only have to make the graphics for G, r, and d. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I like Grid Racer, but some games already have that. Light Grid Racing??? Less work for me to change the title graphics from "Cycle" to "Grid". -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
How about Light Bike Racing or Coleco Cycles...can I use Coleco in the name? -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Interesting ideas for me try, thanks Kiwi and Pixelboy. A couple of questions: 1) I've never opened the crtcv.map file before, how do I know if I've used too much RAM by looking at this file? I'll check for the int and bytes issue as well. I may be doing something like that. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I've come to like the name "Light Cycle Racing" now...you are having to race in way, race to stay alive! I've really having a good time working on this game. This past weekend, I got great feedback from my tester, Aaron and he loved the Orbs...which he accidentally renamed DISRUPTORS since they disrupt the creation of lines. He also was loving the BONUS stages and threw his arms up in the air when he collected all the disks and got the BONUS. Right now I'm doing some testing on a major glitch in the game that only happens at round 50. What happens is you play the stages, when you get to level 50 which is a BONUS stage, you then touch a disk and the game either turns BLACK or just freezes and weird graphics appear or just totally restarts the whole game. At one time I had a similar issue with this and it was just a nmi issue that I corrected, but this is much further in the game. As a test I've commented out some code so I can cheat my way to level 50 in 3 minutes by pressing a button to kill all CPU bikes. This gets me there quick for testing and I still get the error. I tried commenting out the code that displays the score to see if that was the issue, it allows me to get to level 51 and then freezes up so I'm not sure what is going on. I feel like it is some sort of data corruption or that I need to put some sort of code that kind of freezes up memory or something. I'm not sure of any C code that frees up memory for Colecovision. If anyone has any ideas, I'd be more than happy to try them out. Just a note, getting to level 50 in 1 try so far has been impossible for me even though I designed the game, so it is not very likely. However, if a player presses continue they could easily get to level 50, so I don't want the game to break. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
The official name of this game with be "Light Cycle Racing". Toby came up with that at Collectorvision. I don't think it matters too much for the Forum title though. -
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
I edited the Orb idea above slightly. Instead of preventing ALL bikes from drawing their lines, it is now ALL bikes except the bike touching an orb. This gives you a better feeling when you are collecting orbs knowing that the enemies can't block you in as easily and becomes more of a weapon than just an obstacle. Of course, the enemies can do the same to you as well. This plays much better than before now that touching the Orbs keeps your line going strong. If 2 players are touching the orbs at the same time, both still can draw their lines, all other bikes lose theirs for a short period of time. It is based off of a timer. -
From the album: Tron Light Cycles
-
- 1
-
-
- Tron
- Light Cycle Racing
-
(and 5 more)
Tagged with:
-
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Quick update: 03/05/2015 1) POWER BOOST can now go either 5 or 7 spaces depending on what speed the bike is going. 2) New obstacle for certain stages: Orb - If an Orb is touched, all bikes temporarily can not produce a line. This causes some strange matches. The example below has a bunch of Orbs. I will probably use less and in some cases the orbs can help you since there will be a bunch of missing lines from the enemies. This plays MUCH differently than the line destroyer weapon. Best of all, to code this only took less then 100 bytes. -
From the album: Tron Light Cycles
If an Orb is touched, all bikes temporarily can not produce a line. This causes some strange matches.-
- Tron
- Light Cycle Racing
-
(and 4 more)
Tagged with:
-
Tron Light Cycles for Colecovision - Work in progress
parkfun101 replied to parkfun101's topic in ColecoVision / Adam
Thanks Tarzilla, you guys are helping me make this game much better than I originally envisioned.
