Wednesday, November 7, 2018

The CollectorVision Phoenix Part 2 - The FPGA System Built by Thieves and Sold on Disinformation

Three blog posts ago, I was rather critical of the CollectorVision Phoenix, an FPGA console which implements the ColecoVision : https://nerdlypleasures.blogspot.com/2018/10/the-collectorvision-phoenix-fpga.html  I said all that I believed needed to be said, but since then I have determined that the console was deserving of further criticism.

Before we go into the specifics of my claims, let's review the basic hardware specifications of the ColecoVision and similar systems which are based off the TMS9928A Video Display Processor (VDP).




Specifications of the ColecoVision

CPU : Z80 @ 3.58MHz
CPU RAM : 1KB
Video : TMS9928A VDP
Video RAM : 16KB
Sound : TI SN76489
BIOS ROM : 8KB

Specifications of the Coleco ADAM

CPU : Z80 @ 3.58MHz
CPU RAM : 64KB
Video : TMS9928A VDP
Video RAM : 16KB
Sound : TI SN76489
BIOS ROM : 32KB

Specifications of the Sega SG-1000

CPU : Z80 @ 3.58MHz
CPU RAM : 1KB
Video : TMS9928A VDP
Video RAM : 16KB
Sound : TI SN76489

Specifications of the MSX and MSX-like computers (Spectravideo SV-318/328)

CPU : Z80 @ 3.58MHz
CPU RAM : 8KB-64KB
Video : TMS9928A VDP
Video RAM : 16KB
Sound : GI AY-3-8910
BIOS ROM : 32KB

The Seamy Underbelly of the ColecoVision Pirate Game Industry, Part I

Piracy is nothing new to the ColecoVision, it existed well before the introduction of the Super Game Module.  Unauthorized ports of classic games go all the way back to the the first homebrew Coleco game, kevtris.  Often these games were renamed, like Star Fortress, but anyone who knew anything about classic games would be able to tell the game on which the port was based (Star Castle in this instance). They could make a claim to legitimacy because it was understood you could not copyright game mechanics.  That understanding has come into question only more recently.  Tetris Holding, LLC v. Xio Interactive, Inc., 863 F. Supp. 2d 394 (D.N.J. 2012).

Then a company called OpCode Games began releasing homebrew games for the ColecoVision around 2002.  Unlike its predecessors, Opcode has no qualms about porting games directly to the Coleco.  Spectar, Space Invaders Collection, Sky Jaguar, Yie Ar Kung-Fu and Pac-Man Collection were some of these early efforts.  These games were sometimes ported directly from their MSX counterparts, sometimes given a graphical polish over their MSX versions and occasionally ported from scratch.  In 2007 CollectorVision began doing the same thing and Team Pixelboy followed in 2010, with the latter porting over SG-1000 games as well.  This kind of piracy not unique to the ColecoVision, AtariAge sells reproductions of previously unreleased prototypes of games for the Atari consoles for which they had no license or right to sell from the copyright holder.

There is a problem with this MSX to Coleco approach, namely it is slow.  MSX games had a lot of RAM available to them, even though most came on cartridges. Moreover, the MSX's audio chip is slightly more capable than the Coleco's audio chip, requiring the porter to modify the sound data to sound appropriate for the ColecoVision.  In 2012 Opcode came up with a smart idea, namely to make an expansion module add-on that would solve these issues with the Coleco, cut down on porting difficulties dramatically and give itself a new revenue stream.

How the Super Game Module Turns the ColecoVision into an Ersatz MSX

The Coleco is a tad light when it comes to CPU memory.  The Coleco contains one kilobyte of CPU RAM.  The 1KB memory limitation makes it more difficult to program complex games but the use of ROM cartridges can mitigate the issue.  Most NES games got away with 2KB of CPU RAM.  Still, adding additional RAM to the Coleco was something of a no-brainer.  In fact, the Coleco ADAM included 64KB of bankswitched CPU RAM.  The SGM bankswitches the RAM in the same way as the ADAM does, but it can't provide as much RAM.

However, the SGM added an additional feature, a new sound chip.  Which sound chip was chosen?  You might think they would have added a second SN76489 for stereo sound and to assist homebrewers by using the familiar chip.  Nope, instead it uses the AY-3-8910 sound chip (or one of its reduced pin count variants).  The AY-3-8910 is a slightly better Programmable Sound Generator than the SN76489, but still provides three square wave channels and a noise channel like the SN76489.

Between the added RAM and sound chip provided by the SGM, the ColecoVision functions pretty well as a stripped down MSX machine.  Porting MSX games to the Coleco became much, much easier.  32KB is sufficient for most MSX cartridge games and the addition of the AY-3-8910 meant that porters did not have to rewrite the music to fit within the slightly less capable SN76489.  All that was required was to change memory pointers, implement a basic bankswitching scheme if the game is larger than 32KB and you now have a MSX-to-Coleco port.

The Underbelly Gets Seamier, Piracy and the ColecoVision Part II

The SGM made a big splash in the Coleco enthusiast scene.  The device, which plugs into your Coleco's expansion slot, has had several runs of it produced and has always sold out.  When it gets sold out, it gets scalped.  When new the device goes for $100 even though it probably has approximately $10 in parts inside it.  How it maps the RAM and the audio chip is no secret, so anyone can make homebrew for the device.

Since 2012, there have been fifty-two homebrew cartridge titles that have been released for the Coleco which require the SGM : http://cvaddict.com/list.php?filter=8  The vast majority of these releases are straight-up, unauthorized ports of 1980s MSX games from Konami, Namco and other Japanese companies.  There have been a few ports of 21st Century homebrew MSX titles to the Coleco SGM, but I believe that those ports were done with the authors' permission.  A few games have been ported from the Coleco ADAM computer, also without permission.  Between the ADAM and MSX ports, SGM games could use either sound chip but never at the same time.  A recent port of Wizards of Wor to the Coleco SGM appears to have been done from scratch, but I doubt anyone got permission from the rights holder to do that.

The other pillars of the big three of the Coleco homebrew community, CollectorVision and Team Pixelboy, have embraced the SGM with nearly the same enthusiasm as Opcode.  There is money to be made here, Coleco SGM cartridges usually are sold for $50, sometimes $60.  While this is pure piracy and the law is clear that this behavior could subject them to serious criminal and civil penalties, the Coleco community has flown under the radar for at least fifteen years now.

These organizations have the temerity to slap their copyright on the title screen right above or below the original copyright holder.  While some of them claim that they release the ROMs after some time to the community, most SGM games are not downloadable from cvaddict.com.

F18A + Courtney Wavetable Sound Generator = Potential for More Piracy

The SGM's functionality has been included in the CollectorVision Phoenix FPGA console, but that is not all the improved hardware upgrades over the original Coleco contained in the FPGA clone.  The video has been upgraded with the F18A Video Enhancement.  This is a video upgrade that incorporates the TMS9928A functionality and provides additional graphics modes, an 80-column text mode, an expanded palette for tiles and sprites, fewer color limitations on background and sprite tiles, hardware pixel-based horizontal and vertical scrolling and elimination of sprite flicker for all games.

The F18A was originally designed to replace a physical TMS9928A chip, but there is no reason why the Phoenix could not upgrade the functionality even more.  While it shares many of the capabilities of the MSX2's Yamaha V9938 VDP, the Yamaha VDP typically has 128KB of video RAM dedicated to it.  The F18A only has 18KB of video RAM available as it was originally designed.  The designer of the F18A is on the Phoenix team and has indicated that the F18A MK2 in development will have access to 512KB of video RAM.  While the Phoenix cannot provide 512KB dedicated solely to video memory, it can easily provide the 128KB most MSX2 games require so long as the game runs on a cartridge.

Unlike the F18A, the Courtney SEX2764 Wavetable Sound Generator (WSG) only exists in the Phoenix's FPGA.  No demonstration of its capabilities has been made yet and there is no technical information available to document the specification.  WSGs as implemented in games and systems of the 1980s was a way to use short digital sound samples to make complex sounds.  Now you might ask yourself what games may have used a WSG that also use the TMS9928A?  The answer is those games from Konami which use its Sound Creative Chip (SCC).

Konami included its SCC chip in thirteen cartridge games and as a sound cartridge which can be used alongside seven floppy games.  Some of those games like Salamander, Parodius, Nemesis 2 & 3 and Metal Gear 2: Solid Snake, are highly regarded (especially as translated).  Between expanded F18A and the WSG, pretty much the remainder of the MSX and MSX2 cartridge libraries are thrown open from which CollectorVision and its buddies can steal.

Infringing Use of the ColecoVision BIOS

When you start a Coleco, you are usually met with the BIOS screen.  The BIOS screen is programmed to stay on the screen for 12 seconds, then it goes to the game select menu. The BIOS also provides the patterns for the single-dot text font that the Coleco games use, especially in the difficulty selection screen. That is the most visible impact the BIOS has, and there are dumps of the BIOS that have been modified to reduce the delay to two seconds and to use a more visually pleasing double-dot font.  Some third-party Coleco games bypass or minimize the boot delay.

But the Coleco BIOS is not just a boot-loader, it is a true BIOS.  A true BIOS provides routines programmers can call and use in their own programs.  The Coleco BIOS has many functions to draw graphics, play sound, read controllers, provide timers and perform complex math routines.  Games do not have to use the BIOS routines, but by using them a programmer can save precious cartridge space.  Without a full BIOS implementation, the compatibility of any Coleco clone is likely to be inconsistent at best.

The only way to legally use the Coleco BIOS is to either license it from the rights holder or to reverse engineer it.  The rights to the BIOS could reside with Hasbro, which bought most of Coleco's assets in 1989.  I have read that Hasbro may have sold the rights to the Coleco IP to Atari, River West Brands (which became Dormitus Brands and controls Coleco Holdings, LLC) or even Telegames.  Coleco Holdings, LLC licensed some rights to atgames for its ColecoVision Flashback.  Regardless of who owns the copyright to the BIOS code, one thing is clear, the BIOS is not in the public domain.  It may very well be an orphan work.

Despite cosmetic differences between the official Coleco BIOSes and hacked Coleco BIOSes, there are no known reverse-engineered Coleco BIOS replacements except possibly for the BIOS found in the DINA 2-in-1.  CollectorVision tried licensing the ColecoVision trademark from Coleco Holdings, but negotiations fell through.  When its chief designer, Bmack, was asked whether the Phoenix was using a reverse engineered BIOS, he replied that he did not think so.  When the discussion turned to obtaining a license to use the Coleco BIOS, he did not respond.  I think the answer is pretty clear that the BIOS is being used illegally in the Phoenix.  Also one of the built-in games, Light Grid Racing, is indisputably an unauthorized port of that mini-game as it was included in the Tron arcade cabinet.

Misleading Atari 2600 FPGA Support

During the Kickstarter campaign, CollectorVision stated in an update that the Phoenix would now come with an Atari 2600 core.  Many people were very excited about this news and it undoubtedly helped drive up the pledge count.  After all, the only other 2600 FPGA solutions available are the Nt Mini, whose like may not be seen again, and the less than user friendly MiSTer.

Unlike every major console since, the Atari 2600 had a unique way of displaying graphics.  Every scanline was composed of 160 horizontal pixels on which objects could be displayed.  However, the number of scanlines displayed per frame was up to the programmer.  The graphics chip keeps drawing lines until the programmer tells it to stop and go back to the top of the screen.  The fewer lines that are drawn, the faster the frame rate will be, and the more lines that are drawn the slower the frame rate will be.  Even one scanline will change the frame rate slightly.

The "canonical" scanline rate for NTSC games is 262 lines per frame and for PAL games 312 lines per frame.  However, the canoncial scanline rate may have been the most common rate, but many NTSC games use 263, 261 or some other scanline rate.  See here for the rates most games use : http://www.digitpress.com/library/techdocs/vcs_scanlines.htm  Some games may use one rate for certain screens and another rate for other screens.  A CRT really does not care too much about minor variations in the scanline rate, but an HDMI monitor expects a single, constant framerate, either 60 or 59.94fps.  Transitions between frame rates or interlacing and progressive scan modes require the display processor to reconfigure the screen parameters, which can take seconds.  Atari 2600 video is as unfriendly toward modern devices as video game consoles get.

The Nt Mini has a sophisticated frame buffering system that is designed to handle all the weird resolutions of 2600 games and send them at 60fps to the HDMI display device.  What does the Phoenix do?  Nobody knows.  The video shown of the 2600 Core running shows that the Core is running on one of the old Phoenix prototype boards.  https://www.youtube.com/watch?v=G7OBqr-6wMU  That particular prototype board has only a VGA output connector.  VGA is an analog video format.  A trailer-style video with footage from other 2600 games is shown here : https://www.youtube.com/watch?v=WOVKZdAsUNM

But you should point out that the prototype board is being connected to an LCD display.  Well, the LCD display has circuitry that can manage handle analog VGA signals.  Moreover, all 2600 games shown in those videos, Yar's Revenge, Adventure, Pitfall, River Raid, Pac-Man 4K Homebrew and Space Invaders, use the canonical 262 scanlines per frame.  (They're all 4K games being loaded off an SD card, so bankswitching cartridges may not be supported.)  I do not know how tolerant LCD analog-to-digital circuitry would be to some of the more unusual Atari 2600 framerates.  The Phoenix will only support HDMI out of the box, which means it can't rely on the display's circuitry to handle refresh rate changes.  Until the Phoenix is shown using HDMI to display an assortment of Atari 2600 games, I would not trust CollectorVision to deliver on this promise.

Out of Control Moderation

Finally, I cannot finish this blog post without discussing the concerning behavior of one of the AtariAge mods in relation to the CollectorVision Phoenix.  The AtariAge forum is where most of the discussion regarding the Phoenix has taken place.  There have been multiple threads started by the project creators at CollectorVision regarding the project, but none of them are mods, so that is not a big deal.  They can ignore criticism but they cannot silence it.

Enter the moderator known as TPR.  TPR is a relative newcomer to the AtariAge site, only joining in 2015.  "TPR" is short for Theme Park Review, a website dedicated to discussing various aspects of amusement parks.  It is also the name of an affiliated Youtube channel which is uploads POV videos of roller coasters and other theme park rides.  The channel is a popular one with a sizeable subscriber count and some videos being watched millions of times.  TPR also has worked in the video game industry as a producer on many game titles.

Being a good moderator is not all about credentials, the personality of the man or woman selected to moderate must also reflect the needs of the forum.  A good moderator should try to be neutral in disputes, stepping in only when people are resorting to name calling, spreading misinformation, going off-topic or closing a thread down if it threatens to descend into a flame war.  Moderators should moderate with a light touch.  If they don't they risk driving people who think they are in a disfavored group away from the site.  When forum moderators go too far, as happened with the NintendoAge forum and is a chronic issue with the Neo-Geo.com forum, they create an unwelcoming, intolerant atmosphere.  Moderators are human beings with their own thoughts, feelings and passions, so we must allow for the occasional outburst of anger or a snide putdown against a non-moderator.

TPR is not just an enthusiastic Phoenix supporter, he functions like the console's unofficial spokesperson and publicity manager.  As far as I know, he is the only person with a prototype unit outside the CollectorVision team.  He makes forum posts every day, sometimes multiple times per day, imploring other people to back the kickstarter, sometimes using ALL CAPS and obnoxiously large sized fonts in bold to get the message across.  He posts frequent videos showing off the console's capabilities to Youtube.

Cheerleading for a product by moderators should be discouraged because it gives the appearance that criticism of the product may not be welcome and may lead to repercussions.  However, TPR has gone much further than allowing his enthusiasm to implicitly discourage dissent, he actively lashes out at people who criticize some element of the console.  He has edited, deleted and rewritten his own posts and others to eliminate criticism from other users, especially about his bĂȘte noire, criticism about the 480p limitation of the Phoenix.  He calls this "cleaning up the thread a bit", to ensure his preferred narrative is the one people are likely to read.  He likes to refer to critics as "toxic" and "trolls" and has wielded the ban-hammer against critics from the main Phoenix thread.  This is the sort of behavior one would expect of and we have seen from the modern-day Atari and the Polymega.

The need to publicize the issue of the Phoenix's output resolution should be obvious to everyone, but CollectorVision and TPR think it is no big deal.  Nowhere on the CollectorVision site or the kickstarter page is the output resolution identified.  Not everyone follows the AtariAge forum threads from start to finish.   TPR's direct captures have a maximum output of 720p/60 or 1080p/60 and nowhere in the descriptions does he report that he had to upscale the video to allow Youtube to accept 60fps video.  He posted a video where his TV showed 1080p from the OCD but later deleted it.  This man does not have the temperament to be a moderator.

Conclusion

The Phoenix Kickstarter has ended at 56% funded, having raised $129,045 with 468 backers.  Going by the number of backers for each tier that gets you a console or even a bare board, CollectorVision would have to build and ship about 470 consoles.  Except for tiers like "bare board" and "early access", this level of support is predicated on the console costing $200 with an injection molded enclosure.

Because the campaign did not reach 100% funding, CollectorVision will have collected no money pursuant to Kickstarter rules.  They will start back at square one in terms of raising funds to build the Phoenix, but they will still be able to provide backer updates to anyone who pledged on Kickstarter.  They have indicated they will implement Plan *cough* 9 *cough*, excuse me, Plan B.  Plan B will allow people to preorder the Phoenix directly from the CollectorVision website.  Plan B was discussed in the past to offer the Phoenix with a 3-D printed enclosure for $300.  Now Plan B as announced will offer the console at the $199 Kickstarter price, with a loose copy of the Sydney Hunter and the Caverns of Death cartridge and use an injection molded case.  I suspect that the console will not carry an HDMI license because that costs from $5K-$10K.

There is a level of risk here, the buyer is being offered more for his money under Plan B than under Plan Kickstarter despite the lower amount of money available to CollectorVision under Plan B.  Some of that activity on the Kickstarter may not necessarily materialize into Plan B pre-orders because pledging on Kickstarter was increasingly assured not to put anyone's money at risk.  Plan B will have to be tight with costs and see nearly flawless execution and minimal mishaps to materialize in their given June/July time-frame (and March for early access pre-orders).

Despite the claim that the Phoenix will be an open source console, that does not magically result in cores being available for the system.  Someone has to write or port an FPGA core to that system, and not many people have the skills and the tools to compile FPGA bitstreams.  CollectorVision may never implement an SG-1000 or MSX core (not ones that can run ROMs off SD cards anyway) because that would seriously cut into its and its buddies pirate cartridge gravy-trains.  Bmack suggested they could make a cartridge adapter to allow MSX cartridges to work with the Phoenix, but they would need pins from the Phoenix's expansion port because the Phoenix provides a 30-pin port and the MSX uses a 50-pin port.  That cartridge adapter may block the expansion port from other uses, such as interfacing with a video/audio DAC.  He has not ruled out adding 720p support, but it is not guaranteed.

Despite the promises of Plan B, if you want to support the pirates and their overpriced, underpowered, repugnantly "unofficially" promoted and probably illegal device, go pre-order a Phoenix from CollectorVision.  If you want an FPGA console experience that is not morally compromised, spend your hard-earned money elsewhere.

1 comment:

Anonymous said...

Thank you for this interesting article.

I am not sure if you already know this, but the CollectorVision Game System is based on the ZX Uno FPGA System:

http://www.zxuno.com/forum/viewtopic.php?f=46&t=1814

CollectorVision used some of the existing cores for this system and further improved them.