Jump to content
IGNORED

ECS Lite? (RAM+PSG)


Recommended Posts

We started adding ECS support to Argon today, and it quickly was turning into a rabbit hole.

 

As in, needing keyboard support, support in our database to indicate when a keyboard would be needed in the UI, etc.

 

So taking a step back, we think it could be the most bang for the buck to take an "ECS Lite" approach, and wire up the extra RAM and 2nd PSG (sound chip), but nothing else.

 

Pretty sure Space Patrol would be happy with that (@intvnut) -- we'll know soon enough, but are there any other indy/homebrew games that would take advantage of those two features, while NOT requiring keyboard/etc?

 

And if the answer is no, then would there be interest from indy devs to change that to a yes if there were easy (we provide examples) and/or integrated support (we help @nanochess ?)  in IntyBasic to take advantage of extra RAM/2nd sound chip (when it is detected/available?)

 

It is especially nice when games take advantage of these, especially the extra sound chip. For a nice comparison, there are the many Coleco games that detect/take advantage of SGM (Super Game Module), which is conceptually the same addition.

 

 

Link to comment
Share on other sites

IntyBASIC takes advantage of the 2nd sound chip and extra controllers if instructed by the programmer. If the game is run over an Intellivision without ECS, then no problems happen except the missing music or/and unability to use the extra controllers.

 

I currently don't remember if there are IntyBASIC games using it.

 

I've made a demo of music for ECS

 

  • Thanks 2
Link to comment
Share on other sites

2 hours ago, nanochess said:

IntyBASIC takes advantage of the 2nd sound chip and extra controllers if instructed by the programmer. If the game is run over an Intellivision without ECS, then no problems happen except the missing music or/and unability to use the extra controllers.

Ah, I should have known it already supported it! ;-)

 

As to the extra controllers, we don't (yet) have support for >1 controller, but it is on the to-do list.

 

So I think it reasonable to define "ECS Lite" as PSG + RAM + Controllers.

 

2 hours ago, nanochess said:

I currently don't remember if there are IntyBASIC games using it.

If there are, would love to know about it.

 

If not, perhaps we can encourage/sponsor an IntyBASIC 2020 competition to create some?

2 hours ago, nanochess said:

I've made a demo of music for ECS

This is great - thanks!

 

Related -- I know @Nyuundere has in the past posted those cool music/song apps with a player piano animation. Has he done any that use the extra ECS sound chip? And if so, can that be graphically represented? (ie perhaps 2 player pianos instead of one in that app?). And if not, could we help that happen?

 

Link to comment
Share on other sites

18 minutes ago, bhall408 said:

Ah, I should have known it already supported it! ;-)

 

As to the extra controllers, we don't (yet) have support for >1 controller, but it is on the to-do list.

 

So I think it reasonable to define "ECS Lite" as PSG + RAM + Controllers.

 

If there are, would love to know about it.

 

If not, perhaps we can encourage/sponsor an IntyBASIC 2020 competition to create some?

This is great - thanks!

 

Related -- I know @Nyuundere has in the past posted those cool music/song apps with a player piano animation. Has he done any that use the extra ECS sound chip? And if so, can that be graphically represented? (ie perhaps 2 player pianos instead of one in that app?). And if not, could we help that happen?

 

Most of the videos I uploaded to my thread are using the IntyMusic program by Marco Marrero:

I think I can do a enhanced version of Flower Dance, I need to check with Nanochess about the ECS... basically is just using three channels of a chip and the other three channels of the extra chip, right?

 

Link to comment
Share on other sites

8 minutes ago, Nyuundere said:

Most of the videos I uploaded to my thread are using the IntyMusic program by Marco Marrero:

Is Marco here on AtariAge? Could he do an ECS enhanced dual keyboard version of IntyMusic?

 

9 minutes ago, Nyuundere said:

I think I can do a enhanced version of Flower Dance, I need to check with Nanochess about the ECS... basically is just using three channels of a chip and the other three channels of the extra chip, right?

Yes. In addition to the 6 standard channels, I believe there is also a white noise generator that could be used for sampled sounds and/or percussion.

 

(Caverns of Titan for Coleco SGM seems to leverage this)

 

  • Thanks 1
Link to comment
Share on other sites

4 minutes ago, bhall408 said:

Is Marco here on AtariAge? Could he do an ECS enhanced dual keyboard version of IntyMusic?

 

Yes. In addition to the 6 standard channels, I believe there is also a white noise generator that could be used for sampled sounds and/or percussion.

 

(Caverns of Titan for Coleco SGM seems to leverage this)

 

I summon @mmarrero to the topic

 

I'll check the ECS, just for fun. I don't promise fast results xD

  • Thanks 1
Link to comment
Share on other sites

The music I composed for the (sadly never released) demo Voyage features up to 6 channels throughout the demo, plus support for IntelliVoice. I have the music code and may have posted standalone binaries before to play back the songs minus rest of the demo. I can link/post those again if you have use of them for demoing the ECS mode.

 

We used a modified version of Arnauld's tracker in machine code though, not IntyBASIC.

Edited by carlsson
Link to comment
Share on other sites

12 hours ago, bhall408 said:

We started adding ECS support to Argon today, and it quickly was turning into a rabbit hole.

 

As in, needing keyboard support, support in our database to indicate when a keyboard would be needed in the UI, etc.

 

So taking a step back, we think it could be the most bang for the buck to take an "ECS Lite" approach, and wire up the extra RAM and 2nd PSG (sound chip), but nothing else.

 

Pretty sure Space Patrol would be happy with that (@intvnut) -- we'll know soon enough, but are there any other indy/homebrew games that would take advantage of those two features, while NOT requiring keyboard/etc?

 

And if the answer is no, then would there be interest from indy devs to change that to a yes if there were easy (we provide examples) and/or integrated support (we help @nanochess ?)  in IntyBasic to take advantage of extra RAM/2nd sound chip (when it is detected/available?)

 

It is especially nice when games take advantage of these, especially the extra sound chip. For a nice comparison, there are the many Coleco games that detect/take advantage of SGM (Super Game Module), which is conceptually the same addition.

 

 

As others have noted, IntyBASIC has support for 6-voice music when it detects the ECS.   IIRC, IntyBASIC detects the ECS by reading/writing a couple bytes of ECS RAM.  I don't think it actually makes use of any of that RAM on its own, though, other than to detect the ECS's presence.  Also, IntyBASIC doesn't have native support for the ECS keyboard, unless it's been added since I last paid attention.

 

For most bang-for-the-buck supporting the homebrews, all you need is the second PSG, and maybe the RAM.  Controllers would be a nice-to-have, IMHO, but I honestly doubt there's that many folks who actually would make use of that.  I'm not saying it's zero, but the number's small.

 

The original Mattel ECS games need the ECS ROM and keyboard support.  Thanks to Mattel marketing trying to push the ECS, many (or all?) of the ECS games require trivial keyboard inputs to become playable.  For example, you can't leave the Mind Strike title screen without pressing a key on the keyboard.  Ridiculous.

 

But for homebrews, the second PSG gives the most bang for the least buck.  The RAM is a cheap and easy to add, and needed to satisfy IntyBASIC's auto-detect.  And, you can leave both on all the time without confusing any other games, AFAICT.

 

Side note:  The real ECS has an interesting interaction with the Ms. Pac-Man homebrew.  That homebrew uses GRAM aliases at $7800 - $7FFF, $B800 - $BFFF, and $F800 - $FFFF to update GRAM.  The real ECS disables those aliases, to enable page-flipped ROMs in those segments.  If you implement that aspect of the ECS, you will break Ms. Pac-Man.

 

If you want to do something safer to enable Ms. Pac-Man, but to prevent games that page-flip ROM in those ranges from corrupting GRAM, just filter out writes to $xFFF that match the pattern $xA5y at the GRAM.  (e.g. $FA51 written to location $FFFF should flip a page, but not update the GRAM at $39FF via the write-only alias at $FFFF.) 

Link to comment
Share on other sites

20 hours ago, bhall408 said:

Pretty sure Space Patrol would be happy with that (@intvnut) -- we'll know soon enough, but are there any other indy/homebrew games that would take advantage of those two features, while NOT requiring keyboard/etc?

FUBAR uses the extra controller ports for 4 players, in addition to the extra sound channels.  I didn't use the ECS RAM because the ECS is supposed to be optional.

 

Reading the extra controllers is a cinch.  The state of the third and fourth controllers is at addresses $00ff and $00fe, whereas the state of the first and second controllers is at $01ff and $01fe.

  • Thanks 2
Link to comment
Share on other sites

3 minutes ago, Zendocon said:

FUBAR uses the extra controller ports for 4 players, in addition to the extra sound channels.  I didn't use the ECS RAM because the ECS is supposed to be optional.

 

Reading the extra controllers is a cinch.  The state of the third and fourth controllers is at addresses $00ff and $00fe, whereas the state of the first and second controllers is at $01ff and $01fe.

I'd be lying if I said I didn't have you in mind when I mentioned:

7 hours ago, intvnut said:

Controllers would be a nice-to-have, IMHO, but I honestly doubt there's that many folks who actually would make use of that.  I'm not saying it's zero, but the number's small.

?

 

I mean it in the nicest way.  Only very few people have asked me about ECS 4-controller support in jzIntv, and you're one of them.  A couple others have been interested in enabling the 4-controller support in World Cup Soccer, and someone actually got it working on the Ultimate Flashback.  As far as we know, WC Soccer is the only original game that supported 4 controllers.

 

Didn't you also once mention to me an idea for an 8-player game concept to me (perhaps at PhillyClassic 2001), where each person puts a finger on one keypad button, with a different keypad row assigned to each person? 

Link to comment
Share on other sites

17 hours ago, nanochess said:

IntyBASIC takes advantage of the 2nd sound chip and extra controllers if instructed by the programmer. If the game is run over an Intellivision without ECS, then no problems happen except the missing music or/and unability to use the extra controllers.

 

I currently don't remember if there are IntyBASIC games using it.

 

I've made a demo of music for ECS

 

Ultimate Pong has an ECS 4 controller mode. I believe there are some homebrews that feature enhanced ECS music but can't remember which off hand. There are also 4 games nearing completion in the pipeline that support ecs music if available but they are single or 2 player co-op games. 2 of them will only be offered as roms via encrypted Luigi files if they are offered as roms at all, the other 2 are up in the air rom wise.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, intvnut said:

Didn't you also once mention to me an idea for an 8-player game concept to me (perhaps at PhillyClassic 2001), where each person puts a finger on one keypad button, with a different keypad row assigned to each person? 

Probably.  I was thinking about a 2-player game where each player held the controller sideways and used the four keypad rows (now columns) for LRTF controls.  What I had in mind was a 2-player split-screen version of Space War.  Having an 8-player single-button game like Sharp Shot wouldn't be too far off.

Link to comment
Share on other sites

6 minutes ago, artrag said:

I would support what is implemented in intybasic. Nothing more

Based on this thread, we've decided to do "ECS Lite" as RAM+PSG right away (as in for the next alpha release later this month), and at the point that we support multiple players generally, then we may as well support the extra 2 controllers of ECS as well (since there are other systems we are supporting/plan to support that can handle 4 players, such as Atari 2600 with 4 paddles, or Atari 800 and 5200 with 4 ports). We won't do/support any ECS version of the firmware or BASIC, and we won't do keyboard, tape, etc.

 

The alpha update we posted yesterday finalized Coleco support (with addition of SGM), so now we're fully focused on finalizing Intellivision support. The other supported systems for 1.0 are Atari 2600, Atari Lynx and Vectrex. So we'll have 5 at launch, and then add more post-launch.

 

Any developers that would like to test out their games/apps with the alpha, just PM me and I can send you a link you can use to opt-in (it is being run via the Google Play and Amazon App Store features for closed testing groups).

 

The alpha runs on phone, tablet, TV and Chromebook, and both Android or Amazon Fire OS. When it goes final, we're also planning on releasing a Raspberry Pi 3/Pi 4 version, but that is not available during the alpha phase.


Alternatively, you can PM me with a copy of your rom (which we would hold as confidential/only use internally), and we can test it on our side. If you'd like it to be a pre-load (ie, included in either the free or paid section), that would be awesome, but not required by any means. It is interesting right now for us to be testing against as wide a variety as we can, and also confirming which apps can run with miniExec, and for the ones that don't, what would need to be added for them TO work. I'll likely start a miniExec thread separate from this once we have more concrete questions/feedback to explore.

 

Link to comment
Share on other sites

On 7/2/2020 at 5:58 PM, bhall408 said:

We started adding ECS support to Argon today, and it quickly was turning into a rabbit hole.

 

As in, needing keyboard support, support in our database to indicate when a keyboard would be needed in the UI, etc.

 

So taking a step back, we think it could be the most bang for the buck to take an "ECS Lite" approach, and wire up the extra RAM and 2nd PSG (sound chip), but nothing else.

 

Pretty sure Space Patrol would be happy with that (@intvnut) -- we'll know soon enough, but are there any other indy/homebrew games that would take advantage of those two features, while NOT requiring keyboard/etc?

 

And if the answer is no, then would there be interest from indy devs to change that to a yes if there were easy (we provide examples) and/or integrated support (we help @nanochess ?)  in IntyBasic to take advantage of extra RAM/2nd sound chip (when it is detected/available?)

 

It is especially nice when games take advantage of these, especially the extra sound chip. For a nice comparison, there are the many Coleco games that detect/take advantage of SGM (Super Game Module), which is conceptually the same addition.

 

 

 

Below are links to some ECS music for your experimentation. Search the forum for "intybasic rough song" and you will find several songs. One quick way to make any regular song in IntyBASIC ECS-ready is to take a song with 3 tone tracks, copy-paste the columns to 3 additional tracks in the same file, add an empty noise channel between the original and new tracks if necessary, then set the instrument in the additional tracks to something different (for example "Z"), and play.

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

On 7/3/2020 at 11:04 AM, Zendocon said:

Reading the extra controllers is a cinch.  The state of the third and fourth controllers is at addresses $00ff and $00fe, whereas the state of the first and second controllers is at $01ff and $01fe.

Thanks - have added that to the to-do list (for after we add >1 controller support generally)

Link to comment
Share on other sites

On 7/3/2020 at 12:02 AM, carlsson said:

The music I composed for the (sadly never released) demo Voyage features up to 6 channels throughout the demo, plus support for IntelliVoice. I have the music code and may have posted standalone binaries before to play back the songs minus rest of the demo. I can link/post those again if you have use of them for demoing the ECS mode.

If it isn't extra work/you just have to dig up the link, that sounds fun.

On 7/3/2020 at 12:02 AM, carlsson said:

We used a modified version of Arnauld's tracker in machine code though, not IntyBASIC.

This could be a good reason to have it as a test case just by itself. Although I presume Space Patrol is assembler, and that is also a good test case/app for ECS PSG.

 

Link to comment
Share on other sites

2 minutes ago, bhall408 said:

Cool - I like that these have percussion!

One thing I have been planning to do, but haven't got around to do yet, is to integrate the tracker with an IntyBASIC program.

 

The current version of IntyBASIC has maximum 228 bytes of 8-bit variables (Scratch RAM) and maximum 47 words of 16-bit variables (System RAM). The music tracker in the original 3 channel configuration uses 20 bytes of Scratch RAM and 5 words of System RAM. The ECS enhanced version uses 36 bytes of Scratch RAM and 9 words of System RAM, memory areas that I suppose would have to be reserved in the compiler so it doesn't try to use those, but the same should be true with any assembly code module mixed with BASIC so perhaps not rocket science.

 

Of course if JLP/CC3 type RAM expansion is enabled, giving you another ~8000 words to play with, it is mostly a non-issue.

Link to comment
Share on other sites

On 7/3/2020 at 3:40 AM, intvnut said:

Side note:  The real ECS has an interesting interaction with the Ms. Pac-Man homebrew.  That homebrew uses GRAM aliases at $7800 - $7FFF, $B800 - $BFFF, and $F800 - $FFFF to update GRAM.  The real ECS disables those aliases, to enable page-flipped ROMs in those segments.  If you implement that aspect of the ECS, you will break Ms. Pac-Man.

 

If you want to do something safer to enable Ms. Pac-Man, but to prevent games that page-flip ROM in those ranges from corrupting GRAM, just filter out writes to $xFFF that match the pattern $xA5y at the GRAM.  (e.g. $FA51 written to location $FFFF should flip a page, but not update the GRAM at $39FF via the write-only alias at $FFFF.) 

Thanks for that tip -- I'll have to ping Carl Mueller...

Link to comment
Share on other sites

1 hour ago, bhall408 said:

Although I presume Space Patrol is assembler, and that is also a good test case/app for ECS PSG.

Yes it is.  One version of the source code (the "teaser edition") is up here: http://spacepatrol.info/src/

 

jzIntv's examples folder has the full edition now.

 

5 minutes ago, Zendocon said:

developed it several years before IntyBASIC came onto the scene.

I started developing it before AS1600 even had macro support!  I'm not sure if jzIntv even had full MOB support yet.  I still used Carl's emulator for some testing, and the Intellicart for other test.

 

I wrote the first code for it approximately 20 years ago, sometime in late 2000 or early 2001, IIRC.  The oldest documentation I have was the initial engine brainstorm from Aug 6, 2000.  I know I showed the first tech demo at PhillyClassic 2001, and it was already a few months old by then. There's a lot of code in it that's older now than many (most?) of the original 125 were at the time I first wrote it.

 

  • Like 4
Link to comment
Share on other sites

I'm a little late to this thread but add that the ECS also has a serial port that can communicate over RS-232 or using tones to/from a tape deck.  I'm in the late stages of research on this and hope to publish soon.

 

Not many games use it.  The build-in ECS ROM can print via RS-232 and save/load data to a tape deck.  A few other games can also save/load game info to a tape deck, but this feature is optional for the user.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...