STOS STE vertical shooter: I need help please

STOS-related stuff in here please
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: STOS STE vertical shooter: I need help please

Post by OverlordMRK »

Hi mOa, I wrote CSV2STOS a couple of years back after learning about Tiled and it's great features. I had been longing to use Tiled maps within STOS, so after dissecting/studying eddy.bas and learning about opening channels in and out to receive information from a file (to feed into STOS) it all went from there.

What problems were you having? You should be able to export a CSV file from Tiled, import this into CSV2STOS, then save off a missing link map. You need to know how many 16 x 16 tiles across and down your map is, so if it's 72 tiles across, 40 down then you have to enter that in carefully when prompted.

Once you have made your missing link map, you can then convert that to an STE hard-scrolling map using Neil's routine he wrote (WRLD2STE), on the STOS Time Tunnel page.

Also, HUGE thanks for putting up the Stevie Wonder extension, I have been looking for this for years. I will definitely be having a good look at this soon!

mOa wrote: Thu May 20, 2021 2:10 pm Ok, following Thomas advice (Thank you) I've tried to use the landscape command from the Missing Link extension
which look nice and polyvalent buuuuut... i'm stuck in converting my map/tiles. The process of converting tiles to block is a real pain...
You must convert pictures of tiles -> sprites-> blocks using 2 or 3 different programs.

My map is 14x286 tiles of 16x16. Tiles fit into 2 screens. STOS sprite limit is 16 :evil:

On another hand, I've found a good tool to convert maps into tiles: https://pyxeledit.com/learn.php
I use the BETA version which is sufficient to sort the tiles. By exporting the map as text, You'll get a TILED compatible
data (see tilemap1.zip) . But CSV2STOS doesn't seem to work also :?

You can found many excellent game maps from here: http://hol.abime.net/hol_search.php?&N_ ... crolltype= Cheers for them :cheers:

It would be great to have a tool for ripping those maps all at once :mrgreen:

BTW I've changed the game for FOUNDATION'S WASTE https://www.atarilegend.com/games/176, equally bad than CHOPPER X
Thank you for reading
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

Hello I'm back. Sorry for the delay. I've been busy with life. My biggest problem is the conversion of big maps
and big amout of tiles
The process of converting tiles to block is a real pain...
You must convert pictures of tiles -> sprites-> blocks using 2 or 3 different programs.
My map is 14x286 tiles of 16x16. Tiles fit into 2 screens. STOS sprite limit is 16
I think CVS2STOS work but my map is too large
so it would be nice to add warning messages if overflow
and a automated ripper function from pic images to tiles

BTW How many tiles can handle The Missing Link?

Thank you
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: STOS STE vertical shooter: I need help please

Post by OverlordMRK »

I don't recall having ever had any issues with a map being oversized with CSV2STOS yet. But what you will need most likely is a hacked version of GRAB.BAS, also a hacked SPRITE.ACB and DML's tile limit patch for Missing Link to achieve what you want to achieve. I have attached a zip archive (EXTEND.ZIP) for you to download with a couple of hacked versions of the utils I have done, also DML's patch he made.

In there should be GRAB240.BAS (right click on the tile count and it jumps to 240, this saves a lot of time as usually the limit is 100). Also, SPR480.ACB (you can edit line 15 to increase the sprite limit). Then you should be able to append two banks made with GRAB240, then save off a new sprite bank with 480 tiles. Then use MAKE.BAS to create your world or landscape blocks. Missing Link normally has a 128 tile limit, but applying DML's patch will allow you to go well beyond that. I'm unsure exactly how many, that would need testing further. I have one game I am porting that currently uses around 320.

I could eventually add a ripper to CSV2STOS yes, but it's not a priority currently, since I have found the tools above work out okay for the time being.
The next thing I plan to add in future is a batch conversion process feature. So you will be able to build a description file containing the filenames/locations for each map, their intended size, world or landscape etc. Then convert the whole lot in one hit each time. It will be handy in situations where you need to store multiple layers of maps within a Tiled session file and want to redo them all at once.

You will want to ditch sprites. Bobs and many bobs are much faster. As of late I think the Stevie Wonder extension's blitter merge is looking promising for certain situations too.

See how you get on, hopefully the above will help get you further!

mOa wrote: Mon Oct 04, 2021 8:53 am Hello I'm back. Sorry for the delay. I've been busy with life. My biggest problem is the conversion of big maps
and big amout of tiles
The process of converting tiles to block is a real pain...
You must convert pictures of tiles -> sprites-> blocks using 2 or 3 different programs.
My map is 14x286 tiles of 16x16. Tiles fit into 2 screens. STOS sprite limit is 16
I think CVS2STOS work but my map is too large
so it would be nice to add warning messages if overflow
and a automated ripper function from pic images to tiles

BTW How many tiles can handle The Missing Link?

Thank you
You do not have the required permissions to view the files attached to this post.
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

Thank you i will try it ASAP
The next thing I plan to add in future is a batch conversion process feature. So you will be able to build a description file containing the filenames/locations for each map, their intended size, world or landscape etc. Then convert the whole lot in one hit each time. It will be handy in situations where you need to store multiple layers of maps within a Tiled session file and want to redo them all at once.
That is a really good idea. Let's go ! :D
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

I have trouble with GRAB240.BAS
All I can grab is one 16x16 sprite
What are increments?
I use STEEM
Thank you
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: STOS STE vertical shooter: I need help please

Post by OverlordMRK »

Just right click on the number 1 next to Amount, then it will jump straight to 240.

In what context are you talking about increments?
mOa wrote: Tue Oct 12, 2021 6:46 pm I have trouble with GRAB240.BAS
All I can grab is one 16x16 sprite
What are increments?
I use STEEM
Thank you
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

Ok
Here is a new beta 002
Thanks to OverlordMRK for tip. It almost done it :D
Warning: This is Raw

What we have here?
- A vertical scrolling made with Missing Link Lanscape function
- Various sprites flying around using Stevie Wonder Blitter Merge
- a nice sound chip
- a sampled shoot sound when you fire

and that's pretty much all
The source code is quite compact considering the result

What is missing / needing fix?
- bullets
- fix the tiles and palette of the scrolling
- fix the artefacts of the sprites (I have no clue right now)
- collision detection
- scoring
- more enemies patterns
- animations

Right now the speed is decent but a lot is missing
the Fast Blitter hack from STEem does wonders
you can play with sprites by pressing "0" and "." on the numpad
It is not tested on real hardware (My STe is broken now)
and it's not my priority

Thank you for reading

Code: Select all

10 rem Foundation Waste STOS STe beta 002 mOa 211014
20 rem check www.atari-forum.com -> coding -> stos
30 rem thanks to all the helping people
40 rem  5: landscape blocks
50 rem  6: tilemap
60 rem  7: data screen for sprite
70 rem  8: buffer for merge blit
80 rem 10: music
90 rem 13: sample
100 mode 0 : key off : mouseoff : click off : auto back off : update off : synchro off : curs off 
110 if ste=0 then print "STe only. Please upgrade your Machine" : goto 110
115 T$="FW STe"+chr$(0) : text back,0,varptr(T$),32,0
116 T$="beta 002"+chr$(0) : text logic,0,varptr(T$),32,1
120 T$="press 0."+chr$(0) : text back,0,varptr(T$),32,6
130 T$="numpad"+chr$(0) : text logic,0,varptr(T$),32,7
140 get palette (7)
150 reserve as work 8,8400 : rem buffer for merge blit
160 ST5=start(5) : ST6=start(6) : ST7=start(7) : ST8=start(8) : ST10=start(10) : ST13=start(13)
170 M=musauto(ST10,1,20000) : p on : rem music/sample start
180 dim XE(20),YE(20),SE(20) : rem xpos ypos & speed of enemy
190 logic=back : XP=128 : YP=160 : rem player x & y pos
200 NB=1 : rem number of enemies
210 YT=4500 : rem y scroll pos
220 for ZZ=1 to 20 : XE(ZZ)=rnd(224) : SE(ZZ)=rnd(4)+1 : next ZZ
230 landscape 0,0,256,192,0,1
240 repeat 
250 landscape logic,ST5,ST6,0,YT,0
260 blitter merge ST7,256,0,288,32,logic,XP,YP,ST8
270 rem doke $FF8240,$70
280 if joy=0 then 340
290 if jup and YP>0 then dec YP : dec YP
300 if jdown and YP<160 then inc YP : inc YP
310 if jleft and XP>0 then dec XP : dec XP
320 if jright and XP<224 then inc XP : inc XP
330 if p fire(1) then dac play ST13,1519,1,1
340 rem doke $FF8240,$0
350 rem doke $FF8240,7
360 for ZZ=1 to NB
370 blitter merge ST7,224,0,256,22,logic,XE(ZZ),YE(ZZ),ST8
380 YE(ZZ)=YE(ZZ)+SE(ZZ)
390 if YE(ZZ)>193 then YE(ZZ)=-22
400 next ZZ
410 dec YT : if YT=0 then YT=4500
420 if hardkey=113 and NB<>20 then inc NB : TA=string(NB) : text physic,0,TA,34,15 : text logic,0,TA,34,15 : goto 450
430 if hardkey=112 and NB>1 then dec NB : TA=string(NB) : text physic,0,TA,34,15 : text logic,0,TA,34,15 : goto 450
440 blitter copy ST7,0,192,256,200,logic,0,192
450 screen swap : wait vbl 
460 until hardkey=57
470 mouseon : default : clear key : M=musauto(0,0,0) rem stop music
You do not have the required permissions to view the files attached to this post.
User avatar
wongck
Ultimate Atarian
Ultimate Atarian
Posts: 13541
Joined: Sat May 03, 2008 2:09 pm
Location: Far East
Contact:

Re: STOS STE vertical shooter: I need help please

Post by wongck »

oh man.... that ship brings back memories of Foundation Waste.... then I saw your source code mentioning it. LOL
My Stuff: FB/Falcon CT63 CTPCI ATI RTL8139 USB 512MB 30GB HDD CF HxC_SD/ TT030 68882 4+32MB 520MB Nova/ 520STFM 4MB Tos206 SCSI
Shared SCSI Bus:ScsiLink ethernet, 9GB HDD,SD-reader @ http://phsw.atari.org
My Atari stuff that are no longer for sale due to them over 30 years old - click here for list
User avatar
JeffDFulton
Atarian
Atarian
Posts: 6
Joined: Mon Jul 27, 2020 6:57 am
Contact:

Re: STOS STE vertical shooter: I need help please

Post by JeffDFulton »

Cool, just tested this. it's coming along nicely.
A couple questions on sound. You have a very nice chip tune playing and the shot should.
Is the shot a sample using DMA sound? |

Did you create the yM tune? I am trying to create one for my game and am looking for a good way to do that.
It kind of looks like MaxYmiser is the best way I can find.
Hanging Out in the Vertical Blank
http://www.intotheverticalblank.com

All Atari All the time: 2600/400/800/XL.XE/5200/7800/ST/STE/TT/Falcon/Lynx/Jaguar
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

Hello

Well. the music is a random pickup (tune4.thk)
Yes, the shoot sample is DMA
Thank you for your tutos on FB / YT: It's Very interesting
I Can't wait to see more progress on your game
You do not have the required permissions to view the files attached to this post.
User avatar
JeffDFulton
Atarian
Atarian
Posts: 6
Joined: Mon Jul 27, 2020 6:57 am
Contact:

Re: STOS STE vertical shooter: I need help please

Post by JeffDFulton »

Finishing up a Podcast episode and Video about the best Early ST games, then I get back to a playable demo of Scramble.
STOS and all the plugins / extensions is really fun. I just noticed that Stevie Wonder is now available with docs, and new STE scrolling / Blitter. That could be a game changer.
Hanging Out in the Vertical Blank
http://www.intotheverticalblank.com

All Atari All the time: 2600/400/800/XL.XE/5200/7800/ST/STE/TT/Falcon/Lynx/Jaguar
mOa
Captain Atari
Captain Atari
Posts: 166
Joined: Sun May 12, 2002 11:53 pm

Re: STOS STE vertical shooter: I need help please

Post by mOa »

Here is a new beta 003

Thanks to CONTROL extension, I've found a nice collision detection command
although it is point vs rectangle type
Warning:I came across troubles to compile the game using latest stos version (comp v3.00 I think)
https://www.exxoshost.co.uk/atari/STOSFLOPPY/index.htm -> STOS2021.zip
the controls didn't respond, I don't know why.
So better stick with older versions

What's new?
- Disclaimer
- Fixed scrolling
- fixed artefacts of the sprites
- You can fire and there are collision detections
- Score / lives implemented
- Simple saving hiscore

What is missing / needing fix?
- Improve scrolling map
- add tile detection (turrets, walls...)
- More bullets to shoot / extra weapons
- enemies can shoot too
- fix the palette of the scrolling
- More sound FX
- refine collision detection
- enemies patterns
- animations

Thank you for reading

Code: Select all

10 rem Foundation Waste STOS STe beta 003 mOa 211029
20 rem check www.atari-forum.com -> coding -> stos
30 rem thanks to all the helping peole
40 rem  5: landscape blocks
50 rem  6: tilemap
60 rem  7: data screen for sprite
70 rem  8: buffer for merge blit
80 rem 10: music
90 rem 13: sample
100 dim XE(20),YE(20),SE(20) : rem ** xpos ypos & speed of enemy
110 mode 1 : hide : key off : click off : auto back off : update off : synchro off : curs off 
120 centre "FOUNDATION WASTE OF TIME" : print 
130 centre "STEem STe STOS version" : print 
140 centre "BETA 003 / Nov 2021 by mOa" : print 
150 centre "Check www.atari-forum.com -> coding -> stos" : print 
160 print : print 
170 centre "WARNING: This game is a Work in Progress"
180 print : print 
190 centre " WARNING: This game is not meant to work on real hardware" : print 
200 centre " For optimal experience, please use STEem emulator" : print 
210 centre " (sourceforge.net/projects/steemsse)" : print : print 
220 centre "Select a ATARI STE model with FAST BLITT option ON" : print 
230 centre "You can alter the numbers of enemies with 0 and . on the numpad" : print : print 
240 centre "Thank you to all helping people"
250 print : print : print : print : print : print 
260 centre "Press space to play"
270 repeat : until inkey$=" "
280 mode 0 : key off : mouseoff : click off : auto back off : update off : synchro off : curs off 
290 if ste=0 then print "STe only. Please upgrade your Machine" : goto 290
300 open in #1,"hiscores" : input #1,HI : close #1 : rem ** load hiscores
310 T$="FW STe"+chr$(0) : text back,0,varptr(T$),32,0
320 T$="beta 003"+chr$(0) : text logic,0,varptr(T$),32,1
330 T$="press 0."+chr$(0) : text back,0,varptr(T$),32,6
340 T$="numpad"+chr$(0) : text logic,0,varptr(T$),32,7
350 T$="Enemies"+chr$(0) : text logic,0,varptr(T$),33,12
360 T$="Score"+chr$(0) : text logic,0,varptr(T$),33,15
370 T$="Life"+chr$(0) : text logic,0,varptr(T$),33,18
380 T$="Hiscore"+chr$(0) : text logic,0,varptr(T$),33,21
390 T=string(HI) : text logic,0,T,33,22 : text physic,0,T,33,22
400 get palette (7)
410 reserve as work 8,8400 : rem ** buffer for merge blit
420 ST5=start(5) : ST6=start(6) : ST7=start(7) : ST8=start(8) : ST10=start(10) : ST13=start(13)
430 M=musauto(ST10,1,20000) : p on : rem ** music/sample start
440 logic=back : XP=128 : YP=157 : XPT=300 : LIF=5 : SC=0 : rem ** player x & y pos
450 NB=8 : rem ** number of enemies
460 YT=2112 : rem y scroll pos
470 for ZZ=1 to 20 : XE(ZZ)=32*(ZZ-1) : SE(ZZ)=rnd(3)+1 : next ZZ
480 landscape 0,0,256,192,0,1
490 repeat 
500 landscape logic,ST5,ST6,0,YT,0
510 blitter merge ST7,256,31,288,63,logic,XP,YP,ST8
520 rem doke $FF8240,$70
530 if joy=0 then 580
540 if jup and YP>-2 then dec YP : dec YP : dec YP
550 if jdown and YP<162 then inc YP : inc YP : inc YP
560 if jleft and XP>0 then dec XP : dec XP : dec XP
570 if jright and XP<224 then inc XP : inc XP : inc XP
580 if p fire(1) and T1=0 then dac play ST13,1519,1,1 : XPT=XP+11 : YPT=YP : T1=1
590 if T1=1 and YPT<=0 then T1=0 : goto 610
600 if T1=1 and YPT>0 then dec YPT : dec YPT : dec YPT : dec YPT : dec YPT : dec YPT : blitter merge ST7,0,32,16,41,logic,XPT,YPT,ST8
610 rem doke $FF8240,$0
620 rem doke $FF8240,7
630 for ZZ=1 to NB
640 blitter merge ST7,224,1,256,22,logic,XE(ZZ),YE(ZZ),ST8
650 YE(ZZ)=YE(ZZ)+SE(ZZ)
660 if YE(ZZ)>193 then YE(ZZ)=-22
670 XP4=XP+4 : XP16=XP+16 : XP32=XP+32 : YP32=YP+32 : YP4=YP+4 : YP28=YP+28 : XE32=XE(ZZ)+32 : YE22=YE(ZZ)+22 : XE16=XE(ZZ)+16 : YE20=YE(ZZ)+20
680 A=inside(XPT,YPT,XE(ZZ),YE(ZZ),XE32,YE22)
690 if A=true then dac play ST13,1519,0,1 : T1=0 : SE(ZZ)=rnd(3)+1 : YE(ZZ)=-22 : XPT=300 : SC=SC+100 : SCO=string(SC) : text physic,0,SCO,33,16 : text logic,0,SCO,33,16
700 if SC>HI then HI=SC : T=string(HI) : text logic,0,T,33,22 : text physic,0,T,33,22
710 B=inside(XP16,YP4,XE(ZZ),YE(ZZ),XE32,YE22)
720 if B=true then dac play ST13,1519,2,1 : T1=0 : SE(ZZ)=rnd(3)+1 : YE(ZZ)=-22 : XPT=300 : dec LIF : L=string(LIF) : text physic,0,L,33,19 : text logic,0,L,33,19
725 if LIF=-1 then 840
730 C=inside(XE16,YE20,XP,YP,XP32,YP32)
740 if C=true then dac play ST13,1519,2,1 : T1=0 : SE(ZZ)=rnd(3)+1 : YE(ZZ)=-22 : XPT=300 : dec LIF : L=string(LIF) : text physic,0,L,33,19 : text logic,0,L,33,19
750 if LIF=-1 then 840
760 next ZZ
770 dec YT : if YT=0 then YT=2112
780 if hardkey=113 and NB<>8 then inc NB : TA=string(NB) : text physic,0,TA,33,13 : text logic,0,TA,33,13
790 if hardkey=112 and NB>1 then dec NB : TA=string(NB) : text physic,0,TA,33,13 : text logic,0,TA,33,13
800 blitter copy ST7,0,192,256,200,logic,0,192 : rem ** mask the last scrolline
810 screen swap : wait vbl 
820 until hardkey=57
830 mouseon : default : clear key : M=musauto(0,0,0) : end : rem ** stop music
840 rem ** end game
850 M=musauto(0,0,0) : boom : wait 100 : p stop 
860 open out #1,"hiscores" : print #1,HI : close #1 : rem save hiscore
870 erase 8 : goto 280
You do not have the required permissions to view the files attached to this post.
Post Reply

Return to “STOS”