Jump to content
mike99mccarthy

“Attack of the PETSCII robots” for 7800

Recommended Posts

1 hour ago, mksmith said:

 

It's certainly much more user friendly to have something without adding an adapter but the amount of functionality makes a standard two-button controller not so easy to implement. It may require a change to how the selection words to make it 2 button friendly but well see.  As there is an existing 'Atari' adapter David has for the SNES controller that could be the best choice (and fit with other platforms) but time will tell.  Mike would have the final say on anything used as he would need to write the driver to handle it but might as well be opening to any type of controller ATM.

It’s good that your staying open minded to peoples input and it’s great to hear the project is progressing well. I love Atari 7800 homebrew and this is definitely an exciting port to get.  Appreciate all the hard work that’s going into it. Can’t wait to see the title screen too!

  • Like 1

Share this post


Link to post
Share on other sites
7 minutes ago, Silver Back said:

It’s good that your staying open minded to peoples input and it’s great to hear the project is progressing well. I love Atari 7800 homebrew and this is definitely an exciting port to get.  Appreciate all the hard work that’s going into it. Can’t wait to see the title screen too!

Thanks! Mike is doing the heavy lifting on this version currently but it certainly has exceeded my original vision of what I thought was possible - he has gone all out using all sorts of tricks to make this amazing! I said to David that I don't think there anyone as knowledgeable about the platform in the world than Mike (or Bob of course) and boy is he proving so!

  • Like 4
  • Thanks 2

Share this post


Link to post
Share on other sites

A 7800 Jaguar adapter is sold by Best Electronics.

Link: https://www.best-electronics-ca.com/review.htm

I think this would be an excellent control method for the game - and any other micro-7800 port.

A keypad-overlay would be an excellent bonus with this superb game, and others.

I like S.N.E.S controllers, but I'd prefer to play with an ATARI controller and having the Jag-pad as a usable control scheme would be excellent.

It would be cool having all the buttons on one controller, and I'd pay extra for a Petscii-themed keypad overlay if one was included.

 

I'm looking forward to this game.

Edited by Gunther
Added Link.
  • Like 1

Share this post


Link to post
Share on other sites

I had a look at the Jaguar controller pinouts, and it seems to use a keyboard-style matrix, with a lot more lines than we can muster in single joystick port. I'm guessing these jag->db9 adapters just hard-code for column 4 (with drections, button-a, and pause) and drop the other columns, ignoring the keypad entirely. So I don't think Jag pad is a feasible option here.

  • Like 3

Share this post


Link to post
Share on other sites

Could an adaptor be made that would make it feasible, or is my lack of technical knowledge glaringly obvious?

 

I've looked at the ports, and can see what you mean.

 

It would open-up the 7800 to some great micro-games if it could be done.

 

Edited by Gunther

Share this post


Link to post
Share on other sites

Hows about:

Jag connector > splitter, so that both 7800 ports are used - controller (port 1), Keypad (port 2).

 

Possible?

 

That's how the stand-alone kepad will be implemented.

Making the splitter wouldn't be that expensive.

Edited by Gunther

Share this post


Link to post
Share on other sites

Maybe possible, but not feasible for this project. The connector/splitter would need to be custom, mapping jag rows and column lines to different pins in each db9 port. Alternatively, a microencoder could be used to read and multiplex or serial-encode the jag controller output, sending it to a single db9, but again, not feasible for this project. A custom adapter is too big a lift.

  • Thanks 1

Share this post


Link to post
Share on other sites

That's a shame, It would've been a cool feature, but if there's no adaptor available then what can you do.

It's great to know that it is indeed possible to create an adaptor that would allow it though.

 

I'm open to all the control-schemes already mentioned, just thought this would be a cool addition.

 

Thanks for the clarity.

 

Still looking forward to seeing what you come-up with.

 

 

 

 

 

Edited by Gunther
  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, mimo said:

Not going to happen 

Maybe not for this game; but indeed possible as clarified by others on this thread.

 

 

Share this post


Link to post
Share on other sites
21 hours ago, mksmith said:

As there is an existing 'Atari' adapter David has for the SNES controller that could be the best choice (and fit with other platforms) but time will tell.

It's called SNACK:

 

  • Like 4
  • Thanks 2

Share this post


Link to post
Share on other sites
23 hours ago, Irgendwer said:

It's called SNACK:

 

Awesome thank you!

Share this post


Link to post
Share on other sites
23 hours ago, Irgendwer said:

It's called SNACK:

 

Will these ever be offered to the general public? Currently it seems to require you to be a paying member of ABBUC in order to access the online store to purchase these?

 

  • Like 2

Share this post


Link to post
Share on other sites

@Irgendwer Can all of the buttons from SNES->SNACK be identified separately? If I'm understanding the docs right, SNACK returns a combination of joystick lines that could also be valid actions in gameplay. e.g. the SELECT button on the controller would generate either be LEFT+UP or LEFT+FIRE, depending on the SNACK config selected. 

 

The PET version of Petscii Robots clocks the button data out of the SNES pad, with direct communication to the snes clock and data lines. This allows for unambiguous button combinations.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, -^CrossBow^- said:

Will these ever be offered to the general public? Currently it seems to require you to be a paying member of ABBUC in order to access the online store to purchase these?

 

They will/are offered to the general public. As I wrote in the other thread:

 

On 12/7/2021 at 10:46 PM, Irgendwer said:

Anybody willing to mange an omnibus order and distribution of the kits so that I have only to send one parcel and a lot of shipping costs would be saved?

 

This means, if someone from e.g. the US likes to organize such an order I gladly will ship a bunch of adapters. Until now, nobody reacted.

  • Like 1

Share this post


Link to post
Share on other sites
9 hours ago, RevEng said:

@Irgendwer Can all of the buttons from SNES->SNACK be identified separately? If I'm understanding the docs right, SNACK returns a combination of joystick lines that could also be valid actions in gameplay. e.g. the SELECT button on the controller would generate either be LEFT+UP or LEFT+FIRE, depending on the SNACK config selected. 

 

Not all buttons can be identified separately. This is a minor drawback compared to the user port adapter, but I assigned independent functions as meaningful as possible.

(Otherwise SNACK is advantageous compared to the user port solution: Beside that Ataris don't have one ;) , old software is supported without adaptations and supporting the enhanced mode is easier/on a higher level.)

 

So:

In enhanced mode, the directional cross and shoulder buttons work independently but buttons START/SELECT/A/B/X/Y are exclusive with the exception that A&B can also be detected.

This shouldn't be a big restriction, as combinations of the mentioned buttons are quite uncommon.

 

My cc65 library for the A8 should be helpful for estimating the support:

 

Snack cc65 Library.zip

 

Edit: Just reread your question. I guess you refer to the table you found on the other thread. This has nothing to do with SNACK, but is a concurrent solution ("(S)NESctrl"), which doesn't support individual estimation of the buttons.

 

Edited by Irgendwer
  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, Irgendwer said:

 

Edit: Just reread your question. I guess you refer to the table you found on the other thread. This has nothing to do with SNACK, but is a concurrent solution ("(S)NESctrl"), which doesn't support individual estimation of the buttons.

 

Entirely correct - I saw the table and wrongly thought it was for SNACK.

 

Your enhanced mode description sounds great. Thanks for the clarification and your SNACK support library!

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, Irgendwer said:

 

They will/are offered to the general public. As I wrote in the other thread:

 

 

This means, if someone from e.g. the US likes to organize such an order I gladly will ship a bunch of adapters. Until now, nobody reacted.

Hall o Christian

ich will son Teil....schick mir ne PM

 

Gruss Walter

  • Like 1

Share this post


Link to post
Share on other sites

Just a heads-up... it looks like SNACK uses particular paddle values though the range to signal particular buttons. Unlike A8, which has POKEY to do paddle AD conversion, the 7800 and the 2600 use a tight CPU polling loop to do the AD for paddle values. For reading larger paddle values, a full screen's worth of CPU is needed.

 

So I think that SNACK as a standard for SNES controller reading in the 7800 and 2600 worlds isn't going to work.

  • Like 1
  • Sad 1

Share this post


Link to post
Share on other sites
On 12/23/2021 at 6:11 PM, RevEng said:

So I think that SNACK as a standard for SNES controller reading in the 7800 and 2600 worlds isn't going to work.

I'm not familiar with VCS programing, but as far as I understand the POT docs, you could estimate a single of the two controller axes in enhanced mode with one write and just two reads:

 

->VBLANK clear capacitor

->1/5 of the screen, read cap, if 1, axis is up/or left

   otherwise

->3/5 of the screen, read cap, if 1, axis is is centered

  otherwise

  axis is down/right

 

Of course if your display kernel is tight, even this might be a problem, but out of the blue this sounds doable for me...?

  • Like 1

Share this post


Link to post
Share on other sites
11 hours ago, Irgendwer said:

Of course if your display kernel is tight, even this might be a problem, but out of the blue this sounds doable for me...?

For 2600 homebrews, a completely packed display kernel is typical. If the game has a natural break in the display 3/5ths of the way down the screen where the game already changes kernel loops it may be fine, but again here we're looking at something non-typical. So it's doable, but the game has to give up something (display less objects, be less colorful, etc.). Since there's a lot of pressure in the 2600 scene to push the visual edge, I don't see snack support as an choice that will be made. (given the added resistance of needing your players to buy-in to the control scheme)

 

For 7800 homebrews, it's doable for the most part. Games which really push DMA (time to render display objects) may have problems with the reading of values being delayed too long.

For 7800basic specifically, I'd need to overhaul the current interrupt system to get an extra one in the middle of the screen, which competes with future plans I had for the interrupts.

 

Overall the specific timing requirements required here are making snack a less optimal choice. Not impossible, not particularly difficult, just constraining.

Share this post


Link to post
Share on other sites

A SNES adapter can be implemented with few components:
Considering joystick on left port,  PB2 is used to generate the CLOCK signal;
The LATCH signal is generated by a RC network that averages the DC level of the CLOCK signal;
The data can be read on any of the directional, let's say RIGHT direction on PA7.

 

To read the signals (TIAEN should be kept low to activate Q8)
PB2 is kept low for most of the time,  making Q6 to conduct and a High level to be present at both LATCH and CLOCK signals of the SNES controller.
1.When a new sample is desired, PB2 is turned High and held by time enough to make CLOCK and LATCH signals to go low which will hold the SNES controller button state to be held within the controller's internal shift registers.
2.At this time the first bit (button B) can be read at PA7.
3.Then a short high pulse is issued at PB2 causing the controller to shif the next bit (button Y). This pulse shall be short so the RC network will held the level LOW at the LATCH signal.
4.Steps 2,3 are repeated untill all the bits have been read.
5. finally, PB2 is held LOW again until the next cycle.

 

The detection of such adapter can be achieved, for instance, by detecting both UP+DOWN pressed at the same time.

 

      _____                                                             _________
latch      \_____________________________________________________ .... /    
      _____               _       _       _       _       _             _________
clock      \_____________/ \_____/ \_____/ \_____/ \_____/ \_____ .... /
data  XXXXXXX      B     ][   Y  ][  SEL ][ START][  UP  ][ DOWN   ....          

         

A suggested schematic is shown below.

schematic.thumb.png.53ca6776b25338bab98fca99342f118a.png

 

 

The image below is from a previous project where the RC network was used to generate the latch signal (in blue) from the clock (in white).

image.thumb.png.990c187724b066feadd1749dec11300a.png

  • Like 2

Share this post


Link to post
Share on other sites
3 hours ago, Danjovic said:

A SNES adapter can be implemented with few components:

In regard of the discussion, do you really think serving clock and estimating data will take lesser effort?

 

(Edit: Not to forget that SNACK makes the controller compatible to every game in std. mode.)

Edited by Irgendwer

Share this post


Link to post
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...