Please be advised that access to Atari Forum this coming Friday will be sporadic whilst the backend operating system and dependency upgrades are carried out.

Stevie Wonder Extension

STOS-related stuff in here please

Moderators: Zorro 2, Moderator Team

mlynn1974
Atari Super Hero
Atari Super Hero
Posts: 765
Joined: Mon Mar 03, 2008 10:33 pm

Stevie Wonder Extension

Post by mlynn1974 »

I would like to use the Top Notch Stevie Wonder Extension with STOS 2.6 but it uses the .EXE file extension which conflicts with STOS Squasher:

The extensions I have in my environment are:
COMPACT.EXA
COMPILER.EXC
MAESTRO.EXD
SQUASHER.EXE
STE_EXTN.EXF
BLITTER.EXG
MISTY.EXM
LINK1.EXQ
LINK2.EXR
LINK3.EXS
TOME21.EXT

I tried installing STEVIE_W.EXE and temporarily removing SQUASHER.EXE but it complains with the example:
10 LE=screen size(640,400)
20 reserve as screen 5,le

The memory bank is allocated but unusable and a syntax error is displayed.
I tried reserve as datascreen 5,le but the same error.

I don't think they used STOS 2.7 at that time so it's unlikely to be a version issue.
Anyone have any success with this?
Still got, still working: Atari 4Mb STe, MegaST 2, 520STFM (x2), 2.5Mb STF, Atari 2600JR, Flashback 8 Gold.
Hardware: PC720B, Cumana CSA 354, Ultimate Ripper, Discovery Cartridge, Blitz Turbo, Synchro Express II (US and UK Versions).
User avatar
thomas3
Captain Atari
Captain Atari
Posts: 400
Joined: Tue Apr 11, 2017 8:57 pm

Re: Stevie Wonder Extension

Post by thomas3 »

Shouldn't line 20 be reserve as WORK, not screen? Screen takes no parameters and always allocates 32k...
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: Stevie Wonder Extension

Post by OverlordMRK »

Change EXE to another letter, like P for example. Do it for both the interpreter and compiler modules, ie. EXP and ECP. That should fix the problem, if not try another letter until it works. Also yes you do need to reserve as work, not screen. ie. if length(1)=0 then LE=screen size(640,200) : reserve as work 1,le

The docs which come with Stevie Wonder are a complete wind-up. You practically have to set up everything in reverse to what Colin said, then it works. I think he was either drunk or in a very silly mood.

I found after running several tests, that you can have a max screen size of 1008 x 400 pixels in which blitter copy, real copy or blitter merge actually work. When using the STE hard-scrolling bank the more blitter merge "sprites" you add, the more screen banding you will get within the sprite. It's not terribly efficient, perhaps if there ever was a registered version it was more optimised than the shareware version? But who knows!
mlynn1974
Atari Super Hero
Atari Super Hero
Posts: 765
Joined: Mon Mar 03, 2008 10:33 pm

Re: Stevie Wonder Extension

Post by mlynn1974 »

Thanks thomas3 and OverlordMRK! I don't like renaming extensions because that's the way they were intended.

It's a shame Colin hadn't thought out the extension a bit more. The prefix blitter also conflicts with extension #g (Blitter by Ambrah) which was available at the time. I'd have to remove or rename 2 working extensions for a badly thought out unsupported extension. I might use it if I can't think of another way to do the effect I want. :D
Still got, still working: Atari 4Mb STe, MegaST 2, 520STFM (x2), 2.5Mb STF, Atari 2600JR, Flashback 8 Gold.
Hardware: PC720B, Cumana CSA 354, Ultimate Ripper, Discovery Cartridge, Blitz Turbo, Synchro Express II (US and UK Versions).
elliot
Captain Atari
Captain Atari
Posts: 396
Joined: Tue Mar 17, 2009 2:00 pm

Re: Stevie Wonder Extension

Post by elliot »

I understood that that was a normal thing to do, change the letter. I think maybe a couple of of extensions got shitty about it.
Falcon with CT60 in rack mountable case. Two STFMs, one upgraded lots. My original STE from when I was a teen with Switchable TOS, 1.44Mb drive, 4MB RAM, Supra Hard Drive and very very yellow case. Mega STE with (currently none working) Crazy Dots 2. Atari 2600 and a Jag. And a mountain of commercial software and lots of hardware addons.
mlynn1974
Atari Super Hero
Atari Super Hero
Posts: 765
Joined: Mon Mar 03, 2008 10:33 pm

Re: Stevie Wonder Extension

Post by mlynn1974 »

I copied my STOS26 installation directory in Steem to STOSSTE and removed extensions to make this work.
The "blitter copy" command conflicts with the Misty blitter function. If a command starts with another command from core/another extension STOS cannot disambiguate them. I'm quite sure Colin knew this when he was writing this extension, so maybe that command should be renamed "swblitter copy".

Problems:
1. As discussed the extension name should be something that another extension doesn't use e.g. use .EXP/.ECP
2. The examples are bad with syntax errors,
3. If we use "blitter copy" to copy from a PI1 from a work memory bank into a 640x400 area the palette is copied too knocking the alignment out with a simple blitter copy. When working with .PI1 pictures you would have to offset by +66. This should be explained in the instructions.
4. It doesn't cleanly restore the physical screen on exit. It could include a swreset() method or something.

I can't really use this if I want to use Misty so I don't think Stevie Wonder is really usable for me.
Would anyone consider writing Stevie Wonder 2.0?
Last edited by mlynn1974 on Tue May 03, 2022 10:08 pm, edited 1 time in total.
Still got, still working: Atari 4Mb STe, MegaST 2, 520STFM (x2), 2.5Mb STF, Atari 2600JR, Flashback 8 Gold.
Hardware: PC720B, Cumana CSA 354, Ultimate Ripper, Discovery Cartridge, Blitz Turbo, Synchro Express II (US and UK Versions).
User avatar
thomas3
Captain Atari
Captain Atari
Posts: 400
Joined: Tue Apr 11, 2017 8:57 pm

Re: Stevie Wonder Extension

Post by thomas3 »

A very long time ago, when I'd just dipped a toe into assembly, I went some distance into creating a bunch of commands which probably do what you're after... But then (at the time) bailed out due to not understanding how to write a compiler extension.

I'm pretty sure someone else may have produced what you're looking for though - maybe Mike (overlordMRK) can help?

Alternatively... If you're feeling adventurous...
Use some simple assembly for the hardscroll and write some code to self modify Misty etc "real time" to work on playfields. Again, some years ago, I tried this as a proof of concept and it works! You essentially need to change all "$a0"s in e.g. Misty to whatever your new line width is (in bytes). It works and has the advantage of being filthy/futile/deranged.
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: Stevie Wonder Extension

Post by OverlordMRK »

I quite extensively experimented with Stevie Wonder for several weekends in a row, using the magic pockets tiles/sprites from the missing link examples. It's a tricky beast to work with. I'm sure I have got everything working together within my install, ie. with both misty, missing link and stevie all installed at once, also the STream plugin to have streaming STE HDD audio. Including palsplit to gain a few extra colours to produce a sky background. I stopped after a while though, because it was frustrating and I concluded that there probably is a better solution which can be found/written other than Stevie Wonder.

Things were also becoming a bit convoluted, ie. involving several different counters/timers and namely "quadruple buffering" (I guess you could call it that..?) when getting the 16 pixel strip copy method going for making ste hard-scrolling maps. It was a good extension in theory, but I wish it was more efficient. I think the more enemies I tried to add, the more banding I got within each blitter merge. At some point I can look at my source, then put together a new example based upon everything I was experimenting with so you can look at it.

For now I'd sooner stick with world maps with a reduced screen size than try to pursue things further with Stevie. That said, I think blitter merge is a very handy command. Much more memory efficient, as large bobs are so ram hungry with 8 or 16 pixel scroll. I'm probably going to be using Stevie for larger sprites regardless of whether I'm using STE hardscroll or not.

I kindof get the feeling that maybe Stevie was only ever intended for putting together a quick demo, ie. having an ste hardscrolling background bouncing around, then have maybe one or two sprites floating around over the top and music playing, also a scrolltext too? Regarding your code mlynn1974, maybe not using the extension #g method and using the actual command names might help? I never use that method, where you put "extension #g" etc.

Neil Halliday has been gradually working on a new extension to enable blitter sprites and ste hardscroll within STOS. I was helping test it at one stage. We got reasonably far, but still a long way to go. Neil has been strapped for time lately, like we all are really I guess! I think eventually he could get something going, but that said AGT is producing such nice results. I want to learn C and 68k over time myself, it will take several years but I have bought several books and have downloaded a lot of reading material from Dev Docs and archive.org, also various websites. Mostly the 68k side of things though.
Encolpius
Atari freak
Atari freak
Posts: 58
Joined: Mon Aug 27, 2018 12:46 pm

Re: Stevie Wonder Extension

Post by Encolpius »

This gave me an idea. Rather than hardware scrolling, why not just throw RAM at it and ersatz it with the blitter?

I was considering, when I got the time, attempting to do an ersatz parallax scroll by basically blitter copying each layer, back to front, from x=0 to x=CurrentPlace to logic,x=320-CurrentPlace, and from x=CurrentPlace to logic,x=0. Then by increasing CurrentPlace at different rates accordingly. Stevie Wonder doesn't require 16 pixel multiples whatever so this should work.

Then if you want to get really cheeky, have the background be two screens and plop in randomised "slices" of scenery whenever CurrentPlace exceeds a multiple of 64, then swap the addresses of those screens when CurrentPlace exceeds 320.

I have an idea for a wee demo with this that I was kicking about when I was arranging the Black Knight 2000 soundtrack in the STOS music editor a couple weeks back, but it would require some drawing to look good, so I went back to implementing a scripting engine for WOL and trying to make my full moon assembly function work properly.
elliot
Captain Atari
Captain Atari
Posts: 396
Joined: Tue Mar 17, 2009 2:00 pm

Re: Stevie Wonder Extension

Post by elliot »

I never heard of this extension before and searches reveal nothing but classic songs for me, does anyone have a link or other to some docs/downloads?

On the up side and as a side note, search for Stevie Wonder - Pastime Paradise. I knew Coolio had sampled one of his songs but I did not know that he asked SW if he could use it and SW said yes as long as it did not have any slang, violence, gun references, etc in it. This panned out well for him as it was a "gangster" song that was clean enough to be played on daytime radio - so got lots of plays and the rest is.....
Falcon with CT60 in rack mountable case. Two STFMs, one upgraded lots. My original STE from when I was a teen with Switchable TOS, 1.44Mb drive, 4MB RAM, Supra Hard Drive and very very yellow case. Mega STE with (currently none working) Crazy Dots 2. Atari 2600 and a Jag. And a mountain of commercial software and lots of hardware addons.
User avatar
OverlordMRK
Atari User
Atari User
Posts: 33
Joined: Thu Aug 31, 2017 10:25 pm

Re: Stevie Wonder Extension

Post by OverlordMRK »

elliot wrote: Fri May 20, 2022 10:04 pm I never heard of this extension before and searches reveal nothing but classic songs for me, does anyone have a link or other to some docs/downloads?

On the up side and as a side note, search for Stevie Wonder - Pastime Paradise. I knew Coolio had sampled one of his songs but I did not know that he asked SW if he could use it and SW said yes as long as it did not have any slang, violence, gun references, etc in it. This panned out well for him as it was a "gangster" song that was clean enough to be played on daytime radio - so got lots of plays and the rest is.....
You can get it from the STOS Time Tunnel page, in the extensions section. I've helped Exxos add a bit more stuff over the past few years:
https://www.exxoshost.co.uk/atari/STOS_index.htm

Return to “STOS”