fimbulvetr Posted January 6, 2019 Share Posted January 6, 2019 This is an awesome game! Thanks! Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted January 7, 2019 Share Posted January 7, 2019 (edited) -- HERE --- I dedicated a review in ti99iuc website too in the .zip i also included all the labels.many thanks for this nice game PeteE Edited January 7, 2019 by ti99iuc 3 Quote Link to comment Share on other sites More sharing options...
PeteE Posted January 7, 2019 Author Share Posted January 7, 2019 I dedicated a review in ti99iuc website too in the .zip i also included all the labels. many thanks for this nice game PeteE You're welcome! Thank you for the review. Google translate was helpful 1 Quote Link to comment Share on other sites More sharing options...
BuckoBrand Posted January 24, 2019 Share Posted January 24, 2019 Unreal, brother.... just getting around to putting this one on my hardware and I am absolutely blown away. The controls are immaculate, the enemies are excellent, sound FX are marvelous.... You just did something incredible.... Thank you so much for this game!!!!!!! High Score Competition fodder, indeed!!! This high score competition with Turmoil, i will win! 1 Quote Link to comment Share on other sites More sharing options...
whoami999ster Posted July 19, 2021 Share Posted July 19, 2021 On 12/27/2018 at 4:55 AM, PeteE said: I've added an EA5 version now - TURMOIL.bin. In case you were wondering how the multicolor sprites work, here's how: There are 4 different color stripe patterns used for the various moving object types: the player ship, the majority of enemy ships, the arrow/saucer, and the explosion. The color stripes are a block of bitmap mode character patterns, with a single sprite set to the inverted shape of the ship and set to black. Here's what it looks like with the sprite layer turned off in classic99: Each stripe block can be moved pixel-by-pixel horizontally by using the characters from a set of 8 shifted stripes with black background. There is one set for each corner of the block, so 32 characters total for each color stripe. The character pattern table looks like this: (the stripes are duplicated in each of the 3 bitmap mode screen segments) The player bullets are two sprites, and with one enemy sprite per row, and a single player ship sprite, that stays within the limit of 4 sprites per line. I'm very interested with this technique but I didn't usterstand nothing ,,, can you please provide a step by step example/eplanation on how to implement it ,,, an easy example would be very help full... thanks a lot in advance for your kindly help 2 1 Quote Link to comment Share on other sites More sharing options...
PeteE Posted July 19, 2021 Author Share Posted July 19, 2021 24 minutes ago, whoami999ster said: I'm very interested with this technique but I didn't usterstand nothing ,,, can you please provide a step by step example/eplanation on how to implement it ,,, an easy example would be very help full... thanks a lot in advance for your kindly help Are you familiar with bitmap mode on the 9918A? Familiar with sprites and transparency? Which programming language would be best for providing an example for you to understand? Quote Link to comment Share on other sites More sharing options...
unhuman Posted July 19, 2021 Share Posted July 19, 2021 The simple answer is the sprite is a mask that allows the characters beneath to be shown through (or not). So, the sprite isn't of the enemy, it's solid where the enemy is not. 1 Quote Link to comment Share on other sites More sharing options...
whoami999ster Posted May 4, 2022 Share Posted May 4, 2022 On 7/19/2021 at 7:59 PM, PeteE said: Are you familiar with bitmap mode on the 9918A? Familiar with sprites and transparency? Which programming language would be best for providing an example for you to understand? Hi Pete Apologize for my missing answer (probably I didn't set the notificaion) ... Anyway I come back on this subject (multicolor sprites, bitmap mode) and in the mean time I get familiar with 9918A and assembly (unfortunately not really applied pratically) ... I think to had understood you technique but not sure ... and I didn't understood "Each stripe block can be moved pixel-by-pixel horizontally by using the characters from a set of 8 shifted stripes with black background. There is one set for each corner of the block, so 32 characters total for each color stripe" By chance do you have some little example in TI99 aassembly I could use as case study... Thanks a lot in advance for your patience and understanding Regards Francesco Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 5, 2022 Author Share Posted May 5, 2022 9 hours ago, whoami999ster said: Hi Pete Apologize for my missing answer (probably I didn't set the notificaion) ... Anyway I come back on this subject (multicolor sprites, bitmap mode) and in the mean time I get familiar with 9918A and assembly (unfortunately not really applied pratically) ... I think to had understood you technique but not sure ... and I didn't understood "Each stripe block can be moved pixel-by-pixel horizontally by using the characters from a set of 8 shifted stripes with black background. There is one set for each corner of the block, so 32 characters total for each color stripe" By chance do you have some little example in TI99 aassembly I could use as case study... Thanks a lot in advance for your patience and understanding Regards Francesco I see your message. I will work on an example and post it within a couple days. Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 6, 2022 Author Share Posted May 6, 2022 (edited) Hi @whoami999ster Here is an example multicolor sprite assembly cartridge program. Use xas99.py to compile. Use Joystick 1 to move the sprite, left and right are smooth pixel-scroll, and up and down are chunky 8-pixel jump. (Which suited Turmoil just fine.) The example sprite was inspired by Zippy the Porcupine on the 2600. The Magellan file is included so you can see how the masked sprite and shifted character sprites are combined. (Turn on the grid to see more clearly.) The character positions are chosen specifically so that the X coordinate mod 8 can be added to the base character index, making the drawing code simple. I tried to comment everything thoroughly but let me know if you have any questions and I will be happy to answer. sprite.asm mcspr.mag mcspr.asm mcsprc.bin Edited May 6, 2022 by PeteE typo 7 Quote Link to comment Share on other sites More sharing options...
Willsy Posted May 6, 2022 Share Posted May 6, 2022 It's a good job I played while the kids were in bed. The air is currently thick with some of the choicest swear words you ever heard! 1 4 Quote Link to comment Share on other sites More sharing options...
whoami999ster Posted May 7, 2022 Share Posted May 7, 2022 23 hours ago, PeteE said: Hi @whoami999ster Here is an example multicolor sprite assembly cartridge program. Use xas99.py to compile. Use Joystick 1 to move the sprite, left and right are smooth pixel-scroll, and up and down are chunky 8-pixel jump. (Which suited Turmoil just fine.) The example sprite was inspired by Zippy the Porcupine on the 2600. The Magellan file is included so you can see how the masked sprite and shifted character sprites are combined. (Turn on the grid to see more clearly.) The character positions are chosen specifically so that the X coordinate mod 8 can be added to the base character index, making the drawing code simple. I tried to comment everything thoroughly but let me know if you have any questions and I will be happy to answer. sprite.asm 7.09 kB · 6 downloads mcspr.mag 120.81 kB · 7 downloads mcspr.asm 13.11 kB · 6 downloads mcsprc.bin 8 kB · 8 downloads THANKS A LOT PETER! I'll study your beautiful example ... it's a perfect starting point for me ... maybe I'll come back to you with some questions I hope to not disturb you too much May I ask you something personal ... are you placed in Walldorf (Germany)? ... not problem at all if your prefer to not answer for privacy In the mean time thanks once again Francesco Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 7, 2022 Author Share Posted May 7, 2022 1 hour ago, whoami999ster said: THANKS A LOT PETER! I'll study your beautiful example ... it's a perfect starting point for me ... maybe I'll come back to you with some questions I hope to not disturb you too much May I ask you something personal ... are you placed in Walldorf (Germany)? ... not problem at all if your prefer to not answer for privacy In the mean time thanks once again Francesco Hi Francesco, I hope it is useful for you to learn from. My location is listed under my profile... I've never been to Germany but all the Germans I've met are wonderful people. Pete Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted May 8, 2022 Share Posted May 8, 2022 On 5/6/2022 at 1:59 PM, PeteE said: The example sprite was inspired by Zippy the Porcupine on the 2600. Did I just hear that @PeteE is working on Zippy the Porcupine for the 99/4A? This guy is amazing! 1 3 Quote Link to comment Share on other sites More sharing options...
jrhodes Posted May 8, 2022 Share Posted May 8, 2022 (edited) 1 hour ago, OLD CS1 said: Did I just hear that @PeteE is working on Zippy the Porcupine for the 99/4A? This guy is amazing! Although he should probably also get some more done on The Legend Of Tilda. Edited May 8, 2022 by jrhodes Quote Link to comment Share on other sites More sharing options...
speccery Posted May 9, 2022 Share Posted May 9, 2022 Just discovered this thread on a coffee break, nice game, thanks @PeteE! Very cool implementation strategy with those inverted black sprites. I suppose you're using GM2 for the tiles? Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 9, 2022 Author Share Posted May 9, 2022 4 hours ago, speccery said: Just discovered this thread on a coffee break, nice game, thanks @PeteE! Very cool implementation strategy with those inverted black sprites. I suppose you're using GM2 for the tiles? Glad you liked it. Yes, the tiles are in Graphics II Mode, the so-called "bitmap" mode, which allows you to independently select a foreground and background color for each of the 8 lines per tile. 3 Quote Link to comment Share on other sites More sharing options...
whoami999ster Posted May 13, 2022 Share Posted May 13, 2022 On 5/7/2022 at 9:00 PM, PeteE said: Hi Francesco, I hope it is useful for you to learn from. My location is listed under my profile... I've never been to Germany but all the Germans I've met are wonderful people. Pete I'm trying to learn something from your super example but I would need for a little hand ... why the following definition for VDP registers I mean a memory location divided by >400 , >40 etc... why not the exact value? VDPINI ; Initial VDP register data BYTE >02 ; VDP Register 0: 02 (Bitmap Mode) BYTE >E2 ; VDP Register 1: 16x16 Sprites BYTE (SCRTAB/>400); VDP Register 2: Screen Image Table BYTE (CLRTAB/>40)+>7F ; VDP Register 3: Color Table BYTE (PATTAB/>800)+>3; VDP Register 4: Pattern Table BYTE (SPRTAB/>80) ; VDP Register 5: Sprite List Table BYTE (SPRPAT/>800); VDP Register 6: Sprite Pattern Table BYTE >F1 ; VDP Register 7: White on Black thank in advance for you patience... Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 13, 2022 Author Share Posted May 13, 2022 (edited) 52 minutes ago, whoami999ster said: I'm trying to learn something from your super example but I would need for a little hand ... why the following definition for VDP registers I mean a memory location divided by >400 , >40 etc... why not the exact value? VDPINI ; Initial VDP register data BYTE >02 ; VDP Register 0: 02 (Bitmap Mode) BYTE >E2 ; VDP Register 1: 16x16 Sprites BYTE (SCRTAB/>400); VDP Register 2: Screen Image Table BYTE (CLRTAB/>40)+>7F ; VDP Register 3: Color Table BYTE (PATTAB/>800)+>3; VDP Register 4: Pattern Table BYTE (SPRTAB/>80) ; VDP Register 5: Sprite List Table BYTE (SPRPAT/>800); VDP Register 6: Sprite Pattern Table BYTE >F1 ; VDP Register 7: White on Black thank in advance for you patience... Because that's how the VDP defines them... see sections 5.1.3 - 5.1.7 in the programmers guide vdp_pg.pdf The addresses are 14 bits, but the registers are only 8 bits, so it can only use some of the bits. For registers 3 and 4, there are special notes for Graphics II Mode, that's what +>7F and +>3 are added, to set the right number of least-significant bits (LSB) to 1s. Edited May 13, 2022 by PeteE 2 Quote Link to comment Share on other sites More sharing options...
whoami999ster Posted May 13, 2022 Share Posted May 13, 2022 4 minutes ago, PeteE said: Because that's how the VDP defines them... see sections 5.1.3 - 5.1.7 in the programmers guide vdp_pg.pdf uhmmm .... I need to read again VDP_PG .. I guessed that was for the "VDP table" dimension but the calculation deceived me because I tryed to compile the code with WinASM but got errors due to the division... I'm a donkey and It will take time but finally I will get something... I star to read lot of material around TI assembly but your "programming style" is a litlle bit different from the classical (like the usage of standard routine VMBW, MSBW, etc..) .. it take time to learn the optimal programming method ... any lecture to suggest ? Thanks as sual Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 13, 2022 Author Share Posted May 13, 2022 (edited) 20 minutes ago, whoami999ster said: uhmmm .... I need to read again VDP_PG .. I guessed that was for the "VDP table" dimension but the calculation deceived me because I tryed to compile the code with WinASM but got errors due to the division... I'm a donkey and It will take time but finally I will get something... I star to read lot of material around TI assembly but your "programming style" is a litlle bit different from the classical (like the usage of standard routine VMBW, MSBW, etc..) .. it take time to learn the optimal programming method ... any lecture to suggest ? Thanks as sual WinASM probably doesn't support the arithmetic calculations in the data. I prefer the more advanced features of XDT99 xas99.py. I'm sorry if my ASM style is not classical, I started learning when XDT99 came out, and haven't tried anything else. Edited May 13, 2022 by PeteE 3 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted May 13, 2022 Share Posted May 13, 2022 1 hour ago, whoami999ster said: why the following definition for VDP registers I mean a memory location divided by >400 , >40 etc... why not the exact value? Because if you later change the value of SCRTAB, CLRTAB etc. the calculations ensure that the VDP registers are automatically set up to match. It's the standard programming principle of not defining a common value in more than one place. 2 Quote Link to comment Share on other sites More sharing options...
PeteE Posted May 13, 2022 Author Share Posted May 13, 2022 (edited) 1 hour ago, Asmusr said: Because if you later change the value of SCRTAB, CLRTAB etc. the calculations ensure that the VDP registers are automatically set up to match. It's the standard programming principle of not defining a common value in more than one place. Thanks Rasmus. I totally missed the intent of his question. Yes, that is it, exactly - I wanted the table address and register values to be automatically consistent. But care needs to be taken that an invalid table address isn't used, some must be at a multiple of >40,>80,>400,>800 etc, otherwise the register setting won't match. Edited May 13, 2022 by PeteE 2 Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted July 9, 2022 Share Posted July 9, 2022 I think our TI port is superior. https://8bitmilligames.com/turmoil-2022.html 3 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.