Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


matthew180 last won the day on August 13 2019

matthew180 had the most liked content!

Community Reputation

2,088 Excellent


About matthew180

  • Rank
    River Patroller

Contact / Social Media

Profile Information

  • Gender
  • Location
    Central Florida
  • Interests
    My family, FPGA, electronics, retro/vintage computers, programming, coin-op games, reading, outdoor activities.
  • Currently Playing
    Divinity2, Borderlands2, beta-testing for Realms of Antiquity (TI-99/4A CRPG).

Recent Profile Visitors

20,504 profile views
  1. So let's not hijack this thread with the (H) (D) (M) (I) topic (yes, I am allergic to the term), but here are some basic details AFAIK. Also keep in mind that the MK2 was almost ready in 2018, so literally *years* have passed and things may have changed. * Avoid any kind of use of the term, logo, etc. Meaning, do not put those four letters together anywhere or claim that kind of named output. * From what I have read, you can use the connector itself, it is not licensed. I reacted to quickly on this one, but it was for the better in the end. * TMDS (transmission minimized differential signaling) used by DVI, and the-other-one we are talking about, is free and open. * DVI has signaling compatibility, so you can produce DVI and couple it with the connector to get something that will work with pretty much all modern displays and TVs. * The big difference between DVI and 1.0 of the-other-one is the inclusion of audio data. * The patents covering the features in the 1.0 spec might be expired or expiring soon. * A license is $5000/yr for unit quantity under 10,000/yr. Over 10,000 units and the license is more ($15K IIRC) and you pay a per-unit cost of something like $0.31. * The founding companies are huge: Philips, Lattice Semi, Maxell, Panasonic, Sony, Technicolor, Toshiba. They probably don't care about hobby projects (the risk is yours, this is NOT legal advice of any kind). * V1.3a of the spec is available for free download, with an agreement to their terms. When I started the MK2, there was no legally-released free spec. Many hobbyist and open source projects go ahead and use the connectors and the name, but it is unclear how many, or if any, of them run into legal trouble. If they do, it seems the settlements are private and I found it impossible to find any definitive examples and outcomes. I also think many projects are just producing DVI signaling because it is easier, and they unknowingly avoid any possible legal trouble. Those that go the extra distance to include audio in the channel signaling don't seem to have any legal problems either, but this is where the waters muddy. At this point it seems there are so many projects out there doing this, it would probably be hard to bring any to court, but that is a risk each person doing such a project has to decide for themselves (I am NOT giving any legal advice here). The MK2 uses the connector on a separate header and DVI signaling. Making a header also means the MK2 can produce VGA with a header swap and some settings (will probably require a different bit-stream, but we'll see).
  2. @TiTom Thanks for sharing that. That is a really nice setup too, I might have to borrow that idea!
  3. The price is pretty nice, but the QFP208 is just way overkill for the 14-ish I/O you need to replace the 9918A. It is also a pretty large board with giant 0.1" headers, and it will be really tall and might not fit very well height-wise. When I first started the F18A, I never wanted to make my own PCB; I was trying to just get it done as quickly, cheaply, and with the minimum amount of effort as possible. But, not finding anything suitable, I had to make my own. To me that board you linked is an example of being overkill for a specific project, yet still lacking critical parts like the level shifters which would have to go on the main-board. Yeah, I never suspected you were going for an "all new parts" kind of board/build, and I was not really trying to suggest that. Just staying with the idea of maybe putting the F18A directly on the board, the area around where the original 9918A was would be the only SMD parts. If you wanted to get an FPGA "breakout" to go in a socket, then you are basically back to the F18A, IMO. The boards look pretty good too.
  4. I'm not sure where this perception comes from, but I don't find this to be true most of the time. The Spartan-3E, that the original F18A uses, was introduced in 2005 and is still in production. That is 16 years old. In 2005 the 99/4A was only about 23 years old, so the Spartan-3E is not doing too bad in comparison. And, being a lower power device, the FPGA will probably last longer, plus it is based on SRAM so it does not suffer from write-durability problems like flash devices. Also, you realize you are talking about obsolescence in the scope of a retro computer that is using parts that have been out of production for decades? If I wanted to make a 99/4A today, where can I buy a 9900, 9901, 9918A, 9904, and the GROMs? Aside from new-old stock and used parts, you can't get those parts. Anyway, my counter-point is, FPGAs tend to have very long production runs due to their primary markets, i.e. automotive and aerospace, which demand longevity. And, once your parts get certified for something like automotive or use in space, they tend to be used for decades. Just having the logic formulas does not mean it can be stuffed into a sufficiently sized memory to achieve the functionality. What is missing from the formulas are the registers that can feed into the system to affect the state. Without some sort of storage you have to essentially encode every possible state of every variable. This gets out of hand really quickly with even just a few 8-bit registers. You should try to do a few simple test circuits to see how far you can take it. Just implement the two primary counters needed to sync a video display, or something like that.
  5. Purchased. That sucks about GoG dragging their feet, I always looked at them as the underdog to Steam. Ah well, either way, whatever works for the indie devs will always get my support. It just so cool to see it up on Steam. It gives a whole new perspective on being a game developer in 2021. I can't wait to get some hours logged so I can write a review.
  6. Wow, that's really f-ing cool that this will be released on Steam! Did I miss the announcement somewhere? I did not know that was even possible, and I'm really impressed to say the least. However, I am wondering why Steam over, say, Good Old Games (GoG) which seems to be more in line with a retro-computer game?
  7. Rather than dissecting the HDL, why not just ask me questions directly? I'm more than happy to discuss any retro computer circuit board, IC, FPGA, or F18A internals. I don't think you could pull it off if you were trying to cover the entire F18A feature set. Even the 9918A functionality would be pretty hard. It would get pretty expense really fast, I would think. The FPGA you are trying to replace is only $20, so that would be your price-point goal. Retro arcade computers use discrete video subsystem with TTL chips, they are typically one full-size (18"x12", or so) PCB, and that only covers the tile, sprite, scrolling, and palette support. VRAM and ROM are usually on another separate board, and a lot of systems also used custom ICs (with Williams blitter chips, for example). You *might* fit such a system in the PEB - using *all* the slots. It certainly would not fit inside any console, or be able to be powered from the VDP socket. I'm not sure I understand the general push against FPGAs. They are really just a bunch of TTL chips in a smaller package, and just as much fun to mess with. I you look inside, you will find those TTL chips are pretty small too, and if you could remove all the packaging and stick them together at the wafer-level, along with some RAM to control some multiplexers, you would have something that looks like an FPGA. An FPGA simply brings density and lower power, but inside it is still working the same way all those logic TTL chips work, and you still have to understand digital system design to get anything working with an FPGA. It really is amazing how the physical TTL designs map directly to HDL. It is also fun to learn how some of the old ICs work on the inside, and recreate that functionality in a way that it can be used again in real hardware. The old chips are not going to be around or last forever, so we *have* to start migrating the design to more modern technology. This is very similar to moving your data from paper, to tape, to floppy, so spinny-disk, to SSD. Does anyone poo-poo loading a game (or other software) from an SD adapter of some sort, rather than from an EPROM in a cartridge? To me, an FPGA allows one person with hobbyist-level skills to do what used to take a team of very educated and experienced engineers many months of work, and millions of dollars, to produce. It is like a little personal IC fab on my desk. Very much like how the "PC" (personal-computer) brought computing to the individual in their own home, rather than having to go share a big computer with other people. For me, the FPGA is not replacing the original hardware, it is preserving it at a level that is closer to the original hardware than you can get with software emulation.
  8. The sprites are pre-processed on the line before where they appear, so that is the only limitation to changing the sprite table. But you already found your bug, so this is just additional information. The vertical interrupt happens at the end of the "visible area", i.e. around line 192 (this is in accordance to the 9918A datasheet). There are 525 lines in the VGA frame, which divided by 2 is 262.5. So once the real scan-line / 2 is > 255, it clamps at 255 until the new frame (about 7 virtual 2x lines and 14 VGA lines). The counter does not clamp sooner because 30-row mode needs the additional line counts. Those line counts *are* accurate, they are just counting the blanking area.
  9. IIRC it was proven that on the 99/4A you don't need a time-waste simply due to the 9900 access time to fetch the next instruction (which might the be VDP read) is longer than the required delay the VDP needs to pre-fetch the first byte after setting the read-address. Somewhere in the forum is a thread about this with testing. I guess I should probably try to find the reference. However, unless you are using unrolled loops, there will probably already be instructions between setting the VDP read-address and reading VDP data, so the traditional NOPs are not necessary; and if they are required you can typically find actual useful instructions to use instead. Most VDP access is probably going to use some sort of function, like the VWTR, VSBR, VMBR, etc. so there will already be lots of instructions between setting the address and reading data.
  10. Correct, that is one of the primary goals of the MK2! The board outline is no bigger than a 40-pin DIP socket, so physical constraint problems should be removed. No more tall-pins vs short-pins or bending over near-by parts, etc.! I wanted to achieve this with the original F18A, but the PCB technology available to hobbyist-level projects back in 2011/2012 did not allow for it. That said, there is still the 22-pin FPC header that will have the ribbon cable connected to one end. That is inevitable, and no matter which end I put the connector on, I'm sure it might cause a problem in some system. Hopefully the ribbon cable will prove to be small and flexible enough to overcome any such physical problems.
  11. Do you have any links? I don't know that I have seen a breakout board for a Spartan-3E, at least not on a realistic size board. However, if you are literally talking about a break-out for *just* the FPGA, i.e. the required regulators, oscillator, flash, level shifters, etc. are going to be on the main-board, then it would not be too hard or expensive to make just that board. As soon as you start including other parts on the break-out board, you get into a slippery slope where you end up with something like the MK2. Through-hole parts are going to become obsolete sooner than later. Many manufactures are producing parts only in SMD packages now, and the through-hole stuff is going to continue to drop off. I'm running into this even with the SMD parts, where a chip I'm looking at is only offered in the CS (chip-scale) or WL (wafer-level) package, and all the smaller FPGAs are BGA-only now with 0.5mm or *smaller* pitch. Such a PITA for assembly, and the hobbyist-level PCB capabilities are not where we can route these parts yet (need the 3mil trace/space and micro-vias for those kinds of parts). BGAs aside, IMO, most SMD is not that much more difficult to work with than through-hole, and people's resistance to SMD is simply more of a resistance to change. If you take one step back from through-hole, you could say having a project that requires soldering "at all" is a no-go for some people (probably more of those people than the ones who think they can't solder SMD parts). I never did SMD before the F18A project, but now it is old-hat. The 0603 and larger parts are pretty doable by hand with some basic tools. Anyway, these are just my opinions and only meant to be food for thought, sharing experiences, etc.. Your project goals are your own to set as you see fit. Ooph. Desoldering parts from those old boards, and keeping the original ICs intact and not damaging the insides (i.e. too much heat during removal), *now* you are talking about something that is really difficult.
  12. Tested System Compatibility The F18A has been installed in the following systems: TI-99/4A Home Computer ColecoVison Game Console (1) ColecoVision ADAM Computer (1) Toshiba HX-10 MSX1 Computer Toshiba Pasopia-IQ MSX1 Computer JVC Victor HC-7 MSX1 Computer Yamaha CX5M MSX1 Computer SpectraVideo 328 Computer (1) Tomy Tutor (1) SEGA SG-1000 (2) SEGA SC-1000II (replaced a TMS9118 VDP) Telegames Personal Arcade Powertran Cortex Memotech 500 and 512 (2) Note 1: These systems are known to have the original VDP soldered directly to the system circuit board, and will require desoldering the original VDP and a socket installed. Note 2: The placement and orientation of the original VDP in these systems prevents the system case from being closed when the F18A is installed.
  13. Yup, I understood, I was not taking offense; I'm just really frustrated with the pace of the MK2. I fully intend to release the "MK1" (it was never called that, but it has become a backward-designation) when I get time to think about it, so this is not an issue. Also, a version for the PCB is out in the wild when I uploaded it to CircuitMaker, and, as mentioned in other threads, the HDL was included with the Phoenix since I agreed to let that project use the F18A core (and I ended up getting pretty involved). I got a chuckle from that, due to the irony that you are making a circuit board where most of the main parts have been discontinued for over 30 years. So, I thought the Spartan-3 series had been discontinued as well, probably due to believing everything I read on forums. However, I just spent an hour or so looking into it and found nothing from Xilinx that the Spartan-3 series is discontinued or EOL. I found a forum response that gave this information: https://forums.xilinx.com/t5/General-Technical-Discussion/Spartan-3-Product-Life-with-Spartan-6/td-p/675918 "There are no planned obsolescences. Devices are discontinued when the volume gets too low or the fab no longer offers the process. Xilinx gives one year notice of discontinuance for last time buys and another year to complete the last time buys." On the Spartan-3E product documentation page, there are no notices of discontinuation other than for the Spartan-3A (not 3E) 208-pin QFP package. There was a notice for specific "dies", but since we are not fabbing chips with Xilinx dies in them, I don't think that is a concern. The Spartan-3 series is actually very popular and has components that are Automotive rated, as well as packages that are not offered in their other FPGA lines, like the 100-pin QFP that the MK1 uses. It should also be noted that right now, at the time of writing, the Spartan-3E has great stock at Mouser and DigiKey, but the newer Spartan-6 that the MK2 uses is out of stock everywhere... Not sure what that is all about, but it was very surprising to me. The requirements of the MK1 are not too high and could be satisfied with a lot of FPGAs, so I would not really let that be a concern in your decision to take that path or not. Also, with the amount of room you would have on the board, you could easily use a part with a 1.0mm pitch BGA, which are infinitely easier to route than the chip-scale and wafer-scale BGA parts (and BGA is the package of choice for FPGA manufacturers there days). Yeah, that looks like the "middle size" I was looking at for the HD15 connectors too. However, I think the larger ones are the "standard" package, and anything smaller in a consistent footprint is pure luck that the manufacturers are getting along. Kind of like hotdog vs bun packaging.
  14. That's not as bad as I though, actually. Interesting. Oh yeah, power and ground planes are really nice to have for sure. It will probably never be tested like this, but I would be curious to know how the original board with the metal shield compares to your board with the power and ground planes. GROM / GRAM are not that tricky, but it does require some external circuitry to replicate the internal address counter. The HDL for a GROM is not that hard, but that suggests some sort of programmable logic, and I don't know if you have posted your philosophy on the project goals and what you are willing / not willing to do. Worst case, just put the GROM footprints at the same spacing and orientation as the originals, and let someone make an external plug-in replacement. Best case, include a modern CPLD or small FPGA to replace the GROMs; but then you have the trouble of figuring out how to program them in-circuit, since one of the main benefits to having a replacement would be to be able to change the GROM code. I'm pretty sure I have seen circuits. Check in the ColecoVision and MSX communities, I think that's where I saw such a mod. It should not be terribly complicated. Yeah, I really am trying to get it done. I'm pretty unhappy about the whole situation really. We can probably get something worked out if you get to the point of needing to test, and the MK2 is not ready (which I hope it would be). Alternatively you could replace the 9918A board area with the F18A design (FPGA, a few voltage regs, etc.) and not have to worry about the MK2. Also, with the FPGA you would not need to have the DRAM or any SRAM replacement for the 16K, so lots of board space recovered as well as less power. However, again, I'm not sure how true to the 99/4A motherboard you are trying to stick to. Eventually chips like the 9918A and 9900 will become hard or impossible to get, at which point, if we are still alive (or anyone cares about running real hardware), we will have to find or turn to programmable-logic solutions. Although, there are also fabs these days that will reproduce chips on-demand, so maybe a custom run of the 9900 will be a thing. This is a PITA rabbit-hole too. I have spent quite a few hours looking at similar options for the VGA HD15 connector. There are thin versions from a few vendors, but none of them have compatible footprints. Then there is an in-between size footprint that seems to have a standard footprint. And finally there are those really deep full-size versions. I think the size is to also give mounting support, since those connectors don't always (rarely in retro home computers) have back-panel support and all the insertion force goes directly to the PCB. Oh, another option might be to put an FTDI USB-to-serial IC on the board and wire it up to where a serial port would go in the memory map. Make it a new serial device that is out of the way of the original serial ports. This helps give options for in-system updates, if that becomes a thing, and if not, it is a nice serial port to connect to a modern PC.
  15. It looks like every two scan lines are shifted by 1 pixel. I will have to write a test program to do that and see what it looks like. Edit: Remember, these original computers running the arcade games were computers built with TTL-logic chips and 8-bit CPUs (mostly). There will be limits to the complexity of what they were doing, and mostly limited to features you can achieve with bit-shifts, lookup tables, number flipping (to flip the display, for example), and counters. Most of the video subsystems were just hardware support for addressing ROM and drawing the pixels, or taking sprite location information and drawing those at the right time. I looked at the Zaxxon schematic last night. It uses a single Z80 CPU and has a lot of ROM. I did not decode the video circuits, but it did not look like anything too different from other arcade computers of the time. I think what I mentioned originally will be pretty close to what the hardware offers as a built-in feature. When I look at a screen shot of the original game compared to the image you posted, the vertical pixels are all still vertical, but the horizontal pixels become offset lines, which suggests a horizontal skew for every scan line or two, with a vertical scroll to achieve the effect. Keep in mind, the original game has a vertical screen orientation.
  • Create New...