Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Community Reputation

43 Excellent

About shupac

  • Rank
    Space Invader

Profile Information

  • Gender
  • Location
    Nashville, TN

Recent Profile Visitors

756 profile views
  1. There are four arcade games that use the Quad POKEY: Major Havoc, I Robot, Return of the Jedi, and Firefox. None of them uses any of the "extra" pins (KR2, SID, BCLK). I know of no Atari arcade titles, Quad POKEY or regular POKEY, that use K0-K5, KR1-KR2, the IRQ pin, SOD, SID, ACLK, or BCLK. On the arcade games, POKEY and Quad POKEY are used strictly for sound generation, random numbers, and reading DIP switches (and on one game, Warlords, the paddle controllers) through P0-P7.
  2. The schematic for the Major Havoc arcade game has the correct pinout for the Quad POKEY chip. If memory serves me, it looks like that's the source of the drawing posted by Mytek.
  3. shupac


    Actually no. This is a perfect example of an application where a FPGA is a much better choice than a microprocessor. The digital subsystems in a real POKEY do a lot of things all at the same time. To properly emulate a POKEY in a microprocessor, you need to execute all the required instructions sequentially such that your emulated POKEY correctly changes state every 559 ns (one clock cycle at 1.79 MHz). There are enough instructions that, to meet this timing constraint, the processor has to be running pretty fast. Not sure how fast, exactly, but my guess is at least a few hundred MHz, and microprocessors that can run that fast aren't cheap. I expect you'd also need an external clock source, and those aren't cheap either. In an FPGA, all the digital subsystems run in parallel, just like in the original POKEY, so with the right "code" (i.e. hardware description, in Verilog or VHDL), you can meet the performance specs with a $3 FPGA running off of the 1.79 MHz system clock.
  4. shupac


    Thanks -- it's a great alternative if you have a collection of Atari arcade games you need to keep running. 🙂 For the Atari home computers, I expect it's only useful as a second, audio-only POKEY. I've made a prototype PCB that has additional hardware to read/write from/to all of the POKEY pins, not just the ones used by the arcade games. With this PCB I at least have a platform for developing the additional code needed for the IRQ, keyboard scan, and serial I/O functions.
  5. shupac


    PokeyONE was designed with the minimum feature set to necessary to support the Atari arcade titles, so, unfortunately, it does not support two-tone mode. All AUDCTL settings are fully supported and function exactly as in the original POKEY.
  6. shupac


    I was afraid of that. I really did want to build keyboard-scanning into the chip, because the code to implement it is trivial. But my FPGA simply doesn't have enough pins. Bummer. Tempest and Centipede sure do use the random number generator. Tempest, in fact, has a copy-protection routine that checks to confirm that the pseudo-random numbers provided by the POKEY conform to a certain pattern that results from the precise configuration of the 17-bit LFSR. If this test fails, the game assumes the POKEY is counterfeit and plants a little time bomb in program RAM that will crash the CPU after level 13 if not before.
  7. shupac


    The PokeyONE does have the (pseudo) random number generator in it, and it behaves identically to the one in an original POKEY. Unfortunately, it does not have the keyboard-scanning functionality, which, I'm informed, the 5200 uses to read the controller keypads. But for 5200 games that don't use the keypads, my guess is the PokeyONE would work fine.
  8. shupac


    Hey guys, this thing is my invention, so I will take full responsibility for developing it with a feature set that I know may be useful only to the arcade community. The PokeyONE does scan the pots. That was a feature I finished just before release, and I confirmed it was working by testing it in a Warlords arcade game. (Of all the Atari arcade games, Warlords is the only one that uses the paddle-scanning functionality of the POKEY.) I apologize that PokeyONE does not include keyboard-scan, nor does it implement the logic needed to enable the IRQ, SID/SOD, ACLK, or BCLK pins. There are a couple reasons for that, but the simplest and most fundamental is that I committed early on to using a certain FPGA that matched my size and price constraints, and this particular FPGA simply doesn't have enough I/O pins to support all the POKEY functions. I'm very much interested in extending the feature set in future versions to include all POKEY functions, but apart from the challenge of coding the logic and the difficulty of conducting thorough testing, I'm concerned about keeping costs under control. I was really impressed by foft's PokeyMax device, which reportedly works 100% as a POKEY replacement, but from studying his photos I concluded that his bill of materials for the PokeyMax is more expensive, probably by quite a bit, than mine for the PokeyONE. It's regrettable that POKEYs have become as expensive as they have, but you can be sure no one was going to develop a replacement until it became economically realistic. There's a reason no one was working on a POKEY clone when Ballblazer cartridges could be bought by the case for a buck each.
  9. The schematic I linked to is from Major Havoc. As jmmcorm mentioned, P0-P7, in most Atari arcade games, are connected to DIP switches for setting game and pricing options. The only game I know of in which they're not connected to DIP switches is Warlords, which has the POKEY pot inputs connected to the four rotary controllers. Beats me why channels 1-3 are mixed together by one op-amp while channel 4 gets its own op-amp. I've wondered about that myself. Seems pointless especially when, further downstream, the outputs of those two op-amps are mixed to a single channel so that the game board has only a single audio output.
  10. Thank you for the compliment. The follow-on product I'm working on will be the same size as the original POKEY and will look even cooler, with teensy parts and itty bitty traces. The pinout of QPokey is the same as for a real Quad POKEY: https://imgur.com/a/uFE3m The decoding scheme could not be simpler. Each POKEY has its own chip select (!CS1 to !CS4), so to write to POKEY n, you simply load the address and data onto the busses, set R/W, and strobe !CSn low. The interesting thing about QPokey is that it has room in the FPGA for lots and lots of POKEY cores, and lots of external pins to address those cores. Fancy a 64-core POKEY? (A quad-quad-quad POKEY?) I could rewrite the QPokey code to implement that in about 10 minutes. (Though the FPGA in the existing boards is only large enough to hold, I think, eight cores, there are other devices in the same family with *much* more storage.) As it is, the address decoding uses four pins for four cores, but in a custom application those four pins could be used as an address to point to one of 16 cores. And of course the FPGA has lots more pins that could be dedicated to address decoding.
  11. I designed that board. As of now it is really meant only for Atari's "Major Havoc" arcade game -- a pretty small market! For reasons I don't yet understand, QPokey doesn't work with the other arcade titles that use the Quad POKEY (I, Robot and Return of the Jedi, and Firefox). While in theory you might be able to generate sound by sending the QPokey commands from an Atari A4 or A8 using the POKEY data and address lines (and some way to work the QPokey's R/W line and four chip selects), I wouldn't guarantee success. I've continued to work on this project and am trying to develop an FPGA POKEY that works in Atari home computers. What I've discovered is that it's much easier to get an FPGA POKEY to work with the Atari arcade games since they seem to use only certain features of a real POKEY -- namely, the data I/O and sound generation -- and ignore the others (e.g. IRQ's, analog potentiometer reads, and serial I/O).
  12. I assume you mean the nonlinearity in the digital volume versus output voltage. Yes, my QPokey does implement this. I measured the analog voltage output by a real POKEY for volume levels 0 through 60 and made sure the FPGA mapped the digital volume to the correct output voltage. With this scheme in place, my ears can't detect any difference in the compression/limiting behavior between the QPokey and an original Quad POKEY. (But, disclaimer: I have only been able to test the QPokey on Major Havoc.) The original Quad POKEY is just four individual POKEY cores in a single package. Atari also released a "Quad POKEY Eliminator" daughterboard that simply connects the pins of four individual POKEY chips to a Quad POKEY socket. Consequently, each POKEY in a Quad POKEY behaves exactly like a single, individual POKEY and has its own audio output -- the Quad POKEY doesn't do any onboard mixing of the outputs of the individual POKEYs. My understanding is that two-tone mode relies on the POKEY serial output. The Atari arcade games don't use POKEY serial I/O, so that functionality isn't implemented (yet) in my code. But there's no reason it couldn't be in future versions.
  13. I made an FPGA replacement for the Quad POKEY! https://forums.arcade-museum.com/showthread.php?t=403666 https://hotrodarcade.com/products/new-atari-quad-pokey-eliminator-replacement-board This device is for Atari arcade games that use the Quad Pokey for sound. I'm interested in making POKEY variants that would be useful to the Atari 400/800 community and would love to hear ideas about what features people might want. I understand that I'll have to develop code to handle the keyboard scanning and serial I/O, which I was able to omit for the arcade-game version.
  • Create New...