Jump to content

EricBall

Members
  • Content Count

    2,362
  • Joined

  • Last visited

Blog Comments posted by EricBall


  1. Beware of DVR storage creep. It's hard to avoid filling with stuff "I'll watch later" or FISH (first in, still here). On my old TiVo I had AFI top 100 movies which were over a year old - and still unwatched. On my current cableco DVR I have some Doctor Who Christmas specials (recorded over Christmas) that I need to clean out ASAP.


  2. I've used the front speaker boxes as temporary stands for the surround speakers and the packing foam to raise the front speakers up so the tweeters are more in line with the center of the screen. I'll build something out of plywood and 2x2s later. For the moment I'm not using the center speaker (and I really hadn't planned to), although I did connect the powered subwoofer. I guess I could have skipped buying the center, but I figured if I did then Murphy would make sure I'd regret the decision at some point in the future.

     

    I had fun watching Tron Legacy last night (3-D and surround sound, woo-hoo!).


  3. Re: Hacking (note: this is not a complete list)

     

    Hardware:

    • What voltage levels does the LCD controller need. If native 3.3V output is not sufficient what parts are needed to convert the output.
    • What components are needed to connect the switch matrix & dial potenitometer so they can be used.
    • What components are needed to drive the speaker (the QuickStart doesn't have an onboard amplifier like the Demoboard)
    • How does this all physically come together, i.e. the cartridge connector (including stuff like the 9V loopback) and in the cartridge

     

    Software:

    • What pin states & timing are needed to send to the LCD controller to get something to appear onscreen (including the "inversion" referenced in the documentation). Best way to do this is to capture the logic used by an actual cartridge and then reverse engineer it. Just check the voltage levels first so you don't overload your inputs.
    • Creating the software to do everything including driving the LCD controller & speaker, reading the keypad and dial, capturing the LCD controller protocol, not to mention the game itself and all the necessary debugging

    All of this is possible, although soldering will probably be required.


  4. #1 - While connected to the PC via USB, the Quickstart will self power from the USB. You can use this to experiment with the Propeller via the serial terminal. In the game (not connected to USB at the same time) you would need to connect pins 40 (Vin) & 39 (Vss) on the Quickstart accessory socket to pins 24 (+9V) and 20 (GND) of the Microvision cartridge connector.

     

    #2 - You would connect the other pins on the Microvision cartridge connection to pins on the Quickstart accessory socket. However, you need to establish first what voltage levels the LCD controller expects as you may need a level converter (and possibly an additional voltage convertor) if it needs more than 3.3V. Then there's the whole LCD controller protocol you will need to work out along with the driver software for it and the keypad & dial. No, this isn't a plug & program solution - there's serious hardware & software hacking required.

     

    #3 - No idea. Maybe Dan Boris or some of the other Microvision enthusiasts has an idea.

     

    The name is good.


  5. Arcade-like Pac Man is tricky. To start with the arcade used a vertical monitor, so anything you do will be out of proportion. The 2600 also has limited graphics abilities - a 40 monochrome pixel playfield and two 8 monochrome pixel sprites per line.

     

    Rather than trying to duplicate an existing game with the Atari - why not come up with something unique? bB also has restrictions on what graphics it is capable of. So it's probably better to start with what can be done easily rather than setting a goal which might only be possible with a lot of effort & compromises.


  6. Before you tear into the cartridge you probably should play around with the QuickStart board and get up to speed on SPIN and PASM. As a first challenge you can use the QuickStart as a kind of logic analyzer to capture the input to the LCD controller. (Hint: you want to use the PASM WAITPNE intstruction.) Just check the voltage level first as the QuickStart is a 3.3V part and you don't want to accidentally zap it with 9V of input (although you can probably tap the 9V battery for power to the QuickStart board).


  7. IIRC

     

    Sunshine isn't super hard once you get used to the control scheme, although I think 100 percenting it is tough. I also seem to remember a couple of the "must pass" levels were tougher.

     

    Pikmin was good, although the global timer sucked. A walkthrough / hint page helps alot. Pikmin 2 was almost as good, although I seem to recall having colors wiped out by accident.

     

    Mario Golf is good, but some of the courses are frustrating 'cause they are suspended in midair.


  8. Reading the Wikipedia articles on LCDs I think I finally understand the "inverting" statement. The LCD crystals react to voltage differences. The rows are a film on the top of the LCD and the columns a film on the bottom. A voltage difference between the two turns on the LCD. So to turn a pixel on the appropriate row is high and the column is low - or vice versa. What this is saying is it's important to reverse which is high periodically (e.g. 35Hz).

     

    Now that I understand this better, I'll have to think about how to code this inverting into the driver.


  9. The FAQ has some info, but it's not 100% clear.

     

    The LCD driver chip is a 40 pin chip located in the Microvision base unit. The lines are Pwr, Gnd, 32 outputs to the LCD, 4 inputs from the microcomputer, strobe input and latch input. The LCD driver chip is very primitive. Screen contents must be latched 4 bits at a time, with a total of 8 packets making up one screen. After all 8 packets have been latched, they must be strobed in to complete one multiplex.

    This matches my understanding of how the LCD controller works from the MESS code. 32 bits in, 4 bits at a time.

     

     

    Up to 12 multiplex levels are possible; multiple levels are needed for moving objects to ensure adequate rise time. The trails left by moving objects were the result of the fact that falls times were much longer than rise times.

    I get that the LCD pixels slowly turn off. The game can change a pixel to black via the controller, but there's no way (other than time) for the game to change the pixel to "white". But the multiplex levels confuse me somewhat. Does this mean that it requires multiple refreshes to change a pixel to black? Or how black the pixel is depends on how long the voltage is applied?

     

    Finally, the voltage on the LCD must be inverted by turning the latch on, then toggling the strobe, and finally the shutting the latch off. The voltage must be inverted roughly 35 times per second, or the LCD glass will be etched with electrons.

    This part confuses me. The MESS code has the output "strobe" as a latch high, strobe low to latch high, strobe high transition. But this "voltage/LCD must be inverted" is confusing. Maybe it's a bad translation. Using "refreshed" rather than "inverted" makes more sense. The "etched with electrons" worries me somewhat. I don't think there's any way to damage an LCD. Again, maybe this is just referencing the normal decay.

     

    Internally, the 9V input voltage is dropped to 5V (reducable by the contrast knob to 3V). A square would turn on when 5V was applied, and off when below 1.67V was applied. To turn on a square, both the row and column would have to be on. So during the first refresh, the rows would be 1.67V - off and 5V - on, and the columns 3.3V - off and 0V - on. Voltages would be reserved during the next frame refresh. - R. J. Hoffberg

    The MESS code says that both the row and column bits have to be on for the pixel to be changed to black, so these statements make some sense.

     

    Net result - clarification is still required to better understand how the LCD & LCD controller works. Is it possible to generate grey by only setting a pixel every other refresh cycle? Are there requirements to invert the pixels beyond the row & column = 1 = black? A 35Hz refresh would require a 5kHz "clock", what's the upper limit? (I need to cycle count my driver to see how fast it is.)


  10. Actually, film to TV telecine is better with NTSC as it's a simple 3:2 pulldown (show frame 1 for 3 fields, then frame 2 for 2 fields, repeat with minor adjustment every 1000 fields). For PAL there are two options - a simple 1 frame to 2 fields conversion but then everything runs 4% fast (and pitch goes up) or every 12th frame has 3 fields rather than 2 (which makes the film jerky).


  11. Yes, better vertical resolution at the cost of reduced frame rate. Horizontal resolution is debatable. IIRC DVD samples both at 13.5MHz and stores the same number of pixels per line (720, which includes some overscan) for both PAL & NTSC. I suspect the 635 & 688 numbers are scaled to keep the picture "square" and aren't the actual width (as stored on the disc).


  12. I've looked at the MESS code and have a better idea of how the LCD controller works. It's basically a double 32 bit latch. CTRL5 latches the data, either from the 4 bit input (CTRL0-3) to the first 32 bit latch (auto incrementing the index) or from the first 32 bit latch to the output drivers. A high value on the row & column makes the pixel dark, which then decays to light over time. So there's no way to generate grey, or even a fast flicker. Should be able to do a slow strobe. CTRL4 controls which latch occurs.

     

    Unfortunately, the MESS code doesn't indicate the input voltage level (would +3.3V be enough, or will you need a driver to boost the voltage) and the maximum "clock" rate (how fast can you change CTRL5), although you're somewhat limited by the decay rate.


  13. I'm sorry if I am confusing you.

     

    The Microvision cartridge is two main parts - the plastic case and the circuit board (which holds the TMS1000 CPU). To make a new Microvision game you need to replace the circuit board with a brand new one holding the microcontroller and any support chips & components. This is how 2600 homebrews are often made. You open a donor cart and drop in a new circuit board.

     

    The new circuit board would be the same size & shape as the Microvision circuit board with the same edge connector, which is the interface to the LCD controller and other stuff in the Microvision main unit.

     

    Yes, this does mean that you will have to learn enough about electronics and circuit design to understand something like http://atarihq.com/danb/files/Microvision/PinballCart.pdf so you can put all of the necessary pieces in place to replace the TMS1100 with your microcontroller of choice.


  14. See the pictures on http://atarihq.com/danb/MicrovisionCarts.shtml

     

    The Microvision cartridge is kinda like a 2600 cartridge. There's the PCB which holds the chips and other components, and the plastic shell (which on the Microvision also has the screen and keypad overlays). You need to replace the PCB with a brand new one holding the microcontroller and any other chips & components.

     

    The bottom of the cartridge PCB is an edge connector which completes the circuit with the LCD controller, keypad, dial, speaker & battery. (See the pinout on http://atarihq.com/danb/Microvision.shtml#cartconnector )

     

    I'll see if I can dig at the MESS code and see if it has any hints on the LCD controller.


  15. Frogger would be an interesting port. Have you done up sketches of what it would look like as 16x16x1ish graphics?

     

    Note: since the microcontroller drives the speaker directly, you aren't restricted to simple beeps. Music, digitized sound effects, and even speech are possible (although you might need some off-chip storage). Or you could use a separate chip even.

     

    Hmm... I wonder what Skeleton would look like in 16x16...


  16. There is (currently) only one Propeller chip (P8X32A), however there are a bunch of different PCBs and 3 different chip packages (DIP, QFP & QFN). Although it's possible to start with a bare Propeller, you typically want to include some support chips like a serial eeprom (the Propeller has no on-board non-volatile storage), a clock crystal (typically a 5MHz crystal which the Propeller multiplies to 80MHz), a +3.3V voltage regulator, a USB to serial converter & USB jack and some decoupling capacitors. The pre-made PCBs typically have all of these (sometimes more, depending upon their intended use).

     

    Also, you're not going to be able to simply drop-in a microcontroller (Propeller or otherwise) onto an existing Microvision cartridge. You will need to create a similarly shaped PCB which will fit into the Microvision cartridge shell.

     

    As a starting point I'd recommend the QuickStart PCB. It's relatively inexpensive, includes some basic I/O (LEDs and touch buttons) along with the standard support chips and it's available at Radio Shack.

×
×
  • Create New...