kisrael Posted March 14, 2021 Share Posted March 14, 2021 I found out that some homebrewers are using playerpal 2600 to do 48-pixel sprites (like for a title screen) and - fancying myself the provider of the finest browser-based graphic and sound tools for atari available, I thought I'd make a new tool for that! (with help on the kernel side from @Karl G) - it lets you edit a 48x??? (max 192) graphic and then generate an assembly kernel and a wrapper batari BASIC program to run it - you can easily insert this as a tile screen into your own game. I'm open for suggestions for the name of it, but for now it's Title-Screen-Titan (which includes my ambition to support some Playfield Graphic variants) UPDATE: ITS NEW NAME IS Splash-O-Matic 2600 - https://alienbill.com/2600/splash-o-matic/ currently includes Image Import and a Text Tool! Here is the editor and then the result running in Stella. It provides a button for the assembly kernel, and a batari BASIC wrapper to run it. (I guess if you're using the ASM straight up you will have to set logo_color and logo_height yourself.) You can see a "todo" list item of things I might try to add. I think the next most important thing might be trying to get color in there, Karl was gracious enough to assemble a kernel that can even change color on each scanline! Feedback/constructive criticism welcome. I like to things people find useful! Hearing 2 people use PlayerPal for this stuff was enough to get me going on this. 5 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted March 14, 2021 Share Posted March 14, 2021 The kernel was based on my simple 48-pixel splash screen kernel that I made for simple titlescreens, or to be used in conjunction with the titlescreen kernel. 1 Quote Link to comment Share on other sites More sharing options...
KevKelley Posted March 14, 2021 Share Posted March 14, 2021 This is awesome. I had recently saw some use of sprites for titlescreens and it had never occurred to me to use them for such a purpose. This looks great and I definitely want to play around with it now. Quote Link to comment Share on other sites More sharing options...
chewy Posted March 14, 2021 Share Posted March 14, 2021 (edited) how do you generate a .rom file? how do the .bas and .asm interact with harmony cart? do they need to be .rom files to work? Edited March 14, 2021 by chewy Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 14, 2021 Author Share Posted March 14, 2021 1 minute ago, chewy said: how do you generate a .rom file? how do the .bas and .asm interact with harmony cart? do they need to be .rom files to work? Great questions. I'm actually working on updating my old tutorial https://alienbill.com/2600/bbkickstart/ - I'm editing even as we speak. I wasn't planning on getting into too much detail about the harmony cart, but basically that will show the steps to turning this source code into a .bin (same as a .rom). If I get feedback that explaining about harmony etc is useful I might go deep into that. Quote Link to comment Share on other sites More sharing options...
chewy Posted March 14, 2021 Share Posted March 14, 2021 i always mis use those accidently i ment a .bin file lol. Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 Wow that's great - just when I need a tool for my splashscreen, you whip one up. Fantastic! 1 Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 15, 2021 Author Share Posted March 15, 2021 1 minute ago, bithopper said: Wow that's great - just when I need a tool for my splashscreen, you whip one up. Fantastic! Awesome to hear! Is color a big priority for you? Further thoughts: Hmm, maybe "splash" or "splash screen" is a better word than "title screen" for thinking of a title for my tool page. "Splashmatic 2600" ? (especially if I manage to roll-in some PlayField variants) 1 Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 Scanline colors like in PlayerPal would be nice for sure. This way you can have some WYSIWYG in the editor. Would this be much work to implement? As far as I understand 48 pixel sprites, you can also have simple color change within a scan line as this is two player sprites, alternating? This might make editing the color in your tool a bit complex. Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 15, 2021 Author Share Posted March 15, 2021 Yeah. As much as I think editors that generate ready-to-run samples is a huge boon, sometimes it gets complicated, because I don't have a general purpose intra-scanline-change kernel handy and so don't know how many would be set up to switch colors when. Or like, would alternating "6 vertical color column stripes" be even worth it?? (presumably w/o the ability to change the color for each column) I definitely have an idea for the UI for scanline colors (roughly like a flood tool but that colors lines instead of flooding to 2D regions) but I don't even know what options make sense. But if someone pitched me a "here's a kernel, can you make me an editor mode" I might do it Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 (edited) You are right of course, lets forget about the alternating color stripes - this is an effect that you can easily imagine and achieve without seeing it in the editor first. To display (and export) one color per scanline would be an awesome feature however. I personally liked how you handled color in PlayerPal but the better is the enemy of the good Edited March 15, 2021 by bithopper Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 Took at look at your exported .asm and it seems like the kernel loop has some 14 cycles free unless I miscounted (even three more at scanline start if you fill it to 76 and omit "sta WSYNC"). Just thinking loud: In 14 cycles you can read two different tables and set two color registers (even three if you use the three cycles at scanline start). This leaves room for several possibilities e.g. you can set a color for both player sprites and set a (different) background color each scenline just in this straight forward looping kernel. That's nice! Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 15, 2021 Author Share Posted March 15, 2021 Yeah. Nerding out about it (so folks now bithopper submitted a patch for my venerable https://alienbill.com/2600/playerpalnext.html so I guess he's the right person to nerd on this kind of UI stuff with): the round trip aspect is always the shakiest part of this, since a good atari programmer might well be MUCH cleverer than whatever read-stuff-back-in heuristic I come up with. Arguably I should be more transparent about what the parser ends up expecting. Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 Haha! Talking about colorization possibilities of 48 pixel sprites kernels on a 40 something years old console? yeah, guilty as charged Then again, what does that make someone who is writing an editor for it Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 The reasoning behind my nerdy considerations: There is enough time left in the kernel to color the sprite each scanline plus background if required. When there is any interest I am happy to send/post a demo kernel that has the colorization code filled into your brilliant 48 pixel sprite kernel. Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 15, 2021 Author Share Posted March 15, 2021 Well, Karl's brilliant kernel to be fair. Even in my "assembly language prime" I was never great at it (even my magnum opus JoustPong sports a brilliant kernel rewrite by Paul Slocum - he realized he could do better than my flicker-kernel by pushing one player to the right, duplicating it (well actually triplicating w/o the middle one) and using it for the left as well ) Actually I was looking over my old JoustPong kernel ( https://alienbill.com/2600/flapping/20040314.source.txt ) - I had a pretty attractive title screen using the playfield. I had to refresh my memory how to be conservative w/ ROM space, it's kind of like there are subkernals, with similar loops for the "yellow part" and the "blue part". that's the sort of thing I'm not sure how much I should pile into a "round trip" feature for sample code - or even optimize for in the first place. Like for purposes of sample code it's easiest just to assume you have as many lines of color data as graphical data, but it wouldn't be THAT hard to at least output the same kind of thing I did for JoustPong - each color section has its own block of kernel. I'm definitely out of touch w/ how people who get deeper into assembly than I am learn to do so, and so have a rougher idea of what kind of tooling makes sense for them. (I'm much more at ease w/ people like me who just joke about with batari Basic ) Quote Link to comment Share on other sites More sharing options...
+Karl G Posted March 15, 2021 Share Posted March 15, 2021 @kisrael - did you not get my version of the kernel that included the color changes on each line? Quote Link to comment Share on other sites More sharing options...
+D Train Posted March 15, 2021 Share Posted March 15, 2021 4 hours ago, kisrael said: Splashmatic 2600 Splash-O-Matic 2600? that scans better to me. 1 Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 15, 2021 Author Share Posted March 15, 2021 9 minutes ago, Karl G said: @kisrael - did you not get my version of the kernel that included the color changes on each line? I did thank you! I just haven't had time to build a UI around it - I thought I'd start with monochrome (which was a little easier and also still useful) and then build up Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 15, 2021 Share Posted March 15, 2021 (edited) Ah OK, I just made the kernel run in my environment - WOOOHOOO I got a splash screen now! The kernel loop looks like that now: [...] sta WSYNC LogoLoop sty temp1 ; 3 (3) lda logo_0,y ; 4 (7) sta GRP0 ; 3 (10) 0 -> [GRP0] lda logo_1,y ; 4 (14) sta GRP1 ; 3 (17) 1 -> [GRP1] ; 0 -> GRP0 lda logo_2,y ; 4 (21) sta GRP0 ; 3 (24*) 2 -> [GRP0] ; 1 -> GRP1 ldx logo_4,y ; 4 (28) 4 -> X lda logo_5,y ; 4 (32) sta temp2 ; 3 (35) lda logo_3,y ; 4 (39) 3 -> A ldy temp2 ; 3 (42) 5 -> Y sta GRP1 ; 3 (45) 3 -> [GRP1] ; 2 -> GRP0 stx GRP0 ; 3 (48) 4 -> [GRP0] ; 3 -> GRP1 sty GRP1 ; 3 (51) 5 -> [GRP1] ; 4 -> GRP0 sta GRP0 ; 3 (54) 5 -> GRP1 ldy temp1 ; 3 (57) lda logo_colors,y ; 4 (61) sta COLUP0 ; 3 (64) sta COLUP1 ; 3 (67) SLEEP 4 ; 4 (71) dey ; 2 (73) bpl LogoLoop ; 3 (76) [...] It works nice and has some 4 cycles left. ALAS i miscounted before: This is enough to read another table but not to actually set the background color. Well I wanted it to be black anyways I realize Karl has already provided the "color code", so it was just a nice exercise for me Edited March 16, 2021 by bithopper fixed typo Quote Link to comment Share on other sites More sharing options...
+bithopper Posted March 16, 2021 Share Posted March 16, 2021 It is obsolete now - but since I posted code before (not knowing that everything was already dealt with) I could not leave it like that By sacrifiing another 2 cycles i managed to put the color table 'in line' with the other logo tables. I promise this to be my last kernel post to this thread. Thanks again, guys for the nice tool! logo_loop.asm Quote Link to comment Share on other sites More sharing options...
kisrael Posted March 16, 2021 Author Share Posted March 16, 2021 13 hours ago, D Train said: Splash-O-Matic 2600? that scans better to me. You're not wrong. I think I was trying to avoid being too much of a clone of my this one tool a lot of bands use to organize performance and rehearsals: https://www.gig-o-matic.com/ Quote Link to comment Share on other sites More sharing options...
+D Train Posted March 16, 2021 Share Posted March 16, 2021 3 hours ago, kisrael said: I think I was trying to avoid being too much of a clone of my this one tool a lot of bands use to organize performance and rehearsals: https://www.gig-o-matic.com/ if that's a concern, you could always go with Splashtron 2600 or Splash-O-Tron 2600! Quote Link to comment Share on other sites More sharing options...
+Karl G Posted March 16, 2021 Share Posted March 16, 2021 I doubt anyone would confuse the two, and I don't think anyone can claim exclusive usage of o-matic. ? Besides, I kinda like Splash-O-Matic personally. Quote Link to comment Share on other sites More sharing options...
+D Train Posted March 16, 2021 Share Posted March 16, 2021 40 minutes ago, Karl G said: I don't think anyone can claim exclusive usage of o-matic so many o-matics! bunn-o-matic ice-o-matic pay-o-matic o-matic dab-o-matic screencast-o-matic all-o-matic pace-o-matic stamp-o-matic serv-o-matic etc-o-matic... 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.