freewheel Posted October 15, 2015 Share Posted October 15, 2015 The last one (fast) is perfect. Would have to play to be sure, but it looks just right to me. Quote Link to comment Share on other sites More sharing options...
artrag Posted October 15, 2015 Author Share Posted October 15, 2015 Is there a way to print a card using PRINT and the hexadecimal value of the backtab ram ? In short, what is the correct syntax for this ? PRINT AT screenpos(2, 6),"\$0619" It seems to work with decimal numbers, but using hex I get runtime errors.... What is wrong ? This is the procedure that hangs the game: f1: procedure PRINT AT screenpos(2-1, 6-1),"\$0619" PRINT AT screenpos(3-1, 1-1),"\$0619" PRINT AT screenpos(3-1, 5-1),"\$0569" PRINT AT screenpos(3-1, 7-1),"\$0531" PRINT AT screenpos(3-1, 11-1),"\$0619" PRINT AT screenpos(6-1, 6-1),"\$0619" PRINT AT screenpos(7-1, 5-1),"\$0619" PRINT AT screenpos(7-1, 7-1),"\$0619" PRINT AT screenpos(8-1, 4-1),"\$0619" PRINT AT screenpos(8-1, 8-1),"\$0619" PRINT AT screenpos(9-1, 5-1),"\$0619" PRINT AT screenpos(9-1, 7-1),"\$0619" PRINT AT screenpos(10-1, 6-1),"\$0619" PRINT AT screenpos(13-1, 1-1),"\$0619" PRINT AT screenpos(13-1, 5-1),"\$0569" PRINT AT screenpos(13-1, 7-1),"\$0531" PRINT AT screenpos(13-1, 11-1),"\$0619" PRINT AT screenpos(14-1, 6-1),"\$0619" end Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted October 15, 2015 Share Posted October 15, 2015 Why don't you use something like :- #backtab(screenpos(2-1,6-1))=$0619 ... Much more efficient 1 Quote Link to comment Share on other sites More sharing options...
Kiwi Posted October 16, 2015 Share Posted October 16, 2015 I would just use poke $200+2+6*20,$0619 Quote Link to comment Share on other sites More sharing options...
artrag Posted October 16, 2015 Author Share Posted October 16, 2015 (edited) Why don't you use something like :- #backtab(screenpos(2-1,6-1))=$0619 ... Much more efficient Yes! Thanks. Iirc it was me asking Oscar for this feature Edited October 16, 2015 by artrag Quote Link to comment Share on other sites More sharing options...
+nanochess Posted October 16, 2015 Share Posted October 16, 2015 Is there a way to print a card using PRINT and the hexadecimal value of the backtab ram ? In short, what is the correct syntax for this ? PRINT AT screenpos(2, 6),"\$0619" It seems to work with decimal numbers, but using hex I get runtime errors.... What is wrong ? This is the procedure that hangs the game: f1: procedure PRINT AT screenpos(2-1, 6-1),"\$0619" PRINT AT screenpos(3-1, 1-1),"\$0619" PRINT AT screenpos(3-1, 5-1),"\$0569" PRINT AT screenpos(3-1, 7-1),"\$0531" PRINT AT screenpos(3-1, 11-1),"\$0619" PRINT AT screenpos(6-1, 6-1),"\$0619" PRINT AT screenpos(7-1, 5-1),"\$0619" PRINT AT screenpos(7-1, 7-1),"\$0619" PRINT AT screenpos(8-1, 4-1),"\$0619" PRINT AT screenpos(8-1, 8-1),"\$0619" PRINT AT screenpos(9-1, 5-1),"\$0619" PRINT AT screenpos(9-1, 7-1),"\$0619" PRINT AT screenpos(10-1, 6-1),"\$0619" PRINT AT screenpos(13-1, 1-1),"\$0619" PRINT AT screenpos(13-1, 5-1),"\$0569" PRINT AT screenpos(13-1, 7-1),"\$0531" PRINT AT screenpos(13-1, 11-1),"\$0619" PRINT AT screenpos(14-1, 6-1),"\$0619" end Taking as example the last line, you should change it to (and every line): PRINT AT screenpos(14-1, 6-1),$0619 Quote Link to comment Share on other sites More sharing options...
artrag Posted October 16, 2015 Author Share Posted October 16, 2015 (edited) Early attempt Use keys on controller 2 to start and for sfx dzgorf.rom Edited October 16, 2015 by artrag Quote Link to comment Share on other sites More sharing options...
artrag Posted October 17, 2015 Author Share Posted October 17, 2015 (edited) Oscar, I think there is a possible optimization issue with this code: f4: procedure #backtab(screenpos(3-1+2, 6-1))= #s1 #backtab(screenpos(4-1+2, 2-1))= #s1 #backtab(screenpos(4-1+2, 5-1))= #s1 #backtab(screenpos(4-1+2, 7-1))= #s1 #backtab(screenpos(4-1+2, 10-1))= #s1 #backtab(screenpos(7-1+2, 6-1))= #s1 #backtab(screenpos(8-1+2, 1-1))= #s1 #backtab(screenpos(8-1+2, 5-1))= #s1 #backtab(screenpos(8-1+2, 7-1))= #s1 #backtab(screenpos(8-1+2, 11-1))= #s1 #backtab(screenpos(9-1+2, 6-1))= #s1 #backtab(screenpos(12-1+2, 2-1))= #s1 #backtab(screenpos(12-1+2, 5-1))= #s1 #backtab(screenpos(12-1+2, 7-1))= #s1 #backtab(screenpos(12-1+2, 10-1))= #s1 #backtab(screenpos(13-1+2, 6-1))= #s1 return end #s1 is a variable defined at the beginning. The issues is (or could be) in the generated ASM. I get this: ; F4 Q23: PROC BEGIN ;[63] #backtab(screenpos(3-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",63 MVI V2,R0 MVO R0,Q2+104 ;[64] #backtab(screenpos(4-1+2, 2-1))= #s1 SRCFILE "crap\warp_frames.bas",64 MVI V2,R0 MVO R0,Q2+25 ;[65] #backtab(screenpos(4-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",65 MVI V2,R0 MVO R0,Q2+85 ;[66] #backtab(screenpos(4-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",66 MVI V2,R0 MVO R0,Q2+125 ;[67] #backtab(screenpos(4-1+2, 10-1))= #s1 SRCFILE "crap\warp_frames.bas",67 MVI V2,R0 MVO R0,Q2+185 ;[68] #backtab(screenpos(7-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",68 MVI V2,R0 MVO R0,Q2+108 ;[69] #backtab(screenpos(8-1+2, 1-1))= #s1 SRCFILE "crap\warp_frames.bas",69 MVI V2,R0 MVO R0,Q2+9 ;[70] #backtab(screenpos(8-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",70 MVI V2,R0 MVO R0,Q2+89 ;[71] #backtab(screenpos(8-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",71 MVI V2,R0 MVO R0,Q2+129 ;[72] #backtab(screenpos(8-1+2, 11-1))= #s1 SRCFILE "crap\warp_frames.bas",72 MVI V2,R0 MVO R0,Q2+209 ;[73] #backtab(screenpos(9-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",73 MVI V2,R0 MVO R0,Q2+110 ;[74] #backtab(screenpos(12-1+2, 2-1))= #s1 SRCFILE "crap\warp_frames.bas",74 MVI V2,R0 MVO R0,Q2+33 ;[75] #backtab(screenpos(12-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",75 MVI V2,R0 MVO R0,Q2+93 ;[76] #backtab(screenpos(12-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",76 MVI V2,R0 MVO R0,Q2+133 ;[77] #backtab(screenpos(12-1+2, 10-1))= #s1 SRCFILE "crap\warp_frames.bas",77 MVI V2,R0 MVO R0,Q2+193 ;[78] #backtab(screenpos(13-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",78 MVI V2,R0 MVO R0,Q2+114 ;[79] return SRCFILE "crap\warp_frames.bas",79 RETURN ;[80] end SRCFILE "crap\warp_frames.bas",80 ENDP The compiler keeps loading R0 each time, but R0 is already assigned and does not change. I would have expected something like: ; F4 Q23: PROC BEGIN ;[63] #backtab(screenpos(3-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",63 MVI V2,R0 MVO R0,Q2+104 ;[64] #backtab(screenpos(4-1+2, 2-1))= #s1 MVO R0,Q2+25 ;[65] #backtab(screenpos(4-1+2, 5-1))= #s1 MVO R0,Q2+85 ;[66] #backtab(screenpos(4-1+2, 7-1))= #s1 MVO R0,Q2+125 ;[67] #backtab(screenpos(4-1+2, 10-1))= #s1 MVO R0,Q2+185 ;[68] #backtab(screenpos(7-1+2, 6-1))= #s1 MVO R0,Q2+108 ;[69] #backtab(screenpos(8-1+2, 1-1))= #s1 MVO R0,Q2+9 ;[70] #backtab(screenpos(8-1+2, 5-1))= #s1 MVO R0,Q2+89 ;[71] #backtab(screenpos(8-1+2, 7-1))= #s1 MVO R0,Q2+129 [....] ;[80] end SRCFILE "crap\warp_frames.bas",80 ENDP Is there some timing issue for gram access that makes the optimization above unuseful ? Edited October 17, 2015 by artrag 1 Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted October 17, 2015 Share Posted October 17, 2015 The instruction mvo is non-interruptible. Long sequences of mvo need to be broken up (in groups of 3 or 4) with interruptible instructions or nops. Quote Link to comment Share on other sites More sharing options...
artrag Posted October 17, 2015 Author Share Posted October 17, 2015 Major update in the first post Quote Link to comment Share on other sites More sharing options...
+nanochess Posted October 17, 2015 Share Posted October 17, 2015 Oscar, I think there is a possible optimization issue with this code: f4: procedure #backtab(screenpos(3-1+2, 6-1))= #s1 #backtab(screenpos(4-1+2, 2-1))= #s1 #backtab(screenpos(4-1+2, 5-1))= #s1 #backtab(screenpos(4-1+2, 7-1))= #s1 #backtab(screenpos(4-1+2, 10-1))= #s1 #backtab(screenpos(7-1+2, 6-1))= #s1 #backtab(screenpos(8-1+2, 1-1))= #s1 #backtab(screenpos(8-1+2, 5-1))= #s1 #backtab(screenpos(8-1+2, 7-1))= #s1 #backtab(screenpos(8-1+2, 11-1))= #s1 #backtab(screenpos(9-1+2, 6-1))= #s1 #backtab(screenpos(12-1+2, 2-1))= #s1 #backtab(screenpos(12-1+2, 5-1))= #s1 #backtab(screenpos(12-1+2, 7-1))= #s1 #backtab(screenpos(12-1+2, 10-1))= #s1 #backtab(screenpos(13-1+2, 6-1))= #s1 return end #s1 is a variable defined at the beginning. The issues is (or could be) in the generated ASM. I get this: ; F4 Q23: PROC BEGIN ;[63] #backtab(screenpos(3-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",63 MVI V2,R0 MVO R0,Q2+104 ;[64] #backtab(screenpos(4-1+2, 2-1))= #s1 SRCFILE "crap\warp_frames.bas",64 MVI V2,R0 MVO R0,Q2+25 ;[65] #backtab(screenpos(4-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",65 MVI V2,R0 MVO R0,Q2+85 ;[66] #backtab(screenpos(4-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",66 MVI V2,R0 MVO R0,Q2+125 ;[67] #backtab(screenpos(4-1+2, 10-1))= #s1 SRCFILE "crap\warp_frames.bas",67 MVI V2,R0 MVO R0,Q2+185 ;[68] #backtab(screenpos(7-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",68 MVI V2,R0 MVO R0,Q2+108 ;[69] #backtab(screenpos(8-1+2, 1-1))= #s1 SRCFILE "crap\warp_frames.bas",69 MVI V2,R0 MVO R0,Q2+9 ;[70] #backtab(screenpos(8-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",70 MVI V2,R0 MVO R0,Q2+89 ;[71] #backtab(screenpos(8-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",71 MVI V2,R0 MVO R0,Q2+129 ;[72] #backtab(screenpos(8-1+2, 11-1))= #s1 SRCFILE "crap\warp_frames.bas",72 MVI V2,R0 MVO R0,Q2+209 ;[73] #backtab(screenpos(9-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",73 MVI V2,R0 MVO R0,Q2+110 ;[74] #backtab(screenpos(12-1+2, 2-1))= #s1 SRCFILE "crap\warp_frames.bas",74 MVI V2,R0 MVO R0,Q2+33 ;[75] #backtab(screenpos(12-1+2, 5-1))= #s1 SRCFILE "crap\warp_frames.bas",75 MVI V2,R0 MVO R0,Q2+93 ;[76] #backtab(screenpos(12-1+2, 7-1))= #s1 SRCFILE "crap\warp_frames.bas",76 MVI V2,R0 MVO R0,Q2+133 ;[77] #backtab(screenpos(12-1+2, 10-1))= #s1 SRCFILE "crap\warp_frames.bas",77 MVI V2,R0 MVO R0,Q2+193 ;[78] #backtab(screenpos(13-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",78 MVI V2,R0 MVO R0,Q2+114 ;[79] return SRCFILE "crap\warp_frames.bas",79 RETURN ;[80] end SRCFILE "crap\warp_frames.bas",80 ENDP The compiler keeps loading R0 each time, but R0 is already assigned and does not change. I would have expected something like: ; F4 Q23: PROC BEGIN ;[63] #backtab(screenpos(3-1+2, 6-1))= #s1 SRCFILE "crap\warp_frames.bas",63 MVI V2,R0 MVO R0,Q2+104 ;[64] #backtab(screenpos(4-1+2, 2-1))= #s1 MVO R0,Q2+25 ;[65] #backtab(screenpos(4-1+2, 5-1))= #s1 MVO R0,Q2+85 ;[66] #backtab(screenpos(4-1+2, 7-1))= #s1 MVO R0,Q2+125 ;[67] #backtab(screenpos(4-1+2, 10-1))= #s1 MVO R0,Q2+185 ;[68] #backtab(screenpos(7-1+2, 6-1))= #s1 MVO R0,Q2+108 ;[69] #backtab(screenpos(8-1+2, 1-1))= #s1 MVO R0,Q2+9 ;[70] #backtab(screenpos(8-1+2, 5-1))= #s1 MVO R0,Q2+89 ;[71] #backtab(screenpos(8-1+2, 7-1))= #s1 MVO R0,Q2+129 [....] ;[80] end SRCFILE "crap\warp_frames.bas",80 ENDP Is there some timing issue for gram access that makes the optimization above unuseful ? I'll look into it, it should be optimized. Quote Link to comment Share on other sites More sharing options...
artrag Posted October 17, 2015 Author Share Posted October 17, 2015 The instruction mvo is non-interruptible. Long sequences of mvo need to be broken up (in groups of 3 or 4) with interruptible instructions or nops. This means that the optimized code should be MVI V2,R0 MVO R0,Q2+104 MVO R0,Q2+25 MVO R0,Q2+85 NOP MVO R0,Q2+125 MVO R0,Q2+185 MVO R0,Q2+108 MVO R0,Q2+9 NOP MVO R0,Q2+89 MVO R0,Q2+129 [....] Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted October 17, 2015 Share Posted October 17, 2015 Major update in the first post It's looking, sounding, and playing a lot better! I like the new warp effect, it's very effective in giving the impression of speed through a star field. I like the sound effects on the demo screen, though I do not hear them all in the game itself. The background music is much better, but I think it still overshadows the sound effects. I suggest lowering its volume by two notches or so. Also, transposing the pattern every so often would make it sound less monotonous. Overall, great work so far. -dZ. Quote Link to comment Share on other sites More sharing options...
artrag Posted October 18, 2015 Author Share Posted October 18, 2015 AFAIK there is no volume control among the music commands. Is there? Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted October 18, 2015 Share Posted October 18, 2015 AFAIK there is no volume control among the music commands. Is there? Hmmm... I just realized that you are right. Oscar, would you consider adding support for volume control to the music player in IntyBASIC? If not per note (to simulate velocity), at least for the overall song. -dZ. 1 Quote Link to comment Share on other sites More sharing options...
artrag Posted October 19, 2015 Author Share Posted October 19, 2015 (edited) WIP on bosses : press enter to skip the bosses ATM there is no code for player or interaction during boss mode dzgorf.rom dzgorf2015_11_15.rar Edited November 15, 2015 by artrag Quote Link to comment Share on other sites More sharing options...
artrag Posted November 21, 2015 Author Share Posted November 21, 2015 minimal update with game over music new files are in the first post Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted November 21, 2015 Share Posted November 21, 2015 minimal update with game over music new files are in the first post Thanks for the update. I just tried playing it for a quick run and encountered a problem. I think I reached a "boss," but it was weird: first, there were still two orange ships outstanding in the center, and all of a sudden the music changed, my ship froze, and this larger saucer guy showed up going coming in and out from the center. All the time my ship was frozen and I couldn't do absolutely anything, though the screen seemed to be animated. I suppose this is a bug. I'll play some more and provide more feedback. -dZ. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted November 21, 2015 Share Posted November 21, 2015 (edited) OK, it did it again. I shoot the "last" orange ship (but not really, since there were still two orange dots in the center), and I hear a sound effect (#3 from the startup menu) and the screen flashes briefly, and my ship freezes. Then the "boss" ship comes out but nothing happens at that point. That's a screenshot of the game at that point. The yellow laser fireball is stuck on screen just like my ship. Edited November 21, 2015 by DZ-Jay Quote Link to comment Share on other sites More sharing options...
artrag Posted November 21, 2015 Author Share Posted November 21, 2015 (edited) Thanks for the update. I just tried playing it for a quick run and encountered a problem. I think I reached a "boss," but it was weird: first, there were still two orange ships outstanding in the center, and all of a sudden the music changed, my ship froze, and this larger saucer guy showed up going coming in and out from the center. All the time my ship was frozen and I couldn't do absolutely anything, though the screen seemed to be animated. shot0000.gif shot0001.gif shot0002.gif I suppose this is a bug. I'll play some more and provide more feedback. -dZ. Interaction is still missing It is a wip You can only cycle bosses with buttons and skip boss phase pressing enter Edited November 21, 2015 by artrag Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted November 21, 2015 Share Posted November 21, 2015 (edited) Interaction is still missing It is a wip You can only cycle bosses with buttons and skip boss phase pressing enter So the boss phase is not complete. Gotcha! I just read the "Features" on the first post. A few observations: Music sounds much better at a faster pace now, although it is still a generic scale. Sound effects seem to have a very slight delay. This is more noticeable in the menu screen, where the effect is heard like 1/2 a second after pressing the key. During game-play, it is a bit distracting, since the sound does not seem to be truly connected with firing the laser. I really recommend adding some dampening to movement on the initial press of the disc. As it stands, it is hard to get much accuracy to shoot down slow-moving enemies; pressing the disc very slightly moves my ship a considerable distance. (This is in emulation.) The "Game-Over" music fits nicely. I would recommend a longer transition to the "Game-Over" phase, perhaps by making the text move slower. It's hard to perceive the switch until the music starts playing. I personally do not like the Space Invader aliens as the enemies. In my opinion, they do not fit the game style. I much preferred them better when they were saucers or spaceships. The aliens look a bit silly in such a cool-looking game. The explosion of my ship being destroyed flashes much too fast to be appreciated. Perhaps you could introduce a better animation, or slow down the current one just a bit. Also, the sound effect on my ship destruction is a bit lame for that situation. (The effect is cool, just not for that event.) Maybe something a bit more explosy would do? I cycled through the bosses and most of them look the same and seem to be generic clones of Space Invader sprites (see above). However, I do like the fighter-looking ship. Let's have more of that ship style around the game! Overall, looking better and better! Great work! P.S. By the way, if you would like help with sprite design, there are a couple of good pixel artists in this forum that may assist. Edited November 21, 2015 by DZ-Jay Quote Link to comment Share on other sites More sharing options...
artrag Posted November 21, 2015 Author Share Posted November 21, 2015 Artist support needed. Is there some volunteer? Enemies have 8x8 size and two frames of animations, bosses have 16x24 size and have one frame Current graphic is here Quote Link to comment Share on other sites More sharing options...
artrag Posted November 21, 2015 Author Share Posted November 21, 2015 I need also a contribution for the title screen This is the current idea, but I have trouble to convert it to stack mode, is there any tool? Quote Link to comment Share on other sites More sharing options...
pimpmaul69 Posted November 21, 2015 Share Posted November 21, 2015 Artist support needed. Is there some volunteer? Enemies have 8x8 size and two frames of animations, bosses have 16x24 size and have one frame Current graphic is here if i remember when i wake up i will try to work up some baddies for ya. Any preferance of look you are going for? Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted November 21, 2015 Share Posted November 21, 2015 (edited) I need also a contribution for the title screen This is the current idea, but I have trouble to convert it to stack mode, is there any tool? I think that's perfectly doable in color stack mode. I'll try to work on it today. -dZ. Edited November 21, 2015 by DZ-Jay 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.