Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

89 Excellent

About PuzZLeR

  • Rank
    Chopper Commander
  • Birthday May 18

Contact / Social Media

Profile Information

  • Custom Status
    JoKeR CaRd
  • Gender
  • Location
    Toronto Canada
  • Interests
    Game programming, video technology, running and jogging.

Recent Profile Visitors

2,781 profile views
  1. Greetings my Friends. I report to say that I have not been able to submit this year. I honestly gave it my best shot. Depsite my personal life and work I did want to be part of this contest very much. So, I am very disappointed as I did enjoy being part of the previous contests. My problem was not in any ambition, or game logic. I was coding my best IntyBASIC work yet. Unfortunately, the ROM started getting too large, and I have not been able to manage the size. I have been able to figure out ASM ORG, the CFG files or the LST files somewhat. I do understand them, and have been able to compress much of the code too with suggestions, but it becomes a challenge when it seems that every new line now creates another growth problem. I think I may have to rewrite much of the code because I suspect a particular function, which recognizes collision detection in a maze is overly complex, and bloats my program being in most lines. It works 100% but adds too much fat. Needs a rewrite. In other words, my game has become "car football". Hence, I ran out of time managing this. I did very much appreciate the full six months as it added very much to my project towards it's intended completion. But, I also don't want to insult the contest with unfinished stuff. The bar is definitely raised this year, and I am very impressed with what I've seen. Great work my friends, and thanks for giving the Intellivision Community that much more! I'd love to see this stuff for purchase on cartridge or digital relase soon! You got my money! 😃 I still want to upload my ROM when better finished, whether it's a week or a few months from now, for feedback. I did do plenty more work on my last two entries since too. Hopefully new versions are out for these as well. (Hey, I do dream of releasing something one day, so the Community's feedback will be paramount!) Shameless announcement despite my non-participation here. Just like my last entry being a parody of Deadly Discs/Deadly Dogs, and the one before parodying Intellivision history in general, this entry was to be a parody of Night Stalker. I really, really wanted this one part of the gang. No, it would not have won, but would have made an interesting companion IMO. Again, forgive me my friends. I did try. I don't code for a living so this is a bit harder for me, but still rewarding at any rate. I will also stick around and help grow the Community in any way I can as I grow too. Thanks so much. Geordie G.
  2. Hey guys, and thanks DZ-Jay and Kiwi for the explanations. It's making more and more sense now. 😃 Working on this still, and my biggest focus now is in the following advice: ...and.. I do have a question however for now, and hopefully it's not a stupid one. I am going through 42k.bas, and notice that the procedures in the program are called before the game loop. The ones I'm working on, and splitting, etc, are in the game loop. Is it Ok to assume that there would be no difference in applying some of these methods with ASM ORG when so? Just curious.
  3. Hey thanks! I am working on said suggestions right now. I will report back with questions and results. My last contest entry, "Deadly Balls", although only one level was still less than 40kb, and it had sound effects, music, and full game play. I've worked on it since then, added two levels, some different enemies, some extra music, some background, and it's still only around 40kb. My current attempting entry has no music, no sound effects, one level, and game play is still not complete and it's already well over 50kb. It astounds me what's going on this time around. Just thought I'd share that. Anyway, maybe if and when I post source someone can help if needed on that. Thanks for now. 🙂
  4. Hey guys, thanks for chiming in. This is still a learning experience for me grasping how the Intellivision allocates memory, and how ORG really works, and what it all does coming together. Just bear with me a tad. 🙂 I do fully understand what decimal vs hex vs binary is, and have math background - so there's hope! 😁 I'm the type that will try on his own first, not just blindly ask stupid questions. I will go through the information, new and go through the old again (which includes the excellent info in post #11). Thanks so much guys. I will report back with, legitimate questions, or, hopefully with my success. Thanks. Great Community here. Very helpful. 🙂 (If anybody else has some more info - feel free. I'll read it.)
  5. Hi again guys. I have tried, and tried, with different ASM ORG statements, and moving them all over my program as well as in different spots. No luck. The only thing that works is ASM ORG $A000 exactly as I have it in post #31. Nothing else. I have re-read previous posts, even went through Kiwi's link. I understand it much better (thanks!), but still can't implement it in my program with good results. What would you guys suggest given the code I have in post #31? I honestly really tried on my own before coming back here and asking again. I did. 😔 How can I move it any higher? It's right underneath my gameloop. If I move it anywhere in the gameloop the program crashes. Any higher than the gameloop, again it crashes. 😔 That looks nicely spread and optimized to me. Wish I could acheive this. This was very interesting. Thanks. Although I have not had success yet, at least I now have better background to understand what's next now. 🙂
  6. Hey guys, thanks. The reason my code is so extensive is also that I may be a bit ambitious. I'm using options to choose a player of different abilities, different code for multiplayer also, animations going E/W and N/S and not moving, different game speeds, different enemy A/Is, etc. You can see how this branches out into many permutations and combinations. It's like a tree. Also, it being a maze game adds some complicated collision detection. At any rate, here's some sample code, which is quite frequent all over my program. It's simplistic and hypothetical. Not asking for any "perfect" answer, but, if there are ideas on how to save space on the following it would be nice. if expr0 then if expr1 then if expr5 then statement01:statement02 else statement03 if expr0 then if expr2 then if expr6 then statement04:statement05 else statement06 if expr0 then if expr3 then if expr7 then statement07:statement08 else statement09 if expr0 then if expr4 then if expr8 then statement10:statement11 else statement12 I recently added some similar code to make one enemy's A/I a bit more sophisticated. It added over 5kb in ROM size - geez, it was only like 4 lines! 😲 Thanks.
  7. As the title says. I am looking for any tips on writing code that keeps the ROM size as small as possible. Are there good and bad ways to write certain IntyBASIC code, that generates the same result, but adds less size? For example, would better use of constants, functions or procedures, help? What about better placement of if, or nested if, statements? Better use of variables? I can go on, but I know you guys get it. Sure you can play with the ORG statement, but more efficient code will help too. I have another adjacent thread where I now have a ROM that is (in Windows NTSF) over 50kb. I have no music, sound effects, graphics screens yet, and this is concerning as I believe the max size would be about 84kb. Any tips? Thanks!
  8. Hey, there. I really am trying to understand this stuff. I have a clue, but still, I ask for a bit of patience. I was on my way after a little help from Kiwi in post #8, with just adding the ASM ORG $A000, and the problem was at least temporarily solved. In post #13 I said I'd carry on as is until... I just added some music. Bang. Program crashes. Now again I ask for help. Here is a simple idea of how my program looks now, similar to before, and with only one ORG statement after the game loop: include "constants.bas" wait stack_check wait wait play volume 15 play full wait play tune_intro wait REM Title Screen: title_screen_control_1: <"print title screen text"> if (CONT.LEFT+CONT.RIGHT+CONT.UP+CONT.DOWN)=0 then goto title_screen_control_1 play none sound 0,1,0 sound 1,1,0 sound 2,1,0 sound 4,1,$38 cls wait define DEF00,16,gramchars1 wait define DEF16,16,gramchars2 wait define DEF32,16,gramchars3 wait define DEF48,16,gramchars4 wait <"some initialized variables"> SCREEN level_01_cards gameloop: for i=1 to 240 wait gosub <"this procedure"> gosub <"that procedure"> gosub <"another procedure"> next i goto gameloop ASM ORG $A000 include "game_procedures_01_sprites.bas" include "game_procedures_02_movement.bas" include "game_procedures_03.bas" include "game_sfx.bas" include "game_data.bas" include "game_screens.bas" include "game_cards_gfx.bas" include "game_music.bas" The last good compile generated this CFG file: [mapping] $0000 - $0599 = $5000 $059A - $1599 = $A000 $159A - $2599 = $B000 $259A - $3599 = $C000 $359A - $4599 = $D000 $459A - $5599 = $E000 $559A - $64FB = $F000 The crash generated this one (but not sure if it's legit as a crashed program may generate bad data, but anyhow...): [mapping] $0000 - $0684 = $5000 $0685 - $1684 = $A000 $1685 - $2684 = $B000 $2685 - $3684 = $C000 $3685 - $4684 = $D000 $4685 - $5684 = $E000 $5685 - $60B2 = $F000 All I did this time is add actual music in the "game_music.bas" file, which was previously just an empty placeholder. I tried several things, and no luck. Any help? Thanks for reading.
  9. Hey thanks guys. Useful info. Tell you what. Since - currently - I am experiencing no problems, I will continue as is. I will keep watching the LST and CFG files in the meantime. When, or if, I am experiencing such problems again as my program grows I will chime back in this thread, and upload said files if it helps. Nevertheless, even without problems I will report back with my progress if I was able to figure out something on my own - in case this will help someone else in the future. Thanks again! 🙂
  10. Hi again. Couldn't report back till now (still was experimenting, work, Real Life, yaddy-yah...). Good news. My program runs and compiles just fine now, by shifting ASM ORG $A000 lower in the code. Thanks Kiwi. Bad news. With ASM ORG $C100 placed where Kiwi suggested, or other places I've experimented with, I get a stack overflow. Something is funky on my end. I would say, no problem, as long as the program keeps growing and compiling without issue I'm good. I don't need ASM ORG $C100... yet. But now my ROM is over 50kb, and I'm getting concerned. Any suggestions? (This is also concerning in that I have yet to put any title screen graphics, music, sound effects, etc! Yikes! 😲 Maybe I should start a thread on managing ROM size, either with more efficient code, or with better use of ORG.)
  11. Thank you Nanochess. I also do honestly hope I haven't upset anyone, as I was merely, like Rinka, just making a request. I was going to be accepting of any decision. Also, I honestly would've preferred the original deadline instead of someone having been hurt, sincerely. Ha ha. Sure. But, keep in mind, I was only really asking for six months more than I was asking for an extension, which I hope all future contests give us - at least six months of development time. 🙂 Again, thank you.
  12. Hey thanks! 👍 It's very late in my area and I have to be up in just a few hours for work, but when I get home after work tomorrow I will test it and let you know how it goes. I do appreciate this! 🙂
  13. Hi Kiwi. Thanks for responding. I see you have knowledge about this from other posts too, but I am still learning it, and still studying the sample 42k.bas. Below is a simplified idea of my Main file, which "includes" my other content and code in other files. Currently I'm only using ASM ORG $A000. Any tips from you or others? include "constants.bas" goto start_of_program asm org $A000 start_of_program: wait wait stack_check wait wait play volume 15 play full wait play tune_intro wait REM Title Screen: title_screen_control_1: <"print title screen text"> if (CONT.LEFT+CONT.RIGHT+CONT.UP+CONT.DOWN)=0 then goto title_screen_control_1 play none sound 0,1,0 sound 1,1,0 sound 2,1,0 sound 4,1,$38 cls wait define DEF00,16,gramchars1 wait define DEF16,16,gramchars2 wait define DEF32,16,gramchars3 wait define DEF48,16,gramchars4 wait <"some initialized variables"> SCREEN level_01_cards gameloop: for i=1 to 240 wait gosub <"this procedure"> gosub <"that procedure"> gosub <"another procedure"> next i goto gameloop include "game_procedures_01_sprites.bas" include "game_procedures_02_movement.bas" include "game_procedures_03.bas" include "game_sfx.bas" include "game_data.bas" include "game_screens.bas" include "game_cards_gfx.bas" include "game_music.bas"
  14. Hi Nanochess. Thanks for chiming in. Yes, that high number is a horror show! 😲 I'm suspecting it's the ASM ORG statements I'm using that are causing the problem as my program is growing. I do need the ASM ORG $A000 statement in there otherwise the program won't run, but will play around with the others and report back. (The ROM is currently over 40KB now, but I put in ASM ORG $A000 a little while ago when the ROM got to about 17KB or 17.5KB to keep it working.) I will be back soon. Thanks again.
  15. Hi intvnut, thanks for responding. Hopefully this may help you (or anyone else) help me. The following worked fine in the CLI window: intybasic input.bas output.asm Then the following: as1600 -o output.bin -l output.lst output.asm Resulted in: ERROR SUMMARY - ERRORS DETECTED 1430 - WARNINGS 0 To give you an idea what caused this for me. (Using hypothetical code.) The following code fragment, although was logically wrong in not giving me the result I wanted, compiled and ran just fine with 0 errors detected. if avatar_y_pos< enemy_y_pos then enemy_y_pos=enemy_y_pos-1 if avatar_y_pos>= enemy_y_pos then enemy_y_pos=enemy_y_pos+1 if avatar_x_pos< enemy_x_pos then enemy_x_pos=enemy_x_pos-1 if avatar_x_pos>= enemy_x_pos then enemy_x_pos=enemy_x_pos+1 When I tried to change it to the following, by entering some code before each line (pretend the function is called about 10 times and the parameters are different numbers) then the problem began: goNorthFunction(par1,par2) and goNorthFunction(par3,par4) and goNorthFunction(par5,par6) <"etc, etc"> and enemy_y_pos>8 then if avatar_y_pos< enemy_y_pos then enemy_y_pos=enemy_y_pos-1 goSouthFunction(par1,par2) and goSouthFunction(par3,par4) and goSouthFunction(par5,par6) <"etc, etc"> and enemy_y_pos<96 then if avatar_y_pos>= enemy_y_pos then enemy_y_pos=enemy_y_pos+1 goWestFunction(par1,par2) and goWestFunction(par3,par4) and goWestFunction(par5,par6) <"etc, etc"> and enemy_y_pos>8 then if avatar_x_pos< enemy_x_pos then enemy_x_pos=enemy_x_pos-1 goEastFunction(par1,par2) and goEastFunction(par3,par4) and goEastFunction(par5,par6) <"etc, etc"> and enemy_y_pos<160 then if avatar_x_pos>= enemy_x_pos then enemy_x_pos=enemy_x_pos+1 That's the only change I made, just trying to make the sprites move according to a certain way, and these functions have been used many, many times throughout the program before without any problems. Hopefully this helps.
  • Create New...