+bhall408 Posted May 31, 2020 Share Posted May 31, 2020 3 minutes ago, cmadruga said: Would you say this is acceptable, or should I keep squeezing? That seems pretty fast. If Intellivision supports it, one way to make it *appear* faster would be to hide the drawing and then reveal all at once. On an Atari 8-bit, you could have done that a few ways - disable the video display, do the drawing, re-enable it (had a bonus of giving you about 30% extra CPU time while blanked!) - set all colors to be the same (Atari had CLUT/index tables), draw, and then set the colors back to what you wanted In both cases, drawing still happens block by block, but you get the illusion of the result appearing all at once. Not sure if either of those are possible on Intellivision. Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted May 31, 2020 Author Share Posted May 31, 2020 10 hours ago, Kiwi said: I was just curious. I did have to change the foreground bit color from the screen data in ROM to change the building in Mad Bomber. So I add or subtract the card number to change the color. if BDrop=1 then SCREEN my_screen if BGcolor=5 then #AddColor=0 else #AddColor=-4 'if BGcolor=11 then #AddColor=-4 if BGcolor=6 then #AddColor=$1000-1 if BGcolor=13 then #AddColor=-3 if BGcolor=12 then #AddColor=$1003 for i=0 to 139 '#MCard=0 #MCard=peek ($200+80+i) #MCard=#MCard+#AddColor poke $200+80+i,#MCard next i From here: http://wiki.intellivision.us/index.php?title=STIC Register $20 said active display strobe. I'm not sure if that blanks the screen. But, I think either @nanochess or @intvnut may have the answer. Thanks for your question, it led me to take another look at the code today and improve a few things. Relative to your code, I'd say I do something similar, but I do not retouch colors after drawing the screen. I do it as I draw each tile. Thanks for sharing! How do you draw your screens? Do you use a tile editor? Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted May 31, 2020 Author Share Posted May 31, 2020 3 minutes ago, bhall408 said: That seems pretty fast. If Intellivision supports it, one way to make it *appear* faster would be to hide the drawing and then reveal all at once. On an Atari 8-bit, you could have done that a few ways - disable the video display, do the drawing, re-enable it (had a bonus of giving you about 30% extra CPU time while blanked!) - set all colors to be the same (Atari had CLUT/index tables), draw, and then set the colors back to what you wanted In both cases, drawing still happens block by block, but you get the illusion of the result appearing all at once. Not sure if either of those are possible on Intellivision. Thanks for the feedback, and for the suggestion. I'm not familiar at all with the Atari 8-bit, but that sounds like a neat technique. Well, Artrag and Nanochess presented one option for disabling the screen, but it appears it would shut down music in the process. For this game the music would need to keep playing continuously... Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted May 31, 2020 Share Posted May 31, 2020 1 minute ago, cmadruga said: Thanks for the feedback, and for the suggestion. I'm not familiar at all with the Atari 8-bit, but that sounds like a neat technique. Well, Artrag and Nanochess presented one option for disabling the screen, but it appears it would shut down music in the process. For this game the music would need to keep playing continuously... If you can write VBLANK routines, *and* those routines will execute when screen drawing is off (may or may not be true for Intellivision), one way to have the music continue would be to have the music logic handled during VBLANK (vertical blank) processing. Sort of an early days hardware multi-threading. I did this for my own Atari games. One nuance is that VBLANK is tied to screen refresh, and so you (optionally) would want to take into account if the system is 60 vs 50 hz (NTSC vs PAL) if you want consistent timing between systems. Quote Link to comment Share on other sites More sharing options...
carlsson Posted May 31, 2020 Share Posted May 31, 2020 I see that MVO R0, $20 happens in _int_vector which is part of intybasic_epilogue.asm. If you make your custom epilogue, it might work? _int_vector: PROC MVI var_VIDEO_ENABLE, R1 CMPI #1,R1 BNE @@no_display MVO R0, $20 ; Activates display @@no_display: BEGIN given that you have defined a variable video_enable in your code. I briefly tested it with a music player which keeps playing the music, but I don't know how well it works in a real life application and you'd need to replace the standard epilogue with this custom one, unless there is a better way to inject code into it. 2 2 Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 1, 2020 Author Share Posted June 1, 2020 (edited) Thanks Carlsson, just so I understand how to apply this: 1- update the epilogue to show the code above. 2- define a video_enable variable as part of my game 3- set video_enable... 4 questions here: - Do I set it to 1 or 0 for enable/disable? It seems so from the ASM code, but just to make extra sure. - Would the change kick in immediately? - I don't need to do ASM EIS/DIS correct? - So basically... I turn video off... do whatever I want with the screen, then... voila, bring it back on and changes will be reflected there? 4- make sure to test it with music playing Please let me know. Edited June 1, 2020 by cmadruga 1 Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 1, 2020 Author Share Posted June 1, 2020 19 hours ago, bhall408 said: If you can write VBLANK routines, *and* those routines will execute when screen drawing is off (may or may not be true for Intellivision), one way to have the music continue would be to have the music logic handled during VBLANK (vertical blank) processing. Sort of an early days hardware multi-threading. I did this for my own Atari games. One nuance is that VBLANK is tied to screen refresh, and so you (optionally) would want to take into account if the system is 60 vs 50 hz (NTSC vs PAL) if you want consistent timing between systems. Very cool! Let's see if the test described above will do the trick on the Inty. What games have you written for the Atari? Do you have videos? Quote Link to comment Share on other sites More sharing options...
artrag Posted June 1, 2020 Share Posted June 1, 2020 On 5/31/2020 at 4:26 PM, nanochess said: Currently there is no way to disable/enable the screen except using ASM DIS and ASM EIS like ARTRAG says but the side-effect is the background music interrupted. This is because the video interrupt routine always kicks the port to keep the screen enabled. Once you've included the above patch to the epilogue, put DIM VIDEO_ENABLE in your code: if you reset VIDEO_ENABLE by VIDEO_ENABLE = 0 the display will go off starting from the next frame until you set VIDEO_ENABLE = 1 the video with go active in the next frame It should have no effect on the music and other code called by ON FRAME GOSUB No need of ASM DIS and ASM EIS in this way 2 Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 1, 2020 Author Share Posted June 1, 2020 31 minutes ago, artrag said: Once you've included the above patch to the epilogue, put DIM VIDEO_ENABLE in your code: if you reset VIDEO_ENABLE by VIDEO_ENABLE = 0 the display will go off starting from the next frame until you set VIDEO_ENABLE = 1 the video with go active in the next frame It should have no effect on the music and other code called by ON FRAME GOSUB No need of ASM DIS and ASM EIS in this way Sweet! Thanks for the detailed explanation! Will post it here once I'm able to test it. Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 1, 2020 Share Posted June 1, 2020 Notice that you'll spend an extra 25 cycles on every vertical blank. I don't know how much that affects other parts of timing, e.g. how many GRAM characters you have time to redefine but it is good to remember if the hack turns out to be working. Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 1, 2020 Author Share Posted June 1, 2020 Absolute success!!! Thanks!!! Oscar: could we make this the standard epilogue from now on and create an Intybasic command like VIDEO ON/OFF? 3 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted June 1, 2020 Share Posted June 1, 2020 (edited) 33 minutes ago, cmadruga said: Absolute success!!! Thanks!!! Oscar: could we make this the standard epilogue from now on and create an Intybasic command like VIDEO ON/OFF? I've sent you a preview alpha release of IntyBASIC with SCREEN ENABLE / SCREEN DISABLE. Needs testing because I earned some extra cycles so it is not so official yet, but I'll send it via PM to anyone asking for it. Edited June 1, 2020 by nanochess 1 Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 2, 2020 Author Share Posted June 2, 2020 (edited) Man, you guys are like The Avengers. Fantastic collaboration and super skills. I’m here feeling like: Edited June 2, 2020 by cmadruga 4 Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 2, 2020 Share Posted June 2, 2020 (edited) Just for fun, I tried yet another quick SID2MIDI conversion. It doesn't loop properly, and I didn't want it to be too long but it gives an idea. Edit: Updated (further shortened) files, so they at least loop. goonies.bas goonies.rom Edited June 2, 2020 by carlsson Quote Link to comment Share on other sites More sharing options...
Kiwi Posted June 2, 2020 Share Posted June 2, 2020 On 5/31/2020 at 4:33 PM, cmadruga said: How do you draw your screens? Do you use a tile editor? Back then when IntyBASIC was new, I drew the tiles in bitmap and figured out the pattern/color numbers by using the chart up on Intellivision Wiki to make the binary code, and then used the calculator to convert to hex. So it's only that building screen I did that too. Now I do all my tiling in TileStudio and have intycolor process it. Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 2, 2020 Author Share Posted June 2, 2020 5 hours ago, carlsson said: Just for fun, I tried yet another quick SID2MIDI conversion. It doesn't loop properly, and I didn't want it to be too long but it gives an idea. Edit: Updated (further shortened) files, so they at least loop. goonies.bas 17.12 kB · 1 download goonies.rom 6.56 kB · 2 downloads Thank you! How do you do this conversion? Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 2, 2020 Share Posted June 2, 2020 (edited) I use SID2MIDI and choose text output instead of MIDI output. Then I massage the text file in Emacs, by removing all information about frequencies, waveforms, ADSR and filters and in this case also a simle awk script '{ NR = 3 }' to only get every third row of the raw data. I also need to convert all instances of +++ to s, all instances of --- to -, move all the # signs so instead of G#3 it says G3#, inject MUSIC at the beginning of the line and add commas between the columns. It might sound like a lot of work and yes, it takes some effort but compared to other forms of converting or by hand entering all the statements it is much less work. The above song took about one hour from running the SID tool to having the song compiled. (Yeah, 60 minutes to make 50 seconds of music...) Edited June 2, 2020 by carlsson 1 Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted June 2, 2020 Share Posted June 2, 2020 22 hours ago, cmadruga said: What games have you written for the Atari? Do you have videos? I wrote 2 games in 6502, and a few in BASIC. The 6502 ones were Mushrooms and Attack of the Killer Tomatoes. I have printouts of the source which I have been scanning in with the idea to try and recompile them. No binaries. My disks were stolen (with my hardware) at some point in the late 80s. I'd also worked on a sound digitizer (Vigitizer) and a BBS written in C (Plexus). I have the manuals scanned in for those. Seeing if I can get those back in binary form as well. The BBS eventually ended up ported to Atari ST and then MS-DOS. I think I have the source for at least the ST version on floppy (if the floppy can still be read). No videos, but I'm thinking it may be possible that the original binaries turn up at some point. I'm pretty sure they may have been on user group disks (MACE or one of the others that were in Michigan), so that could be a spot to find them. Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 2, 2020 Share Posted June 2, 2020 I found a game called Mushroom 1.1 but it doesn't display any credits. Would it by chance be yours? http://atarionline.pl/v01/index.php?ct=search&query=mushroom&t=katalog Quote Link to comment Share on other sites More sharing options...
First Spear Posted June 3, 2020 Share Posted June 3, 2020 The game looks so good! I think you have inadvertently created something that could be turned into Bruce Lee. Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 3, 2020 Author Share Posted June 3, 2020 2 hours ago, First Spear said: The game looks so good! I think you have inadvertently created something that could be turned into Bruce Lee. I haven't really played Bruce Lee that much. I will check it out again. Either way, I can see this game providing a standard approach for future platform games I might work on. Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 3, 2020 Share Posted June 3, 2020 Of course the interesting point is that Datasoft published the home computer versions of Bruce Lee, The Goonies, Zorro etc, all kind of similar in design. I don't know if those were developed by the same team(s) and how much of the base code they reused but it really looks like they made a niche of games. (And yes, I know this version rather is inspired by Konami's versions for MSX and eventually perhaps mixed with the NES version as mentioned before) Quote Link to comment Share on other sites More sharing options...
+cmadruga Posted June 3, 2020 Author Share Posted June 3, 2020 Who knows, I might just add a secret code for NES-like graphics. Similar to HELI. Quote Link to comment Share on other sites More sharing options...
carlsson Posted June 4, 2020 Share Posted June 4, 2020 Ah, I thought the differences between the two Konami games rather related to gameplay and level designs, not so much the graphics. Quote Link to comment Share on other sites More sharing options...
+bhall408 Posted June 4, 2020 Share Posted June 4, 2020 On 6/2/2020 at 9:54 AM, carlsson said: I found a game called Mushroom 1.1 but it doesn't display any credits. Would it by chance be yours? Nope... Here are the instructions... I hope I can cobble together the source and recompile again some rainy day... Mushrooms Documentation 1984-08.pdf 2 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.