基于控制台游戏系统的dvd使能代码伺服器和装入程序的制作方法

文档序号:6368026阅读:258来源:国知局
专利名称:基于控制台游戏系统的dvd使能代码伺服器和装入程序的制作方法
技术领域
本发明涉及到基于控制台的游戏系统,尤其涉及到能将增强码从外部设备下载到基于控制台游戏系统的软件。
背景技术
基于控制台游戏系统的视频游戏被描述在光盘上。游戏控制台装有一个光盘驱动器来操作这些视频游戏光盘。经过一些修改,游戏系统能用来读取包括除了游戏以外的其他格式内容的光盘。,如音频CD(光盘),以及影片DVD(数字视频光盘)影片。下列公开陈述了一种在基于控制台的游戏系统上实现对DVD影片重放的方法。
概述一个外部道尔芯片联结基于控制台的游戏系统,它可以在游戏系统上容易地重放DVD影片。道尔芯片存储DVD重放码。游戏系统执行软件容易地将代码从道尔芯片转移到游戏系统上。
软件应用高级总线协议来支持在通用串行总线(USB)上的传送,同时,展示了一个能将呼叫引入协议的应用程序接口。
附图的概述

图1给示了带有游戏控制台、一个或多个控制器以及可以用来重放DVD的可联接道尔芯片的游戏系统。
图2是游戏系统的方框图。
图3给示了道尔芯片的正示图。
图4给示了道尔芯片的侧示图。
图5给示了道尔芯片的后面透视图。
图6给示了道尔芯片的框图。
图7给示了道尔芯片如何和游戏控制台相连接。
图8给示了在游戏系统上用来初始化DVD重放的启动过程流程图。
图9给示了每次当联接道尔芯片时从道尔芯片将DVD重放码下载到游戏控制台的过程的流程图。
图10给示了当首次联接道尔芯片时从道尔芯片到游戏控制台下载DVD重放码,然后用每个随后的联接来确认该代码的流程图。
详细说明下面的讨论通常涉及到一种灵活的技术,它用来升级面向用户的电子设备,它经过能被加到设备上的外部设备从而来产生有用的升级特性。外部设备存储代码,同时当连接到面向用户的电子设备时,将代码下载到面向用户的电子设备以提高性能。这种附加的性能可以由外部设备开发。为了讨论的目的,这一技术被描述在基于控制台的游戏系统的外部道尔芯片的上下文中。
游戏系统图1给示了一个游戏系统100的案例,它包括游戏控制台102以及一个或者多个控制器,像所示的控制器104(1)和104(2)。游戏控制台102装有内部硬盘驱动器和便携式媒体驱动器106。便携式媒体驱动器106支持多种格式的可移动存储媒体,像所示的光存储磁盘108。作为例子,适合的便携式媒体包括DVD,CD-ROM,游戏盘,游戏盒带以及诸如此类的媒体。
游戏控制台102在它的前面板上有四条槽位110,它最多可以支持4个控制器,然而槽数和槽位可能会被改变。电源按钮112以及退出按钮114也被定位在游戏控制器102的前面板上,电源按钮112开关游戏控制台的电源,同时,退出按钮114交替地装入和退出便携式媒体驱动器106的托架,它允许装入和取出存储磁盘108。
游戏控制器102经过A/V接口电缆120连接到电视机或者其它显示器(未示出)上。电源电缆122提供游戏控制台的电源。游戏控制台102还可能具有内部或外部附加网络性能,像所示电缆或调制器连接器124可以容易地连接到诸如局域网(LAN)或者国际互联网这样的网络上。
每个控制器104经过有线或者无线接口被耦合到游戏控制台102。由图可见,控制器是与USB(通用串行总线)可兼容的,同时经过串行电缆130连接到控制台102。控制台102可能会带有许多种用户交互机械装置的任何一种。如图1所示,每个控制器104配备有两个拇指杆132(1)和132(2)、D-pad 134,按钮136、以及两个触发器138。这些游戏机只不过是典型的,同时其他已知的游戏机械装置可能可以替代图1中的游戏机并被加入图1中去。
存储单元(MU)140可以插入到控制器104中来提供附加和便携式的存储器。便携式存储单元使用户可以存储游戏的参量,并转移它们到其它控制台上进行操作。在描述实施中,每个控制器都用于容纳两个存储单元140,然而在其它的实施中可以用多于或少于两个单元的结构。
道尔芯片150提供对DVD影片的重放能力。道尔芯片150有一个兼容的连接器,它允许道尔芯片插入到插槽110的其中之一。从而道尔芯片连接器在样式上类似于游戏控制器104上的连接器。道尔芯片150存储允许对DVD视频影片进行程序解码和重发的DVD重放码。在道尔芯片150联接到控制台之后,道尔芯片150上的DVD重放码被下载到控制台中以允许影片重放能力。道尔芯片150还有一个IR接收器,它经过无线电线路154从遥控器152接收命令。
从而,道尔芯片能执行三种独立的功能。当重放码下载到游戏控制台时,它存储DVD重放码,用来在游戏系统容易地放送DVD影片。道尔芯片还支持一个IR接收器/译码器,它从遥控器接受公用的DVD命令。第三,道尔芯片相当于重放使能器,因为游戏控制台在允许重放DVD之前验证确实有一个道尔芯片被插入。
当道尔芯片被描写为存储DVD重放码时,此时它能用存储码来存储,使能游戏控制台的其他功能。例如道尔芯片可用作为一个IR接收器,它使能遥控器152,或者其他的IR使能的远程设备来开发游戏控制台的附加功能,这在缺少道尔芯片的情况下游戏控制台是做不到的。
游戏系统100从而能玩游戏和播放音乐,同时在带有道尔芯片150的情况下,可以重放DVD视频影片。在具有不同的存储器填充的情况下,可以从驱动器106中的硬盘驱动器或便携式媒体108、或从在线源、或从存储器单元140播放标题。游戏系统100的一个实例包括下列重放操作的能力1.从CD和DVD光盘、从硬盘驱动器或者从在线源放送的游戏。
2.从便携式媒体驱动器106中的CD、从硬盘驱动器上的压缩文件(例如,Windows Media Audeo(WMA)格式)、或者从在线流源放送的数字音乐。
3.从便携式媒体驱动器106中的DVD盘片、从硬盘驱动器106上的文件(例如,Windows Media Video(WMV)格式)、或者从在线流源放送的影片。
图2给示了游戏系统100更详细的功能部件图。游戏控制台102有一个中央处理单元(CPU)200和存储器控制器202,它们便于处理器访问不同类型的存储器,包括快闪ROM(只读存储器)204、RAM(随机存取存储器)206、硬盘驱动器208,以及便携式媒体驱动器106。CPU200配备1级高速缓存210和2级高速缓存212临时存储数据并且从而减少存储访问周期数,从而提高处理速度和吞吐量。
CPU200,存储控制器202以及各种存储设备经过一条或多条总线进行内部连接,包括串行和并行总线,存储器总线,外部设备总线,以及可采用任何多样化总线逻辑结构的处理器或本地总线。例如,这些结构可以包括工业标准结构(ISA)总线,微通道结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)本地总线,外部设备部件内部连接(PCI)总线,以及光数据传输(LDT)总线。
作为一种合适的实施,CPU200,存储控制器202,ROM204,以及RAM206被集成安排在一个通用的214模板上。在这个实施中,ROM204是flash ROM的闪存结构,它经过PCI(外部设备部件内部连接)总线以及ROM总线(图中没有表示出来)连接到存储控制器202。RM206是多DDR SDRAM(双数据率同步动态RAM)类型结构,它由存储控制器202经过专门的总线(图中没有表示出来)独立控制的。硬盘驱动器208以及便携式媒体驱动器106经过PCI总线以及ATA(AT结构)总线216连接到存储控制器。
3D图形处理单元220以及视频编码器222形成视频处理管道,以得到高速和高分辨率的图形处理。数据从图形处理单元220经过数字视频总线(图中没有表示出来)加到视频编码器222上。音频处理单元224以及音频codec(编码/解码器)226形成相应的音频处理管道,它具有高保真度和立体声处理。音频数据经过通讯连结(图中没有表示出来),在音频处理单元224和音频编解码器226之间传送。视频和音频处理管道输出数据到A/V(音频/视频)接口228,以传送数据到电视机或其他的显示器上。在图中所示,视频和音频处理的构成部件220-228安装在模板214上。
在图中,在模板214上还有USB主控制器230以及网络接口232。USB主控制器230经过一条总线(比如,PCI总线)连接到CPU200以及存储控制器202上,同时对外部设备控制器104(1)-104(3)以及道尔芯片150进行伺服主控。网络接口232提供对网络(如,LAN,互联网等)的访问,同时可以是任一各种有线或无线的接口部件,包括以太网卡、调制解调器、蓝牙模块、有线电缆调制解调器等等。
游戏控制台102有两个双控制器支持部件240(1)和240(2),每个部件最多可支持两个游戏控制器和/或DVD使能道尔芯片。如图所示,两个游戏控制器104(1)和104(2)连接到第一控制器支持部件240(1),同时,第三游戏控制器104(3)和道尔芯片150连接到第二部件240(2)。前面板I/O部件242支持电源按钮112和退出按钮114的功能、以及任何LED(发光二极管)或者游戏控制台外表面上的其它指示器。部件240(1)、240(2)和242经过一个或多个电缆部件244耦合到模块214。
如图2所示,六个存储单元140(1)-140(6)连接到三个控制器104(1)-104(3)上,也就是说,对每个控制器连接两个存储单元。每个存储单元140提供对于游戏,游戏参量以及其他数据的存储。当插入一个控制器后,存储单元140能由存储控制器202来存取。
系统电源模块250提供游戏系统100组成部分的电源。风扇252用来冷却游戏控制台102的电路板。
游戏控制台102实现执行通常密码功能的密码引掣,如加密,解密,标识验证,数字签名,散列代码,以及连接。密码引掣可以在CPU200的一部分上来实现,或者用软件存储在存储器(如,ROM204,硬盘驱动器208)上,它在CPU上执行,这样,CPU具有被构成去执行密码的功能。
控制台用户界面(UI)应用程序260被存储在硬盘驱动器208中。当游戏控制台加上电后,控制台应用程序260的各部分被装载到RAM206和/或高速缓存210,212中,同时在CPU上被执行。控制台应用程序260呈现图形用户界面,当运行在游戏控制台中不同的媒体类型时,它提供一致的用户经验。
代码伺服软件270以及装入程序272也容易地提供从道尔芯片150到游戏控制台102DVD放送码的下载。软件存储在图中的硬盘驱动器208中,然而它也可以存储在其它存储器中,如ROM204。在一种实施方法中,包含代码伺服器270作为软件驱动器,它显示了一组可以用来检索和装载存储在道尔芯片150上的DVD重放码的应用程序接口(API)。由于重放码能被用预加密格式存储,因此装入程序272与代码伺服器270进行通讯,从而将DVD重放码直接解密到诸如RAM206或硬盘驱动器208这样的存储器中。代码伺服器和装入程序软件以及一组API的实例将在下面作更详细的描述。
示例性道尔芯片图3-5给示了道尔芯片150的一个实例。道尔芯片150有一个主体部分302以及从主体部分302延伸出来的连接器元件304。图中描述,连接器元件304是USB兼容的连接器,它用于插入游戏控制台正面四个插槽中的任何一个(见图1)。虽然只说明了一种连接器形状,然而其它形状也是可能的,它取决于设计选择以及游戏控制台的结构。
观众用遥控器152(见图1)来控制游戏系统上的DVD的操作。命令作为红外信号被传送到道尔芯片150。一个IR镜头306被安装上,但显示在主体302的外部以接收来自遥控器手柄152的红外信号。IR镜头306和连接器元件304装载主体的两个相对面,这样当连接器元件304被插入到槽110中时,IR镜头306的外表面捕获从遥控器152来的IR讯号。
图6给示带有道尔芯片150组成部分的一个实例排列。作为一种实施,组件集成装配在一个内置的PCB(印刷电路板)部件上,该部件在塑料包裹的道尔芯片主体302内被放置和被保护。IR接收器602耦合到IR镜头306以接收红外信号并将它们解码为遥控代码。作为一种可行的实施,IR接收器和解码器602可以支持标准的RCA DVD遥控码,因此,道尔芯片150可以和大多数通用遥控器相兼容。
微控制单元604耦合到IR接收器602以接收和操作由观众输入的控制码。微控制器604连结到USB接口606,当道尔芯片150插入到游戏系统中时,它便于通过连接器304来处理数据I/O。另外,当道尔芯片150被插入同时游戏控制台被加上电时,电源经过USB接口606从游戏控制台传递到道尔芯片上。
道尔芯片150还包括一个只读存储器(ROM)608,它用来存储便于影片或其它来自DVD的内容的重放的DVD重放码610。ROM608能够由掩膜(mask)ROM(如图所示)、快闪ROM、或者其它类型的ROM来实现。重放码610被存储为包括多个可存取页面的预加密的ROM图像。每页为一个预定的尺寸(如1K字节)。ROM608经过总线612耦合到微控制器604,总线612有多根数据线(如,8根数据线)和多根地址线(如,20根地址线)。微控制线604能用总线612的地址线来指定单独的页面,同时,检索码通过总线的数据线输出。
微控制器604执行固件614以便于DVD重放码的下载,重放码来自ROM608、经过USB接口606、并且被下载到游戏控制台102中。电源上电复位616每当道尔芯片最初被插入一个激活的游戏控制台时、或者每当游戏控制台上电时被执行。电源上电复位616复位微控制器604来开始执行固件614。
通过在ROM608中保留代码610,道尔芯片150有效地存储所有软件性能以使能游戏系统上的DVD重放。当控制台UI应用程序260探测到DVD影片媒体时,UI应用程序260开始处理放送影片。假如道尔芯片150呈现在系统中,UI应用程序260下载DVD重放码610到游戏控制台RAM内存206中,在这里代码被安装,它不带有用户交互作用。之后,UI应用程序260就像一个DVD放送器那样操作,从遥控器接受标准的用户命令(如,放送,暂停,向前,返回,跳过等等)。假如道尔芯片150没有呈现在系统中,DVD重放码610的下载将失败,同时UI应用程序260显示一条信息指示道尔芯片150需要放送DVD影片。
道尔芯片150也可以构成为具有重放使能器的功能。当观众安装DVD影片到托架时,游戏控制台第一次检验可标识的道尔芯片150是否已被插入到槽110中。在这种方式下,游戏控制台已经有一份DVD重放码610的存储拷贝。DVD重放码610其小的随机部分将被下载,同时对已呈现在游戏控制台硬盘设备208上的拷贝进行对照。如果没有被安装道尔芯片,或者安装了一个不能验证道尔芯片150的设备,那么DVD影片重放功能将被禁止,同时对观众不可用。不管道尔芯片150被用于下载代码或者简单地令它使能,当道尔芯片150被移走后,UI应用程序260将禁用DVD视频功能。
代码伺服器和装入程序游戏控制台102上实现的代码伺服器和装入程序软件便于将DVD重放码从道尔芯片150下载到游戏控制台。一般而言,代码伺服器270负责通过USB连接从道尔芯片获取重放码610。代码伺服器采用高级总线协议,用于请求代码并且经过USB线来移动它。装入程序负责将预予加密的DVD重放码解密到存储器中。装入程序也分析类似于DLL(动态连接库)装入程序的相关性。
图7给示了一个专门的代码伺服器270和装入程序272的实现方式,此时道尔芯片150被插入到游戏控制台102上的槽中。代码伺服器270实施处在常规OHCI/USB协议上的高级总线协议。相应的,所示的代码伺服器耦合到依次连接到USB线704的开放式主控制器接口(OHCI)702上。
当道尔芯片150被插入时,连接器元件304连接到USB线704。代码伺服器270采用同步或异步转换技术从ROM608得到DVD重放码,并且将代码提供给装入程序272。装入程序272在代码被接收时对其解密并将代码存储在控制台存储器内。在一种实现方式中,DVD重放码被临时存储在RAM206中以便于DVD影片重放。当游戏系统电源置于“关”的位置上时,代码被丢失。在另一种实现方式中,代码可以被存储在硬盘驱动器208上。这两种实现方式都在下面作更详细的描述。
由代码伺服器270支持的高级总线协议基于下列两条命令·XDCS_REQUEST_GET_ROM_FILE_INFO;以及·XDCS_REQUEST_GET_ROM_FILE_BLOCK这两个请求都是控制请求。XDCS_REQUEST_GET_ROM_FILE_INFO命令允许检索代码图象的代码版本和尺寸。道尔芯片固件614响应这一命令从存储在ROM608中的ROM图象的起始位置读出版本和长度。
XDCS_REQUEST_GET_ROM_FILE_BLOCK命令允许访问存储在ROM608中的ROM图象内的任何预定尺寸的代码块。例如,有一个1K字节页构成的图象,这一命令允许访问单独的1K字节的代码页面。道尔芯片固件614响应这一命令移位块索引以获得数据偏移量以及从该偏移量返回的所请求的字节长度。
这两条协议命令的SETUP的一种示例性设计如下<pre listing-type="program-listing"><![CDATA[REQUEST_GET_ROM_FILE_INFO bmRequest=1100001b   (USB_DEVICE_TO_HOST|USB_VENDOR_COMMAND|   USB_COMMAND_TO_INTERFACE) bRequest=1(REQUEST_GET_ROM_FILE_INFO) wValue=0(unused) wIndex=bInterfaceNumber wLength=6(sizeof(XDCS_DVD_CODE_INFORMATION))REQUEST_GET_ROM_FILE_INFO bmRequest=1100001b   (USB_DEVICE_TO_HOST|USB_VENDOR_COMMAND|   USB_COMMAND_TO_INTERFACE) bRequest=2(XDCS_REQUEST_GET_ROM_FILE_BLOCK) wValue=开始传送的块号码(每块为1024字节) wIndex=bInterfaceNumber wLength=要获得的字节数(可能超出1K)]]></pre>这两种命令协议是十分有效和极其快速的。随着使用OHCI USB系统和最佳的USB堆栈,该协议便于速率大致为1兆字节每秒的数据传送。在1K块大小时,8字节的SETUP包和状态包是不重要的。
代码伺服器270提供可以用来下载全部内容的无状态的检索机制,或者它能检索用于抽检内容的单独部分。协议可以用来随机存取硬件平台上使用开放式主控制器(Open Host Controller)标准的只读存储器。
代码伺服器270装有用于从道尔芯片获取代码图像的无状态API。API提供对ROM尺寸和版本的存取,同时便于将任何或全部DVD重放码610同步或异步地传递到缓冲器中。在同步模式中,调用程序请求代码610的选定字节,并且等待字节到达。这种方式中断操作,直到请求码被下载或者直到产生错误。在异步模式中,硬件以很少的中断完成该项工作。主软件线程的操作可以继续执行任务,而等待下载完成。
代码伺服器API的一种实现定义了三种接口。第一种接口称为“XDCSGetInformation”,它被调用以获得DVD重放码610的尺寸和版本。第二种接口称为“XDCSDownloadCode”,它被调用以从使用同步模式的道尔芯片150中下载代码。第三种接口称为“XDCSDownloadCodeAsync”,它被调用以从使用异步模式的道尔芯片150中下载代码。
<pre listing-type="program-listing"><![CDATA[typedef struct XDCS_DVD_CODE_INFORMATION{ WORD bcdVersion; //XDCS设备中代码的经二进制编码的十进制形式。DWORD dwCodeLength;//以字节为单位的XDCS设备上的代码长度。}XDCS_DVD_CODE_INFORMATION,*PXDCS_DVD_CODE_INFORMATION;DWORDXDCSGetInformation(IN DWORD dwPort,OUT PDWORD pdwDeviceInstance,  OUT PXDCS_DVD_CODE_INFORMATION pDvdCodeInformation  );]]></pre>例程描述获得端dwPort中的XDCS设备(例如,道尔芯片150)上代码的大小和版本.参数[IN]dwPorts —期望设备的端口[OUT]pdwDeviceInstance —通过XDCSDownloadCode或XDVSDownloadCodeAsync访问设备的句柄[OUT]pDvdCodeInformation —关于设备上代码的信息返回值成功-ERROR_SUCCESS失败-An error from winerror.h.说明使用句柄而非端口来保证当代码被下载时,这是与该函数返回信息所用的代码相同的代码。否则,用户可能会(尽管未必)移去该设备并在调用XDCSGetInformation以及或XDCSDownloadCode或XDCSDownloadCodeAsync之间插入一个不同的设备。如果发生这种情况,则pdwDeviceInstance会变得无效且后一个调用将失败并具有一个有意义误差。DWORDXDCSDownloadCode(DWORD dwDeviceInstance,PVOID pvBuffer,ULONG ulOffset,ULONG ulLength,PULONG pulBytesRead);例程描述从XDCS设备下载代码.参数[IN]dwDeviceInstance —从XDCSGetInformation获得的实例[OUT]pvBuffer—用于接收代码的指向缓冲器的指针[IN]ulOffset —离开开始下载的代码图像的起始处的偏移量[IN]ulLength —要读取的字节数[OUT]pulBytesRead—实际读取的字节数返回值成功-ERROR_SUCCESS失败-An error from winerror.h.说明该方法中断,直到所请求的代码被下载或者出错才结束中断.
<pre listing-type="program-listing"><![CDATA[typedef struct XDCS_ASYNC_DOWNLOAD_REQUEST{  DWORD dwDeviceInstance;//[IN]获得信息所用的设备的实例.  PVOID pvBuffer;//[IN]接收代码的缓冲器的指针  ULONG ulOffset;//[IN]离开开始下载的代码图像的起始处的  偏移量ULONG ulLength;//[IN]要读取的字节数  ULONG pulBytesRead;//[OUT]读取的字节数  ULONG ulStatus;//[OUT]当传送完成或出错时,下载状态从   ERROR_PENDING或ERROR_SUCCESS或来自   winerror.h的错误转变  HANDLE HcompleteEvent; //[IN\OUT]当异步请求完成时要被通知的事   件。在调用程序必须查询ulStatus来确定   何时完成操作的情况下,表目可能为空。}XDCS_ASYNC_DOWNLOAD_REQUEST,*PXDCS_ASYNC_DOWNLOAD_REQUEST;DWORDXDCSDownloadCodeAsync( IN OUT PXDCS_ASYNC_DOWNLOAD_REQUEST pXDCSDownloadRequest );]]></pre>例程描述从XDCS设备下载代码.参数[IN\OUT]pXDCSDownloadRequest—异步请求中断返回值成功-ERROR_SUCCESS失败-An error from winerror.h.说明使用该方法来获取代码而不中断当前的线程。
操作图8给示了用于初始化游戏系统100上的DVD重放的启动过程800。将参考图2、6和7中描述的道尔芯片和游戏控制台的实现来描述该过程。过程800可以用软件、固件和/或硬件来实现。在软件和估计的情况下,过程800呈现一组操作,它们可以作为可由一个或多个处理器执行的计算机可执行指令来实现。
在程序块802处,或当用户将光盘装入游戏控制台的托架中时、或当观众将道尔芯片150插入槽110中时,该过程开始。一旦过程800开始,则将检验两个条件。在程序块804中,游戏控制台确定托架中的光盘是否是DVD影片。光盘可能包括其它内容,譬如音频CD或游戏光盘。假如它不是DVD影片(即,来自程序块804的“否”分支),过程结束。
假如光盘是DVD影片(即来自程序块804的“是”分支),游戏控制台确定是否联接道尔芯片150(程序块806)。道尔芯片150需要被插入到槽110中,使DVD影片能重放。假如不存在道尔芯片(即来自程序块806的“否”分支),则游戏控制台显示一条表示需要道尔芯片来使能DVD影片重放的出错信息,并且提醒用户插入道尔芯片(程序块808)。短暂的延迟跟随在该信息之后以使用户能插入道尔芯片或者移去DVD媒体(程序块810)。延迟之后,过程重复测试托架中的DVD媒体(程序块804)以及道尔芯片是否存在(程序块806)。
假定在托架中的盘是DVD影片(即,来自程序块804的“是”分支)并且存在道尔芯片(即,来自程序块806的“是”分支),则游戏控制台初始化下载过程(程序块812)。有不同的方法来实现将DVD-使能功能从道尔芯片150下载到游戏控制台102的过程。一种方法是每次在道尔芯片被插入游戏控制台时下载DVD重放码610。另一种方法是在道尔芯片150首次被插入时下载DVD重放码610,然后将全部或一部分重放码存储到游戏控制台的非易失性存储器中。实现方法的选择涉及某些设计考虑和费用折衷。这些选择将在下面作更详细的描述。
选择1每次下载图9给示了每次当道尔芯片150被插入控制台槽位110时下载DVD重放码610的过程900。将参考图2、6和7中描述的道尔芯片和游戏控制台的实现来描述该过程。只要合适,操作被排列在标题之下以显示哪个设备会执行它们。过程900可以由软件、固件和/或硬件来实现。
在程序块902和904中,游戏系统可以选择性地实现验证协议来彼此验证游戏控制台和道尔芯片。游戏控制台102和道尔芯片150交换密钥或者其它数据,这使每一部件能验证另一部件的可靠性。验证协议可以基于加密技术,譬如公用密钥交换或者数字签名。验证可以在道尔芯片每次被连接时执行。该验证是可选择的。另一方面,安全性可以仅仅基于游戏控制台的能力,当存储在道尔芯片上的代码被下载到游戏控制台时对代码进行验证。代码被数字签名,然后用公—私密钥对的私有部分对其加密。按照代码被下载那样,游戏控制器验证代码的有效性就像属于由加密代码和验证签名来验证道尔芯片那样。
在程序块906中,游戏控制台获得DVD重放码610的长度/版本信息,它存储在道尔芯片150的ROM608中。它可以由其方法用代码伺服器270来解释,调用XDCSGetInformation来完成。用响应REQUSET_GET_ROM_FILE_INRO命令来获得代码图象中的代码版本和长度。在程序块908中,道尔芯片固件614从启动存储在ROM608中的ROM图象来读版本和长度。道尔芯片将这些参量返回到游戏控制台102(程序块910)中去。
在程序块912中,游戏控制台102请求DVD重放码610的一个或更多个详细说明模块。游戏控制台可能请求所有的代码或它的一部分。这个请求可能由调用以下的一种方法来执行,即调用XDCSDownloadCode或XDCSDownloadCodeAsync,这取决于是否优先考虑同步或异步下载。代码伺服器270响应该调用而发出XDCS_REQUEST_GET_ROM_FILE_BLOCK命令来访问存储在ROM608中的ROM图像内部的任何预定尺寸的代码块。在程序块914和916中,道尔芯片固件614检索指定的块并且将这些块返回游戏控制台。
在程序块918中,装入程序272在游戏控制台接收代码块时对其解密。装入程序272可能进一步验证代码上的任何数字签名以确认该代码是可靠的。经解密的代码块被存储在易失性RAM206中(程序块920)。在程序块922中,游戏控制台确定是否已经从道尔芯片中下载所有期望的代码块。假如没有(即来自程序块922的“否”分支),则游戏控制台请求一个或多个附加代码块。
假如所有代码块已经被下载(即来自程序块922的“是”分支),则游戏控制台执行存储在RAM206中的DVD重放码。通过执行,游戏控制台呈现一个影片重放用户界面(UI),它允许观众控制游戏控制台的操作,就当它是一台DVD放映机。
选择2下载一次并且存储图10给示了用于在道尔芯片150首次被插入控制台槽位110时下载DVD重放码610、并且将该代码存储在游戏控制台中的非易失性存储器中的过程1000。只要合适,操作排列在标题之下以显示哪一个设备可以执行它们。过程1000可以由软件、固件和/或硬件来实现。
在程序块1002和1004中,游戏系统可以选择性地实现验证协议来互相验证游戏控制台和道尔芯片。在程序块1006中,游戏控制台确定这是否是道尔芯片第一次被插入游戏控制台。假如是(即,来自程序块1006的“是”分支),则游戏控制台从道尔芯片150下载DVD重放码610(程序块1008和1010)。该下载可以用API和双命令协议来实现,如图9中程序块906-916所述。
当代码被接收时,装入程序272将代码解密(程序块1012)并且将该代码永久性存储在诸如存储硬盘驱动器208上的分区这样的非易失性存储器中(程序块1014)。在程序块1016中,游戏控制台执行存储在非易失性存储器中的DVD重放码以使能DVD影片的重放。假如道尔芯片被移走,则代码仍旧被存储在游戏控制台中。
回过头参考程序块1006,假如随后再次联接道尔芯片并且从而该联接不再是首次(即,来自程序块1006的“否”分支),则游戏控制台请求来自道尔芯片的随机选择的代码块(程序块1018)。道尔芯片固件检索代码块并且将其返回游戏控制台(程序块1020)。游戏控制台将检索到的代码块和存储在非易失性存储器中的相同代码块相比较。假如二者相匹配(即,来自程序块1024的“是”分支),则代码和道尔芯片被验证。于是,游戏控制台执行存储在非易失性存储器中的DVD重放码以使能DVD影片的重放(程序块1016)。假如代码部分不匹配(即,来自程序块1024的“否”分支),则游戏控制台呈现一条出错信息并且通过不执行DVD重放码本地存储的拷贝来禁止重放。
结论虽然已经描述了本发明特定的结构特性和/或方法行为,然而可以理解,所附权利要求中定义的本发明不必要被限制在所描述的特定的特征或行为内。相反,这些特定的特征和行为作为实现本发明的示例性形式被揭示。
权利要求
1.一种基于控制台的游戏系统,其特征在于包括游戏控制台,带有存储器和用来读光盘的光盘驱动器;与游戏控制台分开、但操作上可耦合的道尔芯片,道尔芯片存储DVD重放码以使游戏控制台的光盘驱动器中装载的DVD影片能重放;以及软件,在游戏控制台上被执行时检索来自道尔芯片的DVD重放码并将DVD重放码装载到游戏控制台的存储器中。
2.如权利要求1所述的基于控制台的游戏系统,其特征在于,所述存储器包括易失性存储器,并且软件被存储在易失性存储器中。
3.如权利要求1所述的基于控制台的游戏系统,其特征在于,所述存储器包括非易失性存储器,而软件被永久性地存储在非易失性存储器内。
4.如权利要求1所述的基于控制台的游戏系统,其特征在于,所述道尔芯片经过通用串行总线(USB)耦合到游戏控制台,同时软件便于经过USB传送DVD重放码。
5.如权利要求1所述的基于控制台的游戏系统,其特征在于,所述软件用于请求DVD重放码的单独部分。
6.如权利要求1所述的基于控制台的游戏系统,其特征在于,所述软件包括代码伺服器,用于请求来自道尔芯片的DVD重放码并且便于通过道尔芯片和游戏控制台之间的接口来传送DVD重放码;以及装入程序,解密DVD重放码并且将DVD重放码存储到存储器中。
7.一种用于运行存储在光存储磁盘上的游戏的游戏控制台,其特征在于包括用来读光存储磁盘的光盘驱动器;非易失性存储器;耦合到非易失性存储器和光盘驱动器的处理器;以及存储在存储器中并可在处理器上执行的代码伺服器程序,代码伺服器程序用于当外部设备操作上耦合到游戏控制台时请求来自外部设备的DVD重放码,并且便于从外部设备到游戏控制台的DVD重放码的传送,从而当DVD影片由光盘驱动器读取时使能游戏控制台上的DVD重放。
8.如权利要求7所述的游戏控制台,其特征在于,所述DVD重放码被加密,并且还包括用于解密DVD重放码的装入程序。
9.如权利要求7所述的游戏控制台,其特征在于,所述DVD重放码被存储在非易失性存储器中。
10.如权利要求7所述的游戏控制台,还包括易失性存储器,其特征在于,所述DVD重放码被存储在易失性存储器中。
11.如权利要求7所述的游戏控制台,其特征在于,所述代码伺服器程序带有应用程序接口,它具有执行下列功能的方法获得DVD重放码的尺寸和版本;将DVD重放码同步传送到游戏控制台;以及将DVD重放码异步传送到游戏控制台。
12.如权利要求7所述的游戏控制台,其特征在于,所述代码伺服器程序用于请求并传送DVD重放码的单独部分。
13.一种包括计算机可执行指令的计算机可读媒体,当由基于控制台的游戏系统执行时,指导基于控制台的游戏系统以从联接到游戏系统的外部设备请求DVD重放码;以及便于经过外部设备和游戏系统之间的接口来传送DVD重放码。
14.如权利要求13所述的计算机可读媒体,其特征在于还包括计算机可执行指令,它们在由基于控制台的游戏系统执行时指导基于控制台的游戏系统将DVD重放码存储在非易失性存储器中。
15.如权利要求13所述的计算机可读媒体,其特征在于还包括计算机可执行指令,它们在由基于控制台的游戏系统执行时指导基于控制台的游戏系统将DVD重放码存储在易失性存储器中。
16.如权利要求13所述的计算机可读媒体,其特征在于,所述DVD重放码经过预加密,并且该媒体还包括计算机可执行指令,它们在由基于控制台的游戏系统执行时指导基于控制台的游戏系统对DVD重放码进行解密。
17.如权利要求13所述的计算机可读媒体,其特征在于还包括计算机可执行指令,它们在由基于控制台的游戏系统执行时指导基于控制台的游戏系统来验证外部设备。
18.一种基于控制台的游戏系统,其特征在于包括如权利要求13所述的计算机可读媒体;以及用来执行计算机可执行指令的处理器。
19.一种用于经过通用串行总线(USB)将代码从外部设备传送到主设备的协议,其特征在于包括第一命令,检索存储在外部设备上的存储器中的代码图像的代码版本和尺寸,代码图象具有预定尺寸的代码块;以及第二命令,访问一个或多个预定尺寸的代码块,并且便于将一个或多个预定尺寸的代码块传送到主设备上。
20.如权利要求19所述的协议,其特征在于,第一命令带有如下定义的SETUP包COMMAND NAMEbmRequest=1100001bbRequest=1wValue=0wIndex=bInterfaceNumberwLength=6
21.如权利要求19所述的协议,其特征在于,第二命令带有如下定义的SETUP包COMMAND NAMEbmRequest=1100001bbRequest=2wValue=block number to start transferwlndex=bInterfaceNumberwLength=number of bytes to get
22.一种用于基于控制台的游戏系统中的应用程序接口,应用程序接口被包含在计算机可读媒体上并且具有执行下列功能的方法获得DVD重放码的尺寸和版本,它们被存储在操作上耦合到基于控制台的游戏系统的外部设备上;将DVD重放码同步传送到游戏控制台;将DVD重放码异步传送到游戏控制台;以及其中,当DVD重放码被传送并被存储在基于控制台的游戏系统中时,基于控制台的游戏系统能够执行DVD重放。
23.在基于控制台的游戏系统中的一种方法,该系统带有游戏控制台以及能交替地被联接到游戏控制台或从中被卸下的外部设备,该方法的特征在于包括请求存储在外部设备上的DVD重放码;以及便于将存储在外部设备上的DVD重放码传送到游戏控制器;以及执行游戏控制台上的DVD重放码以使基于控制台游戏系统中能够重放DVD影片。
24.如权利要求23所述的方法,其特征在于还包括用高级总线协议来支持所述的请求和便于的操作。
25.如权利要求23所述的方法,其特征在于,所述请求包括获取DVD重放码的尺寸和版本;以及请求DVD重放码的一个或多个代码块。
26.如权利要求23所述的方法,其特征在于还包括,将DVD重放码存储在游戏控制台上的易失性存储器中。
27.如权利要求23所述的方法,其特征在于还包括,验证外部设备。
28.一种用于操作基于控制台的游戏系统的方法,其特征在于包括获得存储在外部设备上的DVD重放码的尺寸和版本,该外部设备操作上耦合到基于控制台的游戏系统,DVD重放码被加密;请求DVD重放码的一个或多个代码块;接收DVD重放码的一个或多个代码块;解密DVD重放码的一个或多个代码块;存储DVD重放码的一个或多个代码;以及执行DVD重放码。
29.如权利要求28所述的方法,其特征在于,所述存储包括将DVD重放码存储在易失性存储器中。
30.如权利要求28所述的方法,其特征在于还包括验证外部设备。
31.基于控制器的游戏系统中的一种方法,该系统带有游戏控制台以及能够交替地联接到游戏控制台或从中被卸下的外部道尔芯片,该方法的特征在于包括响应外部道尔芯片第一次被联接到游戏控制台,从外部设备道尔芯片将DVD重放码下载到游戏控制台;将DVD重放码存储在非易失性存储器中;执行DVD重放码,以使能基于控制台的游戏系统上的DVD影片重放;响应外部道尔芯片在第一次之后随后被联接到游戏控制台,检索存储在外部道尔芯片上的DVD重放码的一部分;将DVD重放码的这部分与存储在非易失性存储器中的DVD重放码的相应部分相比较;以及如果这两部分匹配,则执行DVD重放码以使在基于控制台游戏系统上能够重放DVD影片。
全文摘要
外部道尔芯片可被联接到基于控制台的游戏系统,以便于在游戏系统上重放DVD影片。道尔芯片存储DVD重放码。游戏系统执行便于将代码从道尔芯片传送到游戏系统的软件。该软件应用高级总线协议来支持经过通用串行总线(USB)的传送,并且带有应用程序接口以调用协议。
文档编号G06F3/08GK1469293SQ0314238
公开日2004年1月21日 申请日期2003年6月4日 优先权日2002年6月5日
发明者M·S·德尼斯, S·昌巴伊, G·L·戈登, M S 德尼斯, 戈登, 鸵 申请人:微轮公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1