Jump to content
IGNORED

Controlling EM Pinball with an Atari 800XL


ZZTOP SOFT

Recommended Posts

well, I definitely think this is a cool project. you might want to listen to any suggestions Fox-1 has, I think he once built a light controller (as well as a controller of other things) out of an 800XL for his car I think.

Sure! There are many methods of interfacing, but we have to think first, in the slow Basic processing speed versus hardware complexity. Both must be the more simple as possible to achive the goal. So, serial output, or multiplexing output, at least in Basic can't be. I'm going to use addressable latchs, so:

POKE 54800,1 = some ON

POKE 54800,0 = some OFF

If the method of interfacing eats many cycles, it's quite possible, the machine does not react to the speed of the ball, losing points or ignoring other actions. In matter of fact, this is one thing very common on EM pinballs, and that is one thing I'm not allow on my design.

IE: when the ball pass on a rollover, several things happen: some points, one sound, turn on some light, belive me, Basic is at the edge of its capability.

If someone knows, can tell how many mS takes POKE 54800,1: POKE 54800,0

I think something near to 100mS or 200mS. The maximum time between action and action is just 1 second (better if less), so all routines (update display, sound, lights) should be in that range.

Edited by ZZTOP SOFT
Link to comment
Share on other sites

Soulbuster: some friends say me ¿why you don't allow to another guys to come and play? Paying for that. Well, you say the answer: playin hours on $1 makes me out of business. :D

 

Yea, I probably pissed off the bar I played in 'cause I was not dropping lots of quarters.

Link to comment
Share on other sites

Sure! There are many methods of interfacing, but we have to think first, in the slow Basic processing speed versus hardware complexity. Both must be the more simple as possible to achive the goal. So, serial output, or multiplexing output, at least in Basic can't be. I'm going to use addressable latchs, so:

POKE 54800,1 = some ON

POKE 54800,0 = some OFF

If the method of interfacing eats many cycles, it's quite possible, the machine does not react to the speed of the ball, losing points or ignoring other actions. In matter of fact, this is one thing very common on EM pinballs, and that is one thing I'm not allow on my design.

IE: when the ball pass on a rollover, several things happen: some points, one sound, turn on some light, belive me, Basic is at the edge of its capability.

If someone knows, can tell how many mS takes POKE 54800,1: POKE 54800,0

I think something near to 100mS or 200mS. The maximum time between action and action is just 1 second (better if less), so all routines (update display, sound, lights) should be in that range.

also, if you have problems with speed, there is a POKE that disables ANTIC DMA I think which should speed some stuff up. something about the atari being inside the pinball machine makes me think you are not hooking up a screen anyway :)

  • Like 1
Link to comment
Share on other sites

For stuff like the bumpers that require millisecond response, assembly programming would be a must. For general stuff like score update, feature resets, whatever, Basic would be pretty adequate.

 

But something like running a VBI at 50/60 Hz might be insufficient for the quick response needs. A few DLIs could fix that, you could then have e.g. 200 Hz response on some things.

 

Also, I forgot the PIA bits - there's an extra 2 bits of input, 2 bits output that are available through the SIO port there. Normally the inputs are to request Interrupts but could probably be used as simple input latches. The outputs are for SIO Command and cassette motor control and can be used for other applications.

 

There's also the SIO input/output pins which can be read or set by a user program.

 

But still, I think some sort of cartridge-based latch array might be a better way if you need more than 20 bits or so I/O.

 

Are you going to use the Atari for music or sound effects? I reckon for an old pinball that'd be pretty cool.

Link to comment
Share on other sites

Yeah! POKE 559,0 I tried it on my eprom burner and the speed increase was noticeable.

 

On EM pinballs bumpers are self shoot. I mean, the primary switch turn ON a small relay who activates the bumper coil gives the power needed (I'm copy that). When the coil is fired, part of the mechanism activates a second switch wich turn OFF the relay, score one point and make's a chime.

 

74074883_61b020c84c_z.jpg

Chime unit.

 

About the sound, EM pinballs have a "chime's unit", which has the ability to makes three tones, TITITITI TATATATA TOTOTOTO. So, I'm going to use sound like: SOUND 1,50,10,10 SOUND 1,100,10,10, 10 and SOUND 1,200,10,10 and maybe other effects that I have not thought yet. :D

 

I'd love If I could use SAM, but I don't know how make it run on cartridge. ;-(

Edited by ZZTOP SOFT
Link to comment
Share on other sites

As it stands now, SAM uses all the available CPU cycles while doing voice playback. Getting it onto cart wouldn't be a huge effort but it'd still have to run from Ram as normal.

 

But if you used something like a 8 Mbit cart, that's 1 Megabyte or near enough that you could devote to samples which could be played back via timer (allows normal program to still execute). 8 KHz playback of 4 bit samples = 4 K/second, so 1 Meg would give a bit over 4 minutes worth of sample storage.

  • Like 1
Link to comment
Share on other sites

729 dec. for the delay until repeating starts. 730 holds delay between repeated "presses".

 

The value is in 50th or 60th of a second depending if Pal or NTSC. I suspect the adjustment isn't as fine as available for PC key repeat, it's probably more like fractions of 100 or 200.

  • Like 1
Link to comment
Share on other sites

729 dec. for the delay until repeating starts. 730 holds delay between repeated "presses".

 

The value is in 50th or 60th of a second depending if Pal or NTSC. I suspect the adjustment isn't as fine as available for PC key repeat, it's probably more like fractions of 100 or 200.

Cool! 729,10!! awesome response! thanks a lot, in time I just forgot the addr. This help me a lot in the keyboard scanning routine.

Would Turbo-BasicXL be faster?

I'm already using TB. Just need the right compilator, because I only have NMG compiler (only runs atari basic).

Link to comment
Share on other sites

I just start the reassembly of the parts recently buyed.

 

zenti32.jpg

Me.

 

zenti33.jpg

Posts.

 

zenti34.jpg

Rubbers.

 

zenti35.jpg

Lane guide.

 

zenti36.jpg

Stand up Targets.

 

zenti37.jpg

Bumpers.

 

zenti38.jpg

Flippers.

 

zenti39.jpg

Playfield.

 

zenti41.jpg

Drop targets

 

zenti40.jpg

 

zenti42.jpg

 

zenti45.jpg

Special lane, made by me.

 

zenti46.jpg

Upper arch.

 

Nice Progress!

Thanks, I'm going as fast as possible.
  • Like 1
Link to comment
Share on other sites

Well, this is the first test, atari keyboard is conected to switchs, IO board works fine, sounds and score OK. Only the coils are not fired yet, but I expect to do it work today or tonight.

 

See it on yt:

http://www.youtube.com/watch?v=qgu7TJJ4wYk&feature=youtu.be

Edited by ZZTOP SOFT
  • Like 3
Link to comment
Share on other sites

Well, I've been a little busy, but, today I did the first attempt to fire coils controlled by the atari itself.

And works! In case wants to know how, I do nothing too fancy or ingenious, I just copy the coil fire method of a Williams pinballs: a darlington transistor.

This work like that: the atari send a 1 to turn on the coil and a 0 to off. Easy.

 

Test program:

 

10 A=0

20 POKE 54612,1

30 A=1^1

40 POKE 54612,0

 

The instrucción A=1^1 is just to create a small delay between the transition 1 to 0. If I dont put this one, the coil act too weak, because the pulse is too short. So, with this, the coil fire like hell!

That is what I try to explain (or say) in the next video. XD

 

 

For now I have no electric isolation between the atari and this section (something too risky). So, I think very seriously in add some optocouplers to avoid any risk of short between the 24V and the Atari (the amps here are brutal because they feed the coils).

 

Please, ask me any question. :D

Edited by ZZTOP SOFT
  • Like 1
Link to comment
Share on other sites

oh boy, oh boy, what a nice thing. At last I can play with all working by itself. The software is running on Turbo Basic and work perfectly, better than I expected. Some friend says me that can be compiled using Turbo Compiler, and using Runtime.com the file could be ready (executable) to fit onto a cartridge. Somebody know if this is true? or say me how to do it please. (I only need the .exe file, because I already have the loader for the cartridge.)

 

And also I need the addr. of the console keys, because when the ball is on the out hole, they stuck all the other keys, so cant start the game or insert coins, so Im goin to use START and SELECT instead START & COIN buttons , so that way the keyboard remains free. I only remember 53XXX or so.

 

  • Like 3
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...