Jump to content

Richard42

Members
  • Posts

    22
  • Joined

  • Last visited

Everything posted by Richard42

  1. The overclocking will not help with any legacy Vectrex software, and in fact the doubled clock speed will most likely cause problems and be incompatible with any current software. My current thinking with this feature is that I will need to make the clock speed selectable in software, and only use the overclocked mode for new software that I will write. Someday I plan to write a 3D space shooter game similar to Wing Commander for the vectrex.
  2. I would also like to be on your pre-order list for one of these joysticks, with the 1-2-3-4 layout. Richard
  3. Oh that's brilliant, I didn't know that anyone had created a repro PCB. I was going to swap out the RAM, ROM, PIA, and CPU with faster versions anyway so I could overclock it. I think I have all the chips for overclocking it already. Do you by any chance have a digi-key BOM that you can share with me?
  4. It's LM379, IC401. I've been trying to buy a parts/repair vectrex on ebay to build it into a full-sized arcade vectrex cabinet. I lost the last 2 auctions as the second place bidder, darnit. And I just bought an Asteroids Deluxe to use as the cabinet and display, so now I'm really on the hunt for another vectrex logic board.
  5. It's not a super hard thing to fix. It looks like the vertical deflection amplifier is dead. Taking the thing apart and putting it back together is almost more more than fixing it.
  6. This thing is working great with the repaired flyback transformer. I've had it at my office all week and it's been running perfectly for many hours of play time.
  7. That is awesome.. Do you own the prototype, or is that a picture that you found on the web?
  8. I understand your concern. I actually don't have a whole lot of experience working on CRTs. I've repaired 2 commodore 1084s, and this is my 2nd vectrex. I was pretty cautious about it as well, but after the work I've done with these 2 vectrex units I'm much more confident in working on CRTs. I've never known technicians to wear gloves while working on CRTs but it's not a bad idea. It won't protect you from the extremely high voltage of the screen anode but it will protect you from the moderately high ones on the PCB. You still have to be careful because you could poke through the gloves with the sharp points on the solder joints, but it's another layer of protection. Smaller monitors are less dangerous than bigger ones, so the Vectrex is a great one to start with. Inside the vectrex, the screen anode, which is the thick wire that goes to the top of the tube and is covered with a big suction-cup like thing, is about 5,800 volts. Because of the design of this circuit, it can hold charge for a long time, and is the most dangerous part inside. But with the right tools, it's easy and safe to discharge. All you need is that HV probe that I linked in the first post, and a Digital Voltage Meter. The probe has a special tip which is a thin metal strip, designed to slide under that rubber suction cup. You just connect this probe to your DVM, set it to read volts, and slide this under the cap to touch the wire. You'll hear the current arcing to the probe as it gets close, and it will discharge through the DVM. You can watch the voltage drop to 0 over a few seconds. Then you're safe. Note that this 5.8kv signal is not present anywhere on the PCB; it's only inside of the flyback transformer, the thick wire, and inside the CRT screen. If you don't want to spend the $75 for the HV probe, you can do it for cheap and still be safe. Make your own HV probe with a wooden dowel, a strip of spring steel, and a thick wire. You can also discharge it with screwdrivers, and I've done this once or twice, but it's really dicey and I wouldn't recommend doing it this way. Take the time or $$ and get the right tool for the job. I watched this one youtube video with a guy who was trying to discharge a CRT this way and he was freaking himself out and looked pretty pathetic and unprofessional. There are also some medium-high voltage levels which are produced by the flyback transformer and are present on the PCB. These are +150v, +50v, and -30v. The +150v is connected to ground through a resistor on the little PCB on the CRT neck, so it will naturally dissipate to 0v over a few seconds after you turn off the CRT. The other two are connected to each other through resistors and will also dissipate to a low voltage level after a few seconds. So just take some basic precautions, get that HV probe and treat the CRT anode with respect, and you'll be perfectly safe. I haven't come across any websites with CRT monitor repair tips, but there are some videos on youtube. To tell you the truth, there aren't many people doing CRT maintenance any more. Probably one of the biggest communities out there still working on these is the people who restore and maintain arcade machines. I'm thinking about buying an asteroids unit with a 19" monitor, and transplanting a dead vectrex into it. I love the way asteroids looks on the original vector displays.
  9. I recently acquired a malfunctioning vectrex unit (sound worked but no picture) and quickly discovered that the flyback transformer was dead. I went through a lot of trouble looking for a suitable replacement and came up empty handed. I have the impression that this was a very custom part, only used in the vectrex and probably not any other TV, and there are no modern replacements available. During testing I found that the primary winding of the flyback was open (no connection). All of the secondaries seemed to be fine. I came up with the idea to wind a new primary coil, after seeing how DIY experimenters made high-voltage arc generators by winding new primaries onto random flyback transformers from TVs. After a lot of trial and error, I was able to get this working and bring the game console back from the dead. I hope to inspire other people out there to rescue their Vectrex units with this write-up. Here are the steps that I took to do the final winding, which seems to work almost as well as the original. There are probably lots of different ways that this could be made to work, but this is what I did: Desolder and remove the tin shield around the flyback transformer. I used a memotronics ZD-985 vacuum desoldering station. There is a lot of solder and it would be difficult without a vacuum tool. Be careful not to destroy this shield because you will need to replace it. Desolder and remove the original flyback transformer. Discharge the HV lead going to the CRT (you can use the high voltage probe linked below) before removing it, so you don't get shocked. If your transformer was dead like mine, there won't be any charge there anyway, but take appropriate care. I noticed a lot of corrosion from some evil glue that they used to lock the transformer together, so I removed the steel spring clip, scraped off all of the hardened glue on the ferrite core and spring with a utility knife, and put it back together. This may not really be necessary. You're going to wrap a new primary coil around the empty half of the transformer's frame. But to prevent the wire from rubbing and conducting with the frame, you should put a layer of electrical tape around it first. The inside of the frame is almost exactly an inch tall. This will require two strips of tape, each just a bit longer than necessary to wrap around the core and spring. Take some 26 gauge magnet wire, with enamel insulation. Cut a piece that's 3 feet 6 inches long. Scrape off about 1/2 inch to 3/4 inch of insulation on the end of the wire, and wrap it around pin 6. Push the wrapped magnet wire down on the transformer post so that it's below the level of the plastic housing, and solder it there. Pull the wire straight out to the opposite side of the core frame, and bend it up to go along the outside of the empty transformer frame. Glue it to the outside bottom of the tape-covered frame (I used gorilla glue) and let the glue set for half a day. You will now make the winding. You need 22 turns in total. I wound 12 turns up towards the top of the transformer, and then 10 more (crossing over the previous turns) back down to the bottom. You must wind this in the correct direction. As you start, if you view the winding from the top of the transformer looking down, they will be going in a clockwise direction. If you hold the transformer so that the fat part (all the old windings) are away from you, and the empty part of the frame is towards you, with the bottom of the transformer to the left, then the wire will go down in between the frame and the plastic housing. Pull it all the way through, then towards you and up around the frame, then through the middle again and down. Keep it tight as you wind it. With each turn, pull down to create some tension and hold the windings tightly against the frame with your finger on the hand that's holding the transformer, then start the next loop. Don't pull so hard that you break the wire, but try to keep everything tight. You'll make 12 windings on the way up and 10 on the way down. Always wind in the same direction (clockwise as viewed from the top). At the end, put the transformer in a vice and weigh down the hanging wire to keep the windings tight, and put some glue on the top and bottom parts of the winding to hold everything in place. Let the glue set. Bend the small piece of hanging wire at a right angle to go along the bottom of the transformer to pin 7. Cut the wire so it's about 1/2 to 3/4 of an inch longer than needed to reach the pin. Strip off the insulation on the end and wind it around pin 7. Push the wound wire down so that it's below the level of the plastic transformer housing, and solder it there. Re-install the transformer in the vectrex, solder pins 1-7 (pin 8 is unused), and test. Put another layer of electrical tape over the new winding, so that the tin shield doesn't rub off the enamel insulation. If you really want to do it right, you should use an oscilloscope and a voltage meter with a high-voltage probe (like this: https://www.amazon.com/gp/product/B004PA02Q8) to correctly set R525 and R526. But I think it's not absolutely necessary. I think it is possible to just adjust R525 until the picture is taking up the full screen. This transformer produces a huge magnetic field which is oscillating at about 20khz, and you must put the tin shield back over it. Without the shield, this signal gets into the deflection coil amplifier and makes all of the lines look wavy. The shield attenuates this signal by about a factor of 100, so it is really required. Please post a reply here if you are able to rescue another Vectrex from the garbage heap!
  10. After a lot of trial and error, I was able to repair the flyback transformer in my Vectrex. I wrote up a description of how to do it, I hope this can help someone else: http://atariage.com/forums/topic/283376-vectrex-flyback-transformer-repair-new-primary-winding/
  11. I recently acquired a malfunctioning vectrex unit (sound worked but no picture) and quickly discovered that the flyback transformer was dead. I went through a lot of trouble looking for a suitable replacement and came up empty handed. I have the impression that this was a very custom part, only used in the vectrex and probably not any other TV, and there are no modern replacements available. During testing I found that the primary winding of the flyback was open (no connection). All of the secondaries seemed to be fine. I came up with the idea to wind a new primary coil, after seeing how DIY experimenters made high-voltage arc generators by winding a new primaries onto random flyback transformers from TVs. After a lot of trial and error, I was able to get this working and bring the game console back from the dead. I hope to inspire other people out there to rescue their Vectrex units with this write-up. Here are the steps that I took to do the final winding, which seems to work almost as well as the original. There are probably lots of different ways that this could be made to work, but this is what I did: Desolder and remove the tin shield around the flyback transformer. I used a memotronics ZD-985 vacuum desoldering station. There is a lot of solder and it would be difficult without a vacuum tool. Be careful not to destroy this shield because you will need to replace it. Desolder and remove the original flyback transformer. Discharge the HV lead going to the CRT (you can use the high voltage probe linked below) before removing it, so you don't get shocked. If your transformer was dead like mine, there won't be any charge there anyway, but take appropriate care. I noticed a lot of corrosion from some evil glue that they used to lock the transformer together, so I removed the steel spring clip, scraped off all of the hardened glue on the ferrite core and spring with a utility knife, and put it back together. This may not really be necessary. You're going to wrap a new primary coil around the empty half of the transformer's frame. But to prevent the wire from rubbing and conducting with the frame, you should put a layer of electrical tape around it first. The inside of the frame is almost exactly an inch long. This will require two strips of tape, each just a bit longer than necessary to wrap around the core and spring. Take some 26 gauge magnet wire, with enamel insulation. Cut a piece that's 3 feet 6 inches long. Scrape off about 1/2 inch to 3/4 inch of insulation on the end of the wire, and wrap it around pin 6. Push the wrapped magnet wire down on the transformer post so that it's below the level of the plastic housing, and solder it there. Pull the wire straight out to the opposite side of the core frame, and bend it up to go along the outside of the empty transformer frame. Glue it to the outside bottom of the tape-covered frame (I used gorilla glue) and let the glue set for half a day. You will now make the winding. You need 22 turns in total. I wound 12 turns up towards the top of the transformer, and then 10 more (crossing over the previous turns) back down to the bottom. You must wind this in the correct direction. As you start, if you view the winding from the top of the transformer looking down, they will be going in a clockwise direction. If you hold the transformer so that the fat part (all the old windings) are away from you, and the empty part of the frame is towards you, with the bottom of the transformer to the left, then the wire will go down in between the frame and the plastic housing. Pull it all the way through, then towards you and up around the frame, then through the middle again and down. Keep it tight as you wind it. With each turn, pull down to create some tension and hold the windings tightly against the frame with your finger on the hand that's holding the transformer, then start the next loop. Don't pull so hard that you break the wire, but try to keep everything tight. You'll make 12 windings on the way up and 10 on the way down. Always wind in the same direction (clockwise as viewed from the top). At the end, put the transformer in a vice and weigh down the hanging wire to keep the windings tight, and put some glue on the top and bottom parts of the winding to hold everything in place. Let the glue set. Bend the small piece of hanging wire at a right angle to go along the bottom of the transformer to pin 7. Cut the wire so it's about 1/2 to 3/4 of an inch longer than needed to reach the pin. Strip off the insulation on the end and wind it around pin 7. Push the wound wire down so that it's below the level of the plastic transformer housing, and solder it there. Re-install the transformer in the vectrex, solder pins 1-7 (pin 8 is unused), and test. Put another layer of electrical tape over the new winding, so that the tin shield doesn't rub off the enamel insulation. If you really want to do it right, you should use an oscilloscope and a voltage meter with a high-voltage probe (like this: https://www.amazon.com/gp/product/B004PA02Q8) to correctly set R525 and R526. But I think it's not absolutely necessary. I think it is possible to just adjust R525 until the picture is taking up the full screen. This transformer produces a huge magnetic field which is oscillating at about 20khz, and you must put the tin shield back over it. Without the shield, this signal gets into the deflection coil amplifier and makes all of the lines look wavy. The shield attenuates this signal by about a factor of 100, so it is really required. Please post a reply here if you are able to rescue another Vectrex from the garbage heap!
  12. I'm also looking to purchase a vectrex flyback transformer. It's marked with "KW04001G", and the part # in the service guide is 2T1410. I wonder if these things were used in any other small TV's in the early 80s. I was able to find a replacement flyback transformer for a commodore 1084S monitor a few years ago, but that same tube and transformer were used in a bunch of different computer monitors. I'm afraid this vectrex thing might be too specialized for anyone to still be making them or selling NOS.
  13. Just to throw some more information out there. I just replaced a power switch in my main colecovision with a new DPDT switch from Digi-key, and I found one which works very well in the coleco. The DigiKey part # is JWMW22RCA-ND. It fits perfectly in the rectangular hole in the top half of the case; there is no need for any cutting. And it looks great. The only other thing I would recommend getting are 4 narrow female spade lug connectors. You can crimp or solder these onto the wires that you'll solder into the coleco PCB, and press them into the solder tabs on the switch before pressing it into place on the case. Then if you need to disassemble the coleco in the future you can just pull them off of the switch.
  14. Yes, this is a very common problem. Ray Carlsen has a page about it: http://personalpages.tds.net/~rcarlsen/cbm/msd/REPAIRS/MSD.txt I just replaced all the caps on a defective MSD SD-2 which was given to me, and brought it back to life. The logic board on one of the 2 drives had PCB damage, and multiple ICs were damaged (replace them if the pins are corroded, because the electrolyte will seep into the chip and destroy bonding wires). The capacitors had leaked on all 4 of the PCBs on the 2 drive units. I didn't know that the Tandy FD-501 also used the same TEC FB-501 disks. Now I'm going to have to open all of them, and I have a bunch.
  15. Please add me to the pre-order list for a cartridge as well. Always loved Xevious.
  16. Hello everyone, I am proud to announce the completion and release of DynoSprite Demo 2, which shows off the game engine that I've been working on for the past year and a half. This is the final demo that I intend to release, as the engine is now at a stage of completion where it could be reasonably used for an entire game as it is. My plan for the near future is to start working on a game with this engine. Before I get into the details, here is a link to download the demo: http://www.fascinationsoftware.com/media/DynospriteDemo2.zip My initial motivation for writing this engine was to build something for myself and for the community that could assist in the creation of very high quality games for the Coco. I know that many of us in the Coco community share a feeling that our favorite 8-bit computer platform is capable of much more than most people thought back in the day, and many of the games which were available were somewhat lackluster and didn't use the machine to its fullest potential. There have been a few really magnificent releases for the Coco which have shown what is really possible, but not very many. Honestly, it's because the hardware design makes it extremely difficult to use it to the fullest potential. But I hope that DynoSprite can change that and inspire at least a few other developers to make awesome homebrew games in the future for the CoCo 3. By using the DynoSprite engine, a game developer can spend his or her time on the interesting parts of game development, like the art, physics, and gameplay, instead of fighting to get every last drop of performance out of the hardware. From a technical standpoint, I wanted to try and use the Coco's strength (lots of memory with 512k upgrade) in order to make up for its weakness (no dedicated sound/sprite hardware). To that end, I wrote a 'sprite compiler' in Python, which parses text files containing sprite color maps, and uses some complicated algorithms to generate near-optimal 6x09 assembly language code for drawing and erasing the sprites on the screen, pixel by pixel, byte by byte, word by word. I'm pretty sure that there's no way to do faster general-purpose sprites than what DynoSprite does, and it's done automatically. The final assembled sprite code does take up more memory than normal sprite data would (about 4-5 bytes/pixel for DynoSprite vs. 2 bytes per pixel for a traditional sprite engine), but it's worth spending the memory to get all the sprite performance that we can. The playable part of this demo is not intended to be an artistic 'tour de force'. The demo is intended to be a simple thing to showcase the DynoSprite engine, which abstracts the game code from the core of the engine. DynoSprite is designed to be general purpose and could easily be used for many different types of games. For the demo which I am releasing today, the DynoSprite engine is about 9400 lines of assembly code (plus a sophisticated build system with about 3600 lines of Python code), while the game-specific part of the demo (background tilemap generation, screen update, and ball physics) is only about 1200 lines of 6809 assembly. In this demo, there are only 5 different background tiles (colored pyramids and black) which are mapped into tetris-like pieces placed in random positions on the background tilemap during level initialization. But the engine will allow each level to have up to 255 different tiles which can be used in a background map that can be up to 2000 tiles wide (100 horizontal screens) by 68 tiles high (5 vertical screens). The engine isn't suitable for every type of game. I made design decisions which open some doors but close others. It is useful for quite a few different game styles though. Some of the potential ideas which I think map very well to DynoSprite's capabilities are: - Side-scrolling: R-Type, Silkworm, Super Cobra - Platforming: Super Marios Bros, Wonder Boy, Pitfall 2, Mega Man - Top-scrolling: Ikari Warriors, Heavy Barrel, Alien Syndrome, Time Pilot - Beat-em-up: Double Dragon (this ran on 6809s), Final Fight - Top-down racing: Micro Machines, Super Sprint, 1000 Miles Rally - Isometric games: Marble Madness, Zaxxon The core engine only takes up 2 pages (16kb) of code and data, but there are a lot of features. The 320x200 16-color graphics mode is used. The background graphics are tilemapped with 16x16 tiles. Vertical and horizontal scrolling are supported, with a starting position granularity of 1 row vertical and 2 pixels (1 byte) horizontal. Every new frame can be positioned within +/- 8 rows vertically and +/- 8 pixels horizontally of the last frame. The amount of CPU time required to scroll each new frame is roughly proportional to the distance of the scroll, and it's fast. Scrolling +/- 4 pixels either vertical or horizontal takes less than 7.7 milliseconds on a 6809. I also spent a lot of time optimizing the most CPU-intensive parts of the code for the Hitachi 6309 processor. The compiled sprite code is different for the 6309, as well as many of the core engine routines. So there are separate disk images for the 6809 ond 6309 version of the demo. The difference is noticable when playing the demo: the sprite routines are about 20% faster, and the scrolling routines are about 25% faster. The 6309 version stays at 60fps unless you're scrolling full speed both horizontally and vertically. DynoSprite has been tested and validated on many different Coco variants, including on a real Coco 3 with RSDOS and a floppy drive, a CocoNET MicroSD cartridge, a Coco SDC adapter, HDB-DOS with DriveWire loading over the serial port, and with the Vcc and MESS emulators. All of the game assets are automatically processed, built, packaged, and compressed with the DynoSprite build system. With the exception of audio waveforms, all of the game assets are divided into groups, and only the asset groups which are needed for a particular level are loaded for that level. This should allow for large games. All of the game loading logic and memory management code is built into DynoSprite. There is a virtual memory manager which automatically relocates memory pages when the graphics aperature crosses over them. The data compression algorithm used is DEFLATE, which is the same algorithm used by PKZIP and GZIP. In fact, the build system uses GZIP by default because it is much faster than my Python implementation of a compressor. This should get a compression ratio between 2:1 and 3:1 for most game assets. The maximum sprite size is 62x32. Sprites can be positioned anywhere on the screen with single-pixel precision. They can overlap with the left, right, or bottom sides of the screen. DynoSprite also uses a variable frame-rate mechanism which allows the game to maintain the same feeling of speed even when the frame rendering time exceeds one 60hz field time. The frame rate can drop down to 30hz or 20hz and the game video will just get choppier instead of feeling like it's bogging down. This is a mechanism which must be supported by the game code in order to work. All of the game code and assets are separated from the core engine code, and there is an object-oriented design to the interface between the game and the engine. This simplifies the game development effort. DynoSprite has built-in support for keyboard and joystick control, RGB and Composite colors, and internal 6-bit DAC and Orchestra-90 sampled sound output. There is a splash image loader which is used for the main menu background and the small splash images shown in the level loading screen. There are also some "fade in / fade out" routines for applying smooth transitions in-between the various screens. So that's pretty much it. I've spent many many hours working on this and I'm very glad to finally be able to release this demo to you. I hope you all enjoy it, and that this software can be helpful in creating some incredible Coco games. I have also written some documentation for the DynoSprite engine and released the source code under a BSD license. You can get it from my github page: https://github.com/richard42/dynosprite Regards, Richard
  17. Thanks for your replies; this answered my question. I'll use an emulator and skunkboard to do the development but it's good to understand the authentication so that I can make a properly signed cart when it's done. I also found last night that the private encryption keys for cart and CD were leaked in about 2004, in the jagenc2.zip archive. Has anyone ever published a disassembly or memory map of the encryption header?
  18. Hello all, I just wanted to post here and note some useful things that I learned in the last few days, since I had searched quite a bit for this information online and didn't find it. Hopefully it will be useful for someone else in the future who gets sent here by a search engine. I am a software engineer and long time vintage game and computer collector, and I recently started building a Jaguar collection. The availability of documentation and tools for homebrew gave me the idea to write a game for the Jag. I'm at a very busy point in my life so it might not get done for a few years but I thought I would at least get the hardware to make it happen now in case these things get more rare in the future. I got a skunkboard off of ebay and a bunch of parts to make 20 cartridges (I hope to sell the game). My EPROM burner is a GQ-3x from mcumall with the ADP-054 adapter to be able to burn the 27C160 42-pin rom. I have a bunch of ROM images from many years ago when I tried to get Virtual Jaguar working on my Linux PC (I think the old version that I have isn't really playable with any of them). I thought I should get my feet wet (and make sure the eproms I got from China worked) by burning a ROM image. The rom images that I have end with a .jag extension. A lot of the homebrew images are odd sizes (not powers of two), but the commercial game images are 1MB, 2MB, or 4MB. The major problem here is to figure out how to split/pad/etc the rom images into two binary 2MB files suitable for EPROM burning. Through trial and error, I figured out that these .JAG files consist of a series of 32-bit values in little-endian byte order. This is surprising, because I can see by using the Unix 'strings' program that the text messages embedded in the rom images are not byte-swapped. The letters in the messages appear in normal order. So that means it must be common to store strings in a little-endian format in data areas in Jaguar programs. I wrote a program (attached) to split a single 32-bit .JAG ROM image into 2 separate 16-bit binary eprom images suitable for burning. Since the data are stored in little-endian format in the image file, the low 16-bit EPROM binary comes from the first 2 bytes of each 4-byte group, and the high EPROM binary comes from the second 2 bytes of each 4-byte group. My eprom burning software expects the data for a 16-bit EPROM image to be in big-endian order, so I also swap each byte pair before writing out the EPROM binary. The Jaguar cartridge interface is 32-bits wide. In order to figure out which EPROM chip on the cartridge supplies with the high 16-bits and which one supplies the low 16-bits, I looked at the traces on a cartridge PCB and read the documentation on this web page: http://www.mdgames.de/jag_pcbs.htm The low bits D15-D0 are wired up to the top chip (farthest away from the edge connector), while the high bits D31-D16 are wired up to the bottom chip (closest to the edge connector). One thing that I do not yet know is how to generate the images for <4MB ROMs such that they pass the authentication check. Does the extra space on the 16-megabit EPROM need to be padded with 0xFFFF, or 0, or duplicate images of the ROM? Does anyone know? romsplit.zip
×
×
  • Create New...