Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
boards:ecb:scg:start [2017/10/10 16:09] wwarthen [Introduction] |
boards:ecb:scg:start [2021/11/29 08:45] (current) b1ackmai1er |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== ECB Sprite Color Graphics ====== | + | < |
- | <font 20px/ | + | The Sprite Color Graphics (SCG) board provides Sprite and Color Graphics from the TMS9918 |
{{: | {{: | ||
- | |||
- | |||
- | ===== Introduction ===== | ||
- | |||
- | The Sprite Color Graphics (SCG) board is meant to provide Sprite and Color Graphics from the TMS9918 Video Display Processor and Sound from the AY-3-8910 audio chip. It is meant as a supplemental display for games and multimedia presentation. The board supports joystick and paddles. | ||
- | |||
===== Hardware Documentation ===== | ===== Hardware Documentation ===== | ||
- | Current Version: "002" | + | Current Version: "003". |
- | {{: | + | {{: |
- | {{: | + | {{: |
- | Manufacturing Files: | + | Please see [[:boards:ecb: |
- | {{: | + | ===== Acknowledgments ===== |
- | For information on prior board versions, see the [[https:// | + | The ECB-SCG was developed by Tom LeMense and Dan Werner. |
===== Build Information ===== | ===== Build Information ===== | ||
Line 33: | Line 27: | ||
{{: | {{: | ||
- | ==== Board Construction ==== | + | The TMS9918 is an NTSC format chip. A PAL version of this chip is available (TMS9928A) but it is not totally compatible per the following from the datasheet. |
- | * Earlier runs of this board required a patch for sound to work. This patch is documented in the [[https:// | + | "The TMS9928A/ |
- | * Install **either** Q3 **or** P2, but not both. These are mutually exclusive options | + | |
- | * Crystal X2 **must** be parallel resonant. | + | |
- | * The TMS9918 | + | |
- | * Joystick interface is digital. | + | |
- | ==== Errata | + | So maybe that is something for the next iteration… |
+ | |||
+ | From Adam Dewis: "It turns out 9128/9118s and such designed with 4-Bit DRAM have bidirectional data pins instead of the multiplexed address/ | ||
+ | |||
+ | A 2Mhz crystal is specified for the sound chip clock but on board dividers can be configured to use a higher frequency crystal. Also common serial and colour burst frequency crystals can be used depending on your need for frequency accuracy and compatibility. | ||
+ | |||
+ | Low cost LM386 based amplifier boards can be use to finalize the sound output and can be found very cheaply on alibaba.com. | ||
+ | |||
+ | Capacitors C7 and C45 are not critical values and 33uF or 47uF should work as well. | ||
+ | |||
+ | ==== Board Construction | ||
- | * Per John Coffman, the I/O select | + | * Install **either** |
+ | * Crystal X2 **must** | ||
+ | * The TMS9918 video controller is sensitive to CPU clock speeds. In general, I have found all software posted here to function well at 4MHz. Higher CPU speeds may or may not work. It is normal for the TMS9918 chip to run quite hot. | ||
+ | * Joystick interface is digital. The up, down, left, right, and button switches should be normally open and shorted to ground to activate. An Atari 2600 joystick can be readily adapted. PC-style game controllers use potentiometers for up/down and left/right and are therefore **not** | ||
==== Board Configuration ==== | ==== Board Configuration ==== | ||
- | < | + | < |
**J20: Board ID / Base I/O Address** | **J20: Board ID / Base I/O Address** | ||
+ | < | ||
- | | + | |
- | * 3-4: | + | * 3-4: |
- | * 5-6: | + | * 5-6: |
- | 7-8: | + | 7-8: |
- | 9-10: 0x08 | + | 9-10: 0x08 |
- | The base i/o address is determined by shorting the pins listed above such that the additive value of the **unshorted** pins is equal to the desired address. | + | </ |
+ | |||
+ | The base i/o address is determined by shorting the pins listed above such that the additive value of the **unshorted** | ||
**J5: Sound Config** | **J5: Sound Config** | ||
- | | + | < |
- | 3-4: Third sound channel mixed " | + | |
+ | 3-4: All channels merged onto channel | ||
- | You may leave all pins disconnected and the third sound channel will not be output. | + | </ |
- | 5-7: Audio Oscillator / 8 | + | The sound chip drives a total of three audio channels (A-C). The center channel (B) is hard-wired to mix it's output into channels A & C (left & right). If you want to bridge all three channels to produce monophonic output, you can short pins 1-2 and/or 3-4. |
- | 7-9: Audio Oscillator | + | |
- | * 6-8: Audio Oscillator | + | |
- | 8-10: Audio Oscillator / 4 | + | |
- | You **must** short one (and only one) set of pins above. | + | < |
+ | 6-8: Audio Oscillator / 1 | ||
+ | * 5-7: Audio Oscillator / 2 | ||
+ | 8-10: Audio Oscillator / 4 | ||
+ | 7-9: Audio Oscillator / 8 | ||
+ | |||
+ | (Corrected 29/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | You **must** | ||
**JP1: TEST2 Enable** | **JP1: TEST2 Enable** | ||
- | Shorting 1-2 will ground the TEST2 pin of the sound controller, otherwise the pin will be disconnected. | + | Shorting 1-2 will ground the TEST2 pin of the sound controller, otherwise the pin will be disconnected. |
**J21: Interrupt Enable** | **J21: Interrupt Enable** | ||
- | Shorting J21 will enable vertical blanking interrupts to the /INT line of the host CPU. You would generally leave this jumper open unless the software being used needs it. Note that the MSX software **requires** this jumper to be shorted. | + | Shorting J21 will enable vertical blanking interrupts to the /INT line of the host CPU. You would generally leave this jumper open unless the software being used needs it. Note that the MSX software **requires** |
**J1: Video Output** | **J1: Video Output** | ||
- | | + | < |
- | 2: External VDP Input Sync Input | + | |
- | 3: Color Burst Freq Clock Output | + | 2: External VDP Input Sync Input |
- | 4: / | + | 3: Color Burst Freq Clock Output |
- | 5: Composite Video Output | + | 4: / |
- | 6: +5V | + | 5: Composite Video Output |
- | 7: Ground | + | 6: +5V |
- | 8: Composite Video Output (amplified) | + | 7: Ground |
- | 9: Ground | + | 8: Composite Video Output (amplified) |
- | 10: Composite Video Output (amplified) | + | 9: Ground |
+ | 10: Composite Video Output (amplified) | ||
+ | |||
+ | </ | ||
**J18: Joystick A** | **J18: Joystick A** | ||
- | | + | < |
- | 2: Button 1 | + | |
- | 3: Down | + | 2: Button 1 |
- | 4: +5V | + | 3: Down |
- | 5: Left | + | 4: +5V |
- | 6: Ground | + | 5: Left |
- | 7: Right | + | 6: Ground |
- | 8: Botton 3 | + | 7: Right |
- | 9: Button 2 | + | 8: Botton 3 |
- | 10: +5V | + | 9: Button 2 |
+ | 10: +5V | ||
+ | |||
+ | </ | ||
**J19: Joystick B** | **J19: Joystick B** | ||
- | | + | < |
- | 2: Button 1 | + | |
- | 3: Down | + | 2: Button 1 |
- | 4: +5V | + | 3: Down |
- | 5: Left | + | 4: +5V |
- | 6: Ground | + | 5: Left |
- | 7: Right | + | 6: Ground |
- | 8: Botton 3 | + | 7: Right |
- | 9: Button 2 | + | 8: Botton 3 |
- | 10: +5V | + | 9: Button 2 |
+ | 10: +5V | ||
+ | |||
+ | </ | ||
**P1: Video Output (RCA)** | **P1: Video Output (RCA)** | ||
- | | + | |
- | 2: Ground | + | < |
- | + | | |
+ | 2: Ground | ||
+ | |||
+ | </ | ||
**J9: Audio Output** | **J9: Audio Output** | ||
- | | + | < |
- | 2: +5V | + | |
- | 3: Right Channel Audio | + | 2: +5V |
- | 4: No Connect | + | 3: Right Channel Audio |
- | 5: Ground | + | 4: No Connect |
- | 6: No Connect | + | 5: Ground |
- | 7: Ground | + | 6: No Connect |
- | 8: ACR5 General Purpose TTL Output | + | 7: Ground |
- | 9: Left Channel Audio | + | 8: ACR5 General Purpose TTL Output |
- | 10: Ground | + | 9: Left Channel Audio |
+ | 10: Ground | ||
+ | |||
+ | </ | ||
**RV12: Left Channel Audio Output Volume** | **RV12: Left Channel Audio Output Volume** | ||
- | **RV9: Right Channel Audio Output Volume** | + | **RV9: Right Channel Audio Output Volume**< |
- | ==== Notes on Operation ==== | + | ====== Notes on Operation |
The SCG board is not intended to be a general purpose terminal controller like the VDU, CVDU, and VGA3 boards. It does not have a keyboard interface and text output is limited to 40 characters per row. So, the typical way to use the board would be to add it to an existing system already running CP/M (RomWBW, UNA, etc.) and then run programs that utilize the graphics and sounds capabilities of the board. The MSX games and programs described below do exactly this. You start your system in normal CP/M, then run the MSX game/ | The SCG board is not intended to be a general purpose terminal controller like the VDU, CVDU, and VGA3 boards. It does not have a keyboard interface and text output is limited to 40 characters per row. So, the typical way to use the board would be to add it to an existing system already running CP/M (RomWBW, UNA, etc.) and then run programs that utilize the graphics and sounds capabilities of the board. The MSX games and programs described below do exactly this. You start your system in normal CP/M, then run the MSX game/ | ||
- | Note that RomWBW (v2.8.5 | + | RomWBW (v2.8.5+) provides |
+ | < | ||
+ | B>PIP CRT: | ||
+ | |||
+ | </ | ||
+ | |||
+ | It is not possible to read from the CRT: device because the board has no text input capability. It is **not** | ||
+ | |||
+ | ==== Test Software ==== | ||
+ | |||
+ | Two programs are available to test basic video operation of the card in the {{: | ||
+ | |||
+ | HW9918.COM will display the "HELLO WORLD" text on the screen. | ||
+ | |||
+ | TSTSPR.COM will display sprites and allow background colour changes. | ||
+ | |||
+ | Sound functionality can be tested with the {{: | ||
+ | |||
+ | AY-TEST.COM will output a descending tone to each sound channel. | ||
==== MSX Programs ==== | ==== MSX Programs ==== | ||
Line 152: | Line 200: | ||
Note that the SBCV2 with the SCG card is not 100% MSX compatible. That said, there is enough compatibility and enough flexibility built into the MSX BIOS that some cartridge ROMS will work fairly well. In the zip file there is a selection of MSX cartridge images that do work with the SBCV2 and SCG card, but please make note of the following: | Note that the SBCV2 with the SCG card is not 100% MSX compatible. That said, there is enough compatibility and enough flexibility built into the MSX BIOS that some cartridge ROMS will work fairly well. In the zip file there is a selection of MSX cartridge images that do work with the SBCV2 and SCG card, but please make note of the following: | ||
- | * The MSX computer is clocked from the TMS9918 chip and not a separate oscillator, so timing will be off and this may cause glitches and odd behavior (moon patrol is a good example) | + | * The MSX computer is clocked from the TMS9918 chip (3.579545MHz) |
* The Keyboard on the MSX is entirely different from the way the keyboard works on the SBC, and although some work has been done to make the serial keyboard functional, it does not typically work – so a joystick is almost always required | * The Keyboard on the MSX is entirely different from the way the keyboard works on the SBC, and although some work has been done to make the serial keyboard functional, it does not typically work – so a joystick is almost always required | ||
* I have not personally verified all of these images, so if one is found that is supposed to work but does not (or is not supposed to work, but does), please note that on the wiki (or better yet, fix it!!) | * I have not personally verified all of these images, so if one is found that is supposed to work but does not (or is not supposed to work, but does), please note that on the wiki (or better yet, fix it!!) | ||
* The work done on the SCG MSX CBIOS was really more of a proof of concept – so it is not really "fully baked", | * The work done on the SCG MSX CBIOS was really more of a proof of concept – so it is not really "fully baked", | ||
* Note that the Video Interrupt **MUST BE ENABLED** | * Note that the Video Interrupt **MUST BE ENABLED** | ||
- | * There is no mechanism to " | + | * There is no mechanism to " |
+ | |||
+ | ==== Sound Programs ==== | ||
+ | |||
+ | The AY-3-8910 is a widely supported sound chip and there is a large library of sound files that can be played on this board. Included in ROMWBW is a sound file player called TUNE which can play Protracker 2/3 and .MYM format PSG files and a collection of demonstration files. | ||
+ | |||
+ | See here for more : [[https:// | ||
+ | |||
+ | Download a sample Chip Tune pack here : {{: | ||
===== Photo Gallery ===== | ===== Photo Gallery ===== |