Project Seasons Work In Progress 3

这次是把GameCube Digital AV 输出接口做了修改和焊接连线,因为我实在买不到这个插接件了。

DSC01927 DSC01930

Windows Live Messenger

Windows Live Messenger 可以算是现在微软所有软件产品中最傻逼但是还不得不用的楷模。

从微软的开发团队来说,我还没见过或者听说过技术糟糕的,那么Windows Live Messenger这样一个产品到底是怎么回事呢?

我不善于从微软获取一些八卦,咱们今天在这里暂时从这个糟糕透顶的软件的表现来分析一下:

  • 错误代码:很多人肯定见过Windows Live Messenger不能登录或者其他一些时候的错误代码,0x????????。OK,作为一个错误报告机制,你把这玩意直接丢给用户是什么意思?而且这些白痴一样的代码既不是Win32 error code,也不是COM,是完全自定义的,从常用的工具中,比如GetLastError,或者ErrorLookUp中根本就找不到,即便上网查找也经常遇到含糊不清的各种猜测(显然,你我都不知道,老外当然也不知道)。
  • 群:Windows Live Messenger的群功能我就不说了,这个实在是没法说了,简直就是一滩屎。
  • 功能衰退:我很好奇,作为微软的产品竟然有功能衰退。比如以前版本点在联系人的头像上可以看他space的更新,但是现在没有了。
  • 不兼容:Windows 7 发布这眼瞅着一年了,Windows Live Messenger不能缩到系统托盘到底你妈逼还改不改啊???

OK,OK,不继续列举了,从Windows Live Messenger已知的技术文献来看,架构和协议设计的都还好,那到底是怎么出来现在这样一个傻逼的产品?我的推测是:

  1. 扯皮。从各种现有的八卦来看,微软这样的软件恐龙企业在很多年前已经在研发环节有了大规模的扯皮现象(vista开始菜单),Windows Live Messenger有很多功能是和比如space集成的,那必然有扯皮。
  2. 产品定义混乱。简单的说就是产品经理也不知道要做什么,或者说不知道竞争对手在做什么,亦或是他根本就没用过Windows Live Messenger。

Project Seasons Work In Progress 2

采购了一些必要的元器件:

20100807334

然后是组装:

DSC01924

这是今后的样子,现在FPGA的引脚还没有真正连接上:

DSC01926

Project Seasons Work In Progress 1

由于 GameCube 色差线的昂贵和稀少,所以并不是所有的玩家都见过 GameCube 真正的显示效果。尽管我有幸拥有一根 GameCube 色差线,但是我依然计划自制一根。在这里要说明的是,目前全世界尚没有人公开报道过自制成功的先例,我也不能保证能制作成功。

除了最后期的 GameCube 之外,所有的 GameCube  都有 Digital AV Output,这个接口能同时输出数字形式的视频和音频信号,希望获得数字音频信号的朋友可以借助搜索引擎查找到制作的详细方法(图纸如下,制作应该不会有什么难度, by Oscar)。

ngcspdif

下面是一些我整理的资料,以及初步的设计:

任天堂专利:《External interfaces for a 3D graphics system》,这篇专利文档详细介绍了 GameCube 数字输出接口的时序。

GameCube Digital AV Output Pinout

gamecubedigital1

Pin     Signal     Pin     Signal
1 DetectCable (pull high 1.8V) 2 54MHz Clock
3 ClkSelect 4 GND
5 +12V 6 27MHz Clock
7 VDATA0 8 GND
9 VDATA1 10 VDATA2
11 GND 12 VDATA3
13 VDATA4 14 GND
15 VDATA5 16 VDATA6
17 +3.3V 18 VDATA7
19 LRCK (Audio) 20 GND
21 Data (Audio) 22 BCLK (Audio)

Video is sent as 4:2:2 YCrCb component. <Y><Cr><Y><Cb><Y><Cr><Y><Cb>
Y is set to 0 during blanking intervals, and Cr/Cb packets are used to transmit sync and flag information.

Bit Flag Description Options
0 I Interlaced Flag 0 = Interlaced, 1 = Non-Interlaced
1 M Screen Mode Flag 0 = NTSC, 1 = PAL
2 K Color Burst Blanking Flag 0 = Color Burst Should be Blanked Out
3 B Color Burst Flag 0 = Indicates location of Color Burst
4 H Horizontal Sync 0 = Horizontal Sync Active
5 V Vertical Sync 0 = Verical Sync Active
6 F Field 0 = Odd Field, 1 = Even Field
7 C Composite Sync 0 = Composite Sync Active

 

目前的设想是,使用xilinx Spartan3s400 FPGA 作为和 GameCube 的接口,外接梯形电阻网络来构成DAC(购买高速视频DAC还是挺麻烦的,暂时用梯形电阻网络)。FPGA根据信号时序进行锁存,YPbPr三路信号同时输出给DAC,HV同步也输出。

ladder