`Roskowski et a].
`
`[54] VIDEO GAME ENHANCER WITH
`INTERGRAL MODEM AND SMART CARD
`INTERFACE
`
`[75] Inventors: Steven G. Roskowski. San Jose;
`Stephen 9 Perlman- Mountain VieW-
`both of Calif.
`
`[73] Assignee: Catapult Entertainment Inc.
`Cupertino. Calif.
`
`[21] Appl. No.: 254,154
`
`USOO56243 16A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,624,316
`Apr. 29, 1997
`
`5,291,189
`
`3/1994 Otake et a1. .......................... .. 340/799
`
`FOREIGN PATENT DOCUMENTS
`
`0402067 6/1990 European Pat. O?. .
`0431770 10/1991 European Pat. O?‘_ ‘
`0571213 5/1993 European Pat. on. .
`0571138 5/1993 European Pat. 01f. .
`9323125 11/1993 United Kingdom .
`
`Primary Examiner—Jessica Harrison
`AssistantExaminer-Michael O’Neill
`[57]
`ABSTRACT
`
`Jun‘ 6’ 1994
`[22] Flled'
`[51] Int. Cl.6 ...................................................... .. A63F 9/24
`[52] US. Cl. ............................................... .. 463/45; 463/41
`[58] Field of Search ................................... .. 273/433. 436.
`273/439_ DIG 23‘ 148 13; 364/410_ 411;
`463/45_ 41
`
`A video game enhancement system for modifying and
`enhancing the operation of a video game is disclosed. The
`system includes: 1) a Processor interface for coupling the
`Video game enhancement system with 11 Processor; 2) a
`memory interface for coupling the video game enhancement
`system with a ?rst memory having executable game logic
`residing therein; 3) a second memory having executable
`enhancement logic residing therein; and 4) control logic
`including: a) logic for detecting an access to a patch address
`by the processor; b) logic for directing the processor to
`U-S- PATENT DOCUMENTS
`access an exception region in the second memory upon
`5,1935 Kessler.
`4,518,823
`detection of the access to the patch address. the access to the
`5/1935 we11 _
`4,520,477
`exception region causing activation of an exception mode;
`2/1986 Mattheson ................. .. 273/DIG. 28 X
`4,570,930
`2/1986 Sitzick ....... ..
`273/DIG. 28 X and c) redirection logic for redirecting memory accesses by
`4,572,509
`6/ 1986 Fascenda et a1. .
`......... .. 273/1 E
`the processor from the ?rst memory to the second memory
`4,592,546
`1/1939 Nakagéwa
`364/900
`for a plurality of memory accesses upon activation of the
`4,799,635
`2/1990 Wledmler '
`exception mode, the processor thereby executing a portion
`41905 ,280
`2,980,897 12/1990 Decirer et a1. .......................... .. 375/38
`of the executable enhancement 10 gi c‘ Th e thc control logic
`998,199 3/1991 Tashiro et a1. .
`.
`.
`5,013,033
`5/1991 Luxenberg m1. .................. .. 273/439
`°f 1h‘? V1d°° giFne enhancement systcl“, ‘115° Includes: 5)
`5,048,831
`9/1991 Sides ‘
`log1c for detectlng an access to a trans1t1on address by the
`395/575
`5,070,479 12/1991 Nakagawa
`processor; 6) logic for directing the processor to terminate
`5,083,800
`1/1992 Lockton ................................ .. 273/439
`the exception mode upon detection of the access to the
`5,112,051
`5/1992 Darling et a1. .
`transition address; and 7) the redirection logic further
`.................. .. 273/439
`5,120,076
`6/1992 LllXCllbCI'g 6t
`includes logic for redirecting memory accesses
`the pro.
`5,155,768 10/1992 Matsuham ---------- --
`cessor from the second memory to the ?rst memory upon
`giggggg 1583i loll/Lara; ........................... .. 273/435
`tarm'inaFion of th? exception mode_ the procassqr thereby
`5:1 841282
`2,1993 Kaneda a a1. .
`contmumg executlon of the executable game log1c.
`5,203,848
`4/1993 Wang .
`5,282,621
`2/1994 Tsing .
`
`[56]
`
`References Cited
`
`18 Claims, 21 Drawing Sheets
`
`Petitioners Ex. 1005 Page 1
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 1 0f 21
`
`5,624,316
`
`._
`1\ -
`"
`
`ATTACK OF THE
`MUTANT SLUGS
`
`-
`
`EXISTING GAME
`CARTRIDGE
`
`m\/
`
`FEMALE EDGE-
`CARD CONNECTOR
`
`/ 3
`
`MALE EDGE
`CARD CONNECTOR
`
`TELEPHONE m PHONE
`
`OUTLET
`
`' JACK
`
`.
`-' w ',
`ZSMART‘CIARP. —"
`.
`16/,
`
`s’
`
`14
`
`E] /*
`
`,4
`
`lMPROVED
`VIDEO GAME
`ENHANCER
`
`-‘ -' " “21:5:
`MALE EDGE
`CARD CONNECTOR
`
`‘
`
`/ 6
`
`FEMALE EDGE-
`CARD CONNECTOR
`
`12
`/
`
`.
`
`.
`
`TELEVISION
`
`OUTLET
`
`1
`
`'
`-, VIDEOGAME -
`-' (l) . ‘CONSOLE -
`
`CONTROLLER
`
`Petitioners Ex. 1005 Page 2
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 2 0f 21
`
`5,624,316
`
`ROM
`
`20
`\ ICS
`A
`
`RAM
`(0PT.)
`ICS
`‘
`
`21
`/
`
`1\
`EXISTING GAME
`
`23\
`
`>|___ ADDR DECODE
`\
`P .
`1‘
`22 (O T)
`
`9:*R_T_Hlll5E___{________I _ _ _ _ _ _ _ _ _ _ _ _ _ _ ___.
`
`G
`C
`I ARTRID E
`9
`
`I
`
`)9
`[15h
`
`24
`/
`
`/ _
`’
`'
`
`MODEM
`
`225
`
`2s
`0AA I__|:|/
`
`‘7, >
`108 TX RX CLK
`A
`II
`'7
`47 4a" 49‘ /29
`
`PHONE
`JACK
`
`27
`/
`
`28
`/
`
`43
`I
`T-ll
`
`Fl
`
`f ICS
`HAM
`
`,as
`P0
`I___>.I
`LOCAL
`ADDH
`
`I
`
`’
`
`’ ROM
`‘1C8
`
`\ 39
`
`.
`
`, E
`‘ I :
`‘ I
`7
`
`AS'C
`
`“5
`
`’>/SYSTEM_RESET
`> IENHANCEFLCS
`4o
`/
`
`IMPROVED
`VIDEO GAME/4
`ENHANCER
`
`,
`
`I
`
`45
`\
`SMART
`CARD <
`INTERFACE
`
`44\
`
`T Eggs?
`
`31\
`
`GAME’
`CONSOLE
`
`SYSTEM
`ADDR
`BUS
`
`41\
`
`_Vl_5E(-)_;—_l___~__~l - — - - ' " - - - - " - - — "
`
`SYSTEM
`DATA
`BUS
`
`_
`
`/42 ,
`I
`
`DMA
`DEVICES
`
`‘
`I“
`>
`
`< ,1
`
`32/
`
`34\
`
`4 ,’ >
`/35
`
`CPU
`
`33/
`
`Petitioners Ex. 1005 Page 3
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 3 0f 21
`
`5,624,316
`
`50‘
`71
`'///IS I 1 I I I I I I 7 11.7
`//i J 1 I 1 1 1 1 1 1 11 %
`
`I I I I I I I I I I I I l I I I I It
`
`I I I I I I l I I I I I l I I I I ll
`
`p \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
`l I I I I I f I I I I I I I I (I
`
`I I I I o r v v 1 r 1 a a p 1 I I I)
`\ \ \ \ 8 \ \ \ \ \ \ \ \ \
`\ \\
`I I I I I I I I I I I I I I l I I II
`\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\
`
`w
`
`1
`
`171111111111
`
`51
`
`DIHEC
`
`\\\\\\\\\\\}\\}\\\\\\\\\\\\\\\\\
`§\\\\\\\\\\\\\\\\\\\\\\\\\\\\
`
`OM REGION
`
`55
`
`\\\\\\\\\\\\\\\\\\\\\\\\\\R
`DIRECT_ROM_HEGION mm
`V W %DIRECT_RAM_REGIO %
`/
`N/
`62
`11/11/////////m/////////1//// %
`CARTRIDGE DISABLED
`ADDRESS MAP
`(AFrER RAM/ROM SWAP)
`
`CARTRIDGE DISABLED
`ADDREss MAP
`(UPON RESET)
`
`I
`
`I = CONTROL REGISTER REGION
`
`FIG. 3
`
`Petitioners Ex. 1005 Page 4
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 4 0f 21
`
`5,624,316
`
`70 \
`
`YIW/SQFITCLHP'APPBMfA
`
`r III I 4 v I r 4 I 1 r r Ir
`\ \ \ \ \ ~ ~ \ \\
`
`/ [/l / //
`
`71///scRATc|-1PA6 RAM7A
`
`7
`
`RTRIDGE ROM
`
`CARTRIDGE ROM
`
`ALL REGIONS DISABLED
`
`78
`
`Illlll’l(It'll/IllIIIIIIIIIIIIIIIIIII ‘
`
`EXCEPTION REGION
`ENABLED
`
`71 V/Asfcnmcuégg 155157 A
`
`IIIIJ
`
`r
`
`,
`
`I
`
`1
`\
`I:
`s
`I a I r 1 r I!
`
`I
`
`4 I a ¢ I r I 4 a z a I I I a 1 4r
`
`82
`
`RAM_CDDE_REGION
`CARTRIDGE ROM\
`
`EXCEPTION AND RAM_CODE
`REGIONS ENABLED‘
`
`99
`
`88
`
`DMA_X_REGION
`
`DMA_X_REGION
`
`k\\\\\\\\\\\\\\\‘ —_
`105
`ROM_CODE_REGION
`
`73
`
`1
`
`CARTRIDGE ROM
`
`EXCEPTION, DMA_X
`REGIONS ENABLED
`
`82
`
`RAM_COQDE_REGIDN
`CARTRIDGE ROM
`
`BCCEPTION, DMA_X,
`RAM_CODE REGIONS
`ENABLED‘
`
`78 llIltlllllll‘l’lllllllllllIIIIIIIIIIII'
`EXCEPTION, DMA X.
`RAM_CODE, ROM_CODE
`REGIONS ENABLED‘
`
`= EXCEPTION REGION
`:2: = CONT HOL REGISTER REGION
`
`FIG. 4
`
`Petitioners Ex. 1005 Page 5
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 5 0f 21
`
`5,624,316
`
`SYSTEM
`ADDRESS
`BUS
`(Av-A23)
`
`ENHANCEH
`-cs
`
`130
`
`131
`
`16ADDHESS
`COMPAHATOHS
`
`PATCH_ADDRESS_NUMBER
`
`16-INPUT
`OR GATE
`
`16-INPUT
`ENCODER
`
`ENABLE_PATCH_ADDRESS 137
`
`PATCH_ADDHESS
`
`FIG. 5
`
`Petitioners Ex. 1005 Page 6
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 6 0f 21
`
`5,624,316
`
`SYSTEM
`ADDRESS
`BUS
`(AG-A23)
`
`141
`I
`
`ENHANCER
`_CS
`146
`
`142
`\
`
`SRAM CODE END '
`_____‘____‘___'
`I AND
`2 RAM_CODE__START:
`
`143
`V
`RAM_CODE_REG1ON_ENABLED?
`
`151
`
`153
`
`RAM_CODE_REGION
`
`S ROM_CODE_END '
`---------- - "1 AND 1“
`> 164 ‘52
`2 ROM_CODE_START:
`ROM__CODE_HEG|ON_ENABLED—W
`s 0MA_X_END
`;
`
`ROM_CODE_HEGION
`'
`
`_ _ _ _ _ . . _ . _ - - , AND 145
`
`> 155 H153 DMA_X_REGION
`
`2 DMA_X_STAHT :
`S DMA_Y_END
`:
`
`DMA_X_FIEGION_ENABLED_1TQ—P'
`
`_ _ _ _ _ _ _ . . _ .. _ I AND 146
`
`> 155 ‘54
`
`DMA_Y__REG|0N
`
`2 DMA_Y_STAHT :
`4 ADDRESS
`RANGE
`COMPAHATORS
`
`RAM_CODE_REGION
`ROM_CODE_REGION
`PATCH_ADDRESS
`DMA_X_REGION
`DMA_Y_REGION
`
`DMA__Y_HEGION_ENABLEDT
`
`PRIORITY
`ENCODER
`
`ADDHESS_REGEON
`
`PATCH_ADDRESS_VALID
`
`ADDRESS_REGION
`
`ADDRESS REGION NAME
`
`0
`1
`2
`a
`4
`s
`
`IN_RAM_CODE_HEG1ON
`IN__ROM_CO0E_HEGION
`PATCH_ADDRESS_REGION
`IN_DMA_X_REGION
`IN__DMA_Y_REGION
`NOT_IN_ENABLED_REGIONS
`
`FIG. 6
`
`Petitioners Ex. 1005 Page 7
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 7 0f 21
`
`5,624,316
`
`171 \ DMA x souRcE REGION
`
`1
`
`;
`, 172
`:’
`
`‘75 ‘~ DMA x DESTINATION REGION
`
`ADDREss MAP
`FROM CPU'S
`PERSPECTIVE
`
`I
`; 176
`:/
`
`ADDREss MAP
`FROM ENHANCER
`RAM/ROMS PERSPECTIVE
`
`173
`i
`\
`:
`' * DMA_X_ START (HIGH & MID)
`
`I
`I
`'
`
`1
`71
`DMA_X_DESTINATION__START
`
`178_
`0
`
`179
`OTHER sOuRcE /
`REGION sTARTs
`/
`V
`
`I 2
`8
`
`164 + WK
`/
`4v
`ADDHESS_REGION
`
`189
`SYSTEM ,
`ADDREss
`BUS
`
`1'
`181
`
`186\
`—
`
`181
`OTHER DESTINATION/
`REGION sTARTs
`/ i
`II
`
`MUX
`
`‘J83
`
`180‘
`0
`
`._>
`4/
`
`‘190
`LOCAL
`ADDREss
`BUS
`
`>\1196
`19‘ /
`(A1-A4)
`w
`PATcR_ADDREss_NuMaER__/1—95_>
`I
`
`198
`
`PATCH_ADDRESS_VAUD
`NOTES:
`1. FOR THE SAKE OF CLARITY, ONLY DMA_X REGION REGISTERS ARE SHOWN. THERE ARE ALSO IDENTICAL
`REGISTERS FOR DMA_Y, RAM_CODE, ROM__CODE, AND PATCH_ADDRESS (DESTINATION) REGIONS.
`ADDRESS_REGION SELECTS FROM WHICH REGION START REGISTERS ARE USED.
`2. IF ADDRESS_REGION = NOT_IN_ENABLED_REGIONS, THEN 0 IS SELECTED, THEREBY TRANSFERING THE
`SYSTEM ADDRESS BUS TO THE LOCAL ADDRESS BUS WITHOUT TRANSLATION.
`'
`
`FIG. 7
`
`Petitioners Ex. 1005 Page 8
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 8 of 21
`
`5,624,316
`
`SYSTEM
`ADDRESS
`BUS
`(A8-A23)
`
`ENHANCER
`_CS
`
`235
`
`200
`
`$201
`
`Angagss
`DECODEHS
`
`D|RECT_RAM_REGION
`
`DlHECT_ROM_REGlON
`
`\
`
`DlRECT_ROM_SWAPPED SYSTEM
`
`/CAF{TFHDGE_ENABLED
`
`209
`
`DlRECT_RAM__REGION
`
`D|RECT_FlOM_REG!ON
`
`DlRECT_HEGlSTERS_FlEGl0N
`
`D|F!ECT_EXCEPTION_REG|ON
`
`D|RECT_FlAM_SWAPPED
`
`ENHANCER
`-03
`
`ADDRESS
`BUS
`(A8-A23)
`
`RAM/FlOM_SWAP
`
`
`
`= ROM_CODE_END
`
`ADDRESS
`COMPARATOR
`
`FlOM_CODE__REGION_ENABLED
`
`
`
`
`D!FlECT_REG|STERS_REG|0N
`
`FlEGlSTERS_ENABLED
`
`DlFlECT_EXCEPTlON_REGlON
`
`SYSTEM
`ADDRESS BUS
`(A3-A7)
`
`°'F‘ECT—EXCE‘°“0“-“EG'°N EXCEPTlON_REGl0N_ACCESS
`
`fFlEGlSTERS_ENABLED
`
`FIG. 8
`
`Petitioners Ex. 1005 Page 9
`
`Petitioners Ex. 1005 Page 9
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 9 of 21
`
`5,624,316
`
`DIRECT_RAM_SWAPPED
`EXCEPTION_REGION_ACCESS
`DMA_X_REGION
`DMAQQREGION
`RAM_CODE_REGION
`
`DfRECT_HOM__ENABLED
`HOM_CODE_REGION
`
`IREGISTERS_ENABLED
`
`MAM-C5
`/ROM_CS
`ENHANCER_CS
`
`M_CS
`
`—CS
`
`mmoegcs
`
`\ 261
`REGISTERS_ENABLED 1511-»-
`ISYSTEM ADDRESS BUS (A7) LE]
`
`#MODEM cs
`'
`
`REGISTERS_ENABLED 351-» 264 \ 255
`SYSTEM ADDRESS BUS (A7)
`'_J
`
`> REGISTEHiCS
`
`‘INTERNAL SIGNAL
`
`FIG. 9
`
`Petitioners Ex. 1005 Page 10
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 10 of 21
`
`5,624,316
`
`SYSTEM
`AD F!
`§U§S'°‘
`(A0«A23)
`271
`
`ENHANCER
`-95
`270
`
`272
`\
`
`=TRANSl‘l10N_ADDRESS
`
`273
`
`4
`
`295
`
`ADDRESS
`COMPARATOR
`
`TFlANSlTlON__ENABLED
`
`SYSTEM_RESET ‘ff
`
`/ENHANCEFLENABLED
`
`2% -
`
`'f
`SYSTEM_RESET
`ENHANCERJENABLED '
`
`297
`
`DECREMENT_EXCEPT|ON_COUNTER
`
`CLEAR_EXCEPTlON_COUNTER
`
`253
`
` ENABLE_CARTRIDGE
`
`23‘ : 933
`
`"
`
`23‘
`
`CARTRIDGE_ENABLED
`
`TFIlGGEFlED_DECFlEMENT
`
`TFflGGERED_CLEAR
`
`TRANSlT|ON_ENABLED
`
`0
`TRANSfTION_REGlSTEF(_WRlTE
`SYSTEM_HESET
`
`SYSTEM_HESET
`
`ENHANCER_CS
`
`FIG.
`
`IO
`
`Petitioners Ex. 1005 Page 11
`
`Petitioners Ex. 1005 Page 11
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 11 of 21
`
`5,624,316
`
`|
`UP £58551?
`EXCEPTION_REGION_ACCESS
`TRIGGERED_DECHEMENT W DOWN
`COUNT>0__3_9§_’_ EXCEPT|ON_MQDE
`CLEAR 307
`
`SYSTEM_HESET 30‘
`THIGGEREILCLEAH 305
`
`FIG. II
`
`Petitioners Ex. 1005 Page 12
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 12 0f 21
`
`5,624,316
`
`310
`65432IO/
`
`ADDRESS MAP CONTROL REGISTER
`
`0: RAM/ROM_SWAP
`1: ENABLE_EXCEPTION_REGION
`2: ENABLE__RAM_CODE_REGION
`3. ENABLE_ROM_CODE__REGION
`4. ENABLE_PATCH_ADDRESS
`5: ENABLE_DMA_X_FIEGION
`6: ENABLE_DMA_Y_REGION
`7: RESERVED
`
`O = ROM LOW, RAM HIGH
`0 = DISABLED, 1 = ENABLED
`0 = DISABLED, I = ENABLED
`0 : DISABLED. 1 = ENABLED
`0 = DISABLED, 1 = ENABLED
`0 = DISABLED, 1 = ENABLED
`O = DISABLED, 1 = ENABLED
`
`312
`DEPENDENCIES: /
`1.WHlLE OARTRIDGE_ENABLED = o. MEMORY IS MAFFED AS IF BITS 1-6 ARE DISABLED
`2. wHILE OARTRIDGE_ENABLED = 1, BIT o HAS NO EFFECT
`3. MM EXCEPTION_MODE = o, MEMORY IS MAPPED AS IF BITS 2 AND a ARE DISABLED
`
`313
`INI'I'IALIZA'I'ION UPON SYSTEM_RESET: /
`ALL BITS = 0
`
`314
`7654 210/
`
`TRANSITION CONTROL REGISTER
`
`o = DISABLED. 1 = ENABLED /315
`o = DISABLED, I = ENABLED
`o = DISABLED, 1 = ENABLED
`
`0: ENABLE_CARTRIDGE
`1: DECREMENT_EXCEPTION_COUNTER
`2: CLEAR__EXCEPTION_COUNT ER
`3: RESERVED
`4: SMART_CARD_TX_READY
`5: SMART__CARD_RX_READY
`61TX_FIFO_FULL (READ-ONLY)
`7: RX_FIFO_EMPTY (READ-ONLY)
`31s
`DEPENDENCIES: /
`1. wRITES TO TRANSITION CONTROL REGISTER SET TRANsITION_REGISTER_wRrIE FDR 1 CYCLE
`z sPEcIFIED TRANSITIONS DO NOT TAKE EFFECT UNTIL THE TRANsITION_ADDRESs Is AOOESSED
`
`0 = NOT READY, 1 : READY
`0 = NOT READY, 1 = READY
`0= NOT FULL. 1 = FULL
`0 = NOT EMPTY, 1= EMPTY
`
`INmALIZATION uPON SYSTEM_FIESET: /
`1. IF ENHANOER_ENABLE = I. SMART_OARD_TX_READY = I, OTHER BrIs = o
`2 IF ENHANOER_ENABLE = o, ENABLE_OARTRIDGE = 1, SMART_CARD_TX_READY = 1, OTHER BITS = o
`
`s17
`
`-
`
`318
`NOTE/
`THE ADDRESS MAP OONTROL REGISTER AND TRANSITION CONTROL REGISTER ARE
`ALWAYS MAPPED TO THE TOP OF THE EXCEPTION_REGION AND ARE THEREFORE
`ACCESSIBLE wHENEvER THE ExOEFTION_REGION IS ACCESSIBLE.
`
`FIG. l2
`
`Petitioners Ex. 1005 Page 13
`
`
`
`My» Wm
`Wu
`
`21
`
`ADDRESS_PATCH_0
`
`ADDHESS_PATCH__1
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 13 of 21
`
`5,624,316
`
`20
`
`ADDHESS_PATCH_DESTINATION_START
`
`I'" I 2 w %
`
`;
`
`HIESH
`l M30
`LCEW
`
`I
`
`1
`
`HIE-3H
`l MIID
`LQW
`
`l
`
`/
`
`ADDRESS_PATCH_15
`
`324
`/
`
`THANSH'ION_ADDRESS
`
`FIG. l3
`
`Petitioners Ex. 1005 Page 14
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 14 0f 21
`
`5,624,316
`
`30
`
`DMA__X_START
`
`DMA_X,_END
`
`DMA_X_DESTINATION_STAHT
`
`DMA__X_DESTINATION_END
`
`DMA__Y_START
`
`DMA_Y_END
`
`M 337
`M
`
`DMA__Y_DESTINATION_START
`
`DMA_Y_DESTINATION_END
`
`FIG. l4
`
`Petitioners Ex. 1005 Page 15
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 15 of 21
`
`5,624,316
`
`340
`/
`
`RAM_CODE_START
`
`}
`F1 342
`
`RAM__CODE_END
`
`RAM__CODE_D ESTINATION_START
`
`RAM_CODE_DESTINATION_END
`
`344
`
`ROM__CODE__START
`
`345
`
`ROM_CODE_END
`
`6
`
`HOM_CODE_DESTINAT1ON_START
`
`7
`
`ROM_CODE_DESTINATION__END
`
`FIG.
`
`l5
`
`Petitioners Ex. 1005 Page 16
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 16 of 21
`
`5,624,316
`
`357> TX_FIFO_FULL
`
`358
`
`MODEMJX
`
`ass
`
`351
`
`I
`
`361
`SHIFT ’
`4-.- REG
`<+¢
`
`B-STAGE RFC)
`
`352
`l \ ~
`
`ass
`
`i
`
`362
`
`359
`
`MODEM_RX
`
`<74 ‘7’
`
`ass "
`\
`
`<11
`
`47/
`
`354 I
`\
`
`<1’
`
`-<i
`
`__
`BUFFEHS
`35°
`SYSTEM
`DATA BUS
`
`SHIFT
`< / REG
`<<——
`
`<
`
`B-STAGE FIFO
`
`I,
`
`ass
`
`ass
`/
`
`COUNTER <4 36° MODEM_CLK
`
`FIG. l6
`
`Petitioners Ex. 1005 Page 17
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 17 0f 21
`
`5,624,316
`
`40‘
`402
`403
`404
`40s
`400
`407
`40s
`
`409
`410
`411
`
`412
`413
`
`UNUSED
`
`DIRECT
`DMA_X a
`
`UNUSED
`CODE 3
`CODE 2
`
`DMA_Y I
`
`DMA_X 1
`
`COOE I
`
`— EXCEPTION 0
`
`—— EXCEPTION 1
`
`-—-— EXCEPTION 2
`
`—-—CuRI=IENT EXCEPTION
`
`ENHANCER RAM ADDRESS MAP RELATIVE
`TO LOCAL ADDRESS BUS
`
`FIG. 17
`
`Petitioners Ex. 1005 Page 18
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 18 0f 21
`
`5,624,316
`
`VIDEO GAME
`CARTRIDGE
`
`1
`
`I
`
`7‘
`
`:
`
`ROM
`
`l ,
`‘ l
`
`2o
`
`— - h _ - _ _
`
`‘as ICARTH|DGE_CS
`
`_
`'
`
`,
`
`ASIC
`29
`
`,sa
`I'RAM cs
`'
`1’
`LOCAL
`ADDRESS
`BUS ‘30
`
`RAM
`27
`
`ENHAZNCEH
`
`VIDEO
`GAME
`CONSOLE
`7
`
`4-
`
`i
`
`I’
`
`I k
`7 7 CPU on DMA
`
`<
`
`7/
`
`as
`
`34
`SYSTEM
`ADDRESS
`BUS
`
`as
`SYSTEM
`DATA
`BUS
`
`FIG. l8
`
`Petitioners Ex. 1005 Page 19
`
`
`
`US. Patent
`
`Apr. 29, 1997
`
`Sheet 19 0f 21
`
`5,624,316
`
`VIDEO GAME
`CARTRIDGE
`1
`
`ROM
`2o
`
`_ - - _ - - - - — - ~ -
`
`- . - - - - D - 5a. n/cix???eelcs
`
`ASIC
`29
`
`,38
`{RAM 0
`RAM 27
`‘—--—S>
`‘—+—->- E3
`LOCAL
`\
`Aogsg?s
`PATCH
`30
`TABLE
`390
`
`ENHANCER
`4
`
`vmeo
`GAME
`CONSOLE
`7
`
`CPU
`as
`
`34
`SYSTEM
`ADDRESS
`BUS
`
`SYSTEM
`DATA
`BUS
`
`FIG. l9
`
`Petitioners Ex. 1005 Page 20
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 20 of 21
`
`5,624,316
`
`VIDEO GAME
`CARTRIDGE
`1
`
`ENHANCER
`
`4
`
`VIDEO
`GAME
`CONSOLE
`7
`
`SYSTEM
`ADDRESS
`Bus
`
`
`
`FIG. 20
`
`Petitioners Ex. 1005 Page 21
`
`
`
`EXCIEPSON
`
`RE I N
`391
`
`93358.30
`
`
`
`34
`
`35
`
`SYSTEM
`DATA
`BUS
`
`Petitioners Ex. 1005 Page 21
`
`
`
`U.S. Patent
`
`Apr. 29, 1997
`
`Sheet 21 of 21
`
`5,624,316
`
`VIDEO GAME
`CARTRIDGE
`1
`
`ENHANCE-ZR
`4
`
`VIDEO
`GAME
`CONSOLE
`7
`
`'
`
`ADDRESS
`BUS 130
`
`RAM CODE
`REGION
`392
`
`SYSTEM
`DATA
`
`BUS
`
`
`
`SYSTEM
`ADDRESS
`BUS
`
`FIG. 2|
`
`Petitioners Ex. 1005 Page 22
`
`Petitioners Ex. 1005 Page 22
`
`
`
`1
`VIDEO GAME ENHANCER WITH
`INTERGRAL MODEM AND SMART CARD
`INTERFACE
`
`CROSS—REFERENCE TO RELATED
`APPLICATIONS
`
`The following co-pending U.S. patent applications relate
`to the present application. Each of the listed co-pending
`applications are assigned to the same assignee as the present
`application.
`1) U.S. patent application Ser. No. 08/238.630. filed May
`5. 1994. and titled. “AN IMPROVED NETWORK ARCHI-
`TECTURE TO SUPPORT REAL-TIME VIDEO GAMES”
`
`2) U.S. patent application Ser. No. O8/238.477. filed May
`5. 1994. and titled. “AN IMPROVED NETWORK ARCHI-
`TECTURE TO SUPPORT MULTIPLE SITE REAL-TIME
`VIDEO GAMES”
`
`3) U.S. patent application Ser. No. 08/238.456. filed May
`5. 1994. and titled. “AN IMPROVED MODEM TO SUP-
`PORT MULTIPLE SITE CALL CONFERENCED DATA
`COMMUNICATIONS.”
`
`4) U.S. patent application Ser. No. 08/238303. filed May
`5. 1994. and titled. “AN DVIPROVED NETWORK ARCHI-
`TECTURE TO SUPPORT RECORDING AND PLAY-
`BACK OF REAL-TIME VIDEO GAMES”.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to the field of video game
`systems and networked computer systems.
`2. Description of Related Art
`Home video game machines such as the “SEGA GEN-
`ESISTM” and the “SUPER NINTENDO ENTERTAIN-
`
`MENT SYSTEMTM” are designed to function primarily as
`computing. graphics. and sound engines for video game
`software provided on insertable ROM-based cartridges.
`“SEGATM” and “SEGA GENESISTM” are trademarks of
`“SEGA.
`INC.TM” “SUPER NINTENDO- ENTERTAIN-
`MENT SYSTEMTM” and “NINTENDOTM” are trademarks
`of Nintendo. Inc. Such video game software is created by
`“SEGATM” and “NINTENDOTM” as well as various third-
`party software vendors and is available at retail outlets
`throughout the world. Such ROM-based cartridge games are
`written to be played by 1. 2. or possibly 4 or more players
`at once. with each player utilizing a controller attached to the
`video game machine.
`Because such games are ROM-based. once the software is
`frozen into a ROM. it cannot be modified substantially in the
`field. Thus. once a cartridge is manufactured and sold to the
`customer. the execution of the game is essentially locked-in.
`If the customer. manufacturer. or another party desires to
`substantially enhance the functionality of an existing video
`game cartridge. it is necessary to redesign the software and
`manufacture and distribute the modified cartridge with a
`new ROM. Clearly. this is an extremely expensive solution.
`and it would be desirable to provide a convenient and
`cost-effective means by which video game software could be
`enhanced in the field.
`
`In the past few years video game enhancement devices
`have appeared that allow minor modification to the execu-
`tion of video game cartridges in the field. Awell-lmown such
`device is the “GAME GENIETM”. by “GALOOBTM”.
`“GAME GENIETM” and “GALOOBTM” are trademarks of
`“GALOOB INC.TM” The Game Genie (and like devices)
`plugs into a video game console’s cartridge slot. and then the
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,624,316
`
`2
`
`video game cartridge which the user desires to enhance is
`plugged into a cartridge connector on top of the “GAME
`GENIE
`When power is applied to the video game
`console. the “GAME GENIETM” intercepts the video garne’s
`processor accesses intended for the ROM cartridge. and
`directs the processor to execute out of a “GAME GENIETM”
`ROM. This ROM contains a small amount of software that
`puts up a graphics image and requests the user to enter
`special codes with a video game controller. The user. refer-
`ring to a printed list of special codes either provided by the
`manufacturer or some other source (e.g. a video game
`magazine). then enters the codes for the desired enhance-
`ment of the game. These special codes specify memory
`addresses and data values. Once the codes are entered. the
`“GAME GENIETM” will turn over control to the game
`canridge. and normal game execution will begin. However.
`when the processor attempts to fetch data from one of the
`addresses which had been entered as a code. the “GAME
`
`GENIETM” will intercept the transaction (it has an address
`comparator for each address it intercepts) and substitute the
`entered data value instead. Because the “GAME GENIETM”
`can only substitute the values of a small number of indi-
`vidual data words. the achievable modifications to video
`game cartridges are fairly slight. such as increasing the
`number of lives permitted before the game ends or whether
`the background soundtrack is on or off. Yet. even given the
`relatively modest changes to video games possible with the
`“GAME GENIETM”. the product has been extremely suc-
`cessful commercially.
`Clearly.
`there are many applications that would be
`enabled if there were a means to make substantial modifi-
`cations to video game cartridges in the field. Rather than
`simply slightly changing the attributes of existing characters
`in the game. entirely new characters could be introduced.
`Rather than just turning on or off the soundtrack. whole new
`soundtracks could be introduced. Modifications could also
`
`include temporary graphics or sounds that are briefly pre-
`sented to the user in the form of an advertisement. In
`addition. peripheral devices such as modems or special
`game controllers. could be interfaced to the game such that
`the game could take advantage of them. even if the original
`authors of the game had no intention of supporting such
`peripherals.
`Unfortunately. modifications such as those just described
`are far too extensive to be accomplished by a simple data
`word replacement device such as the “GAME GENIETM”
`(and other devices like Game Genie). Game Genie provides
`for the substitution of about a dozen bytes in the original
`cartridge. For new graphics and sound. thousands of new
`bytes of data are required. some replacing existing data in
`the cartridge. some in addition to existing data in the
`cartridge. Also.
`the “GAME GENIETM” architecture
`requires specific hardware to detect the memory address of
`each new word to be substituted on the cartridge. Given that
`many of the just described enhancements require thousands
`of new words to be substituted on the cartridge. it can easily
`be seen that it is impractical to simply extend the “GAME
`GENIETM” architecture to provide thousands of individual
`address comparators. Such a “multi-thousand-word”
`“GAME GENTETM” would be difficult to create at any cost.
`but would be certainly far too expensive for the home video
`game market.
`Even if we provide a new video game enhancement
`device that. through some other means. can substitute or add
`thousands of words of data to an existing video game
`cartridge. we will quickly find that is impractical to distrib-
`ute the new data in printed form (as it is today—in the form
`
`Petitioners Ex. 1005 Page 23
`
`Petitioners Ex. 1005 Page 23
`
`
`
`5,624,316
`
`3
`of codes—for “GAME GENIETM”). While it is reasonable
`for a person to have to enter tour codes in order to enhance
`a video game experience. it is not reasonable to have to enter
`40 —or for that matter 40.000. Although the new data could
`be distributed in ROM or on floppy disks. the cost of the
`distribution media (if we include the cost of the readers for
`the distribution media). approaches or exceeds the cost of a
`new video game cartridge itself. The home video game
`market is targeted at children and young adults and is very
`cost sensitive. Clearly. a low-cost distribution means for new
`data would be required for a video game enhancement
`device to be successful.
`
`Thus. a video game enhancement device that provides
`substantial enhancements is desirable. but technology exist-
`ing in the art is not capable of substantial enhancements. and
`extensions of said existing technology to support substantial
`enhancements is far too expensive. both in terms of the
`actual hardware cost and the distribution costs for new data.
`
`Another type of video game enhancement device has been
`recently announced. ‘THE EDGETM” by “RF. MAGICTM”.
`Edge and RF. Magic are trademarks of “RF. MAGIC.
`INC.TM” This device provides communications capability to
`a “SEGA GENESISTM” video game console so as to allow
`two video games to communicate over a telephone line and
`play a video game or to allow a video game to connect to an
`on-line service (such as
`the “IMAGINATION
`NETWORKTM”) so as to play on-line video games.
`“IMAGINATION NETWORKTM” is a trademark of
`“IMAGINATION NETWORK INC.TM”
`
`A principal limitation of the Edge is that it is not com-
`patible with existing video game cartridges and it therefore
`requires completely new video games to be written specifi-
`cally to take advantage of its communications capabilities to
`be of any value at all. Given that there are hundreds of
`existing video game cartridges on the market (none of which
`are compatible with “THE EDGETM”). and dozens in devel-
`opment that will not be compatible. there are clearly limi-
`tations to its usefulness.
`
`Clearly, there would be significant advantage to a video
`game modem that was compatible with existing video game
`cartridges. Such a video game modem is not available in
`prior art systems.
`An improved video game enhancer is described herein. It
`is capable of substantially enhancing existing video game
`cartridges. and it supports very low-cost distribution means
`that can conveniently deliver thousands of bytes of new data
`per game cartridge. One such low-cost distribution means is
`an integral modem which. by taking advantage of the
`improved enhancer capabilities. is compatible with existing
`video game cartridges and allows them to communicate over
`telephone lines.
`
`SUMMARY OF THE INVENTION
`
`invention is a video game enhancement
`The present
`system for modifying and enhancing the operation of a Video
`game. The system includes: 1) a processor interface for
`coupling the video game enhancement system with a pro-
`cessor; 2) a memory interface for coupling the video game
`enhancement system with a first memory having executable
`game logic residing therein; 3) a second memory having
`executable enhancement logic residing therein; and 4) con-
`trol logic including: a) logic for detecting an access to a
`patch address by the processor; b) logic for directing the
`processor to access an exception region in the second
`memory upon detection of the access to the patch address.
`the access to the exception region causing activation of an
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`exception mode; and c) redirection logic for redirecting
`memory accesses by the processor from the first memory to
`the second memory for a plurality of memory accesses upon
`activation of the exception mode.
`the processor thereby
`executing a portion of the executable enhancement logic.
`The the control logic of the video game enhancement system
`also includes: 5) logic for detecting an access to a transition
`address by the processor; 6) logic for directing the processor
`to terminate the exception mode upon detection of the access
`to the transition address; and 7) the redirection logic further
`includes logic for redirecting memory accesses by the pro-
`cessor from the second memory to the first memory upon
`termination of the exception mode. the processor thereby
`continuing execution of the executable game logic.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 illustrates the video game enhancer of the present
`invention.
`
`FIG. 2 is a block diagram of the architecture of the
`preferred embodiment.
`' FIG. 3 illustrates the system address map with the video
`game cartridge disabled.
`FIG. 4 illustrates the system address map with the video
`game cartridge enabled.
`FIG. 5 illustrates the patch address comparators and the
`encoder of the preferred embodiment.
`FIG. 6 illustrates the address range comparators of the
`preferred embodiment.
`FIG. 7 illustrates the address remapping logic of the
`preferred embodiment.
`FIG. 8 illustrates the address decoding logic of the pre-
`ferred embodiment.
`
`FIG. 9 illustrates the chip select generation logic of the
`preferred embodiment.
`FIG. 10 illustrates the transition state machine of the
`preferred embodiment.
`FIG. 11 illustrates the exception counter logic of the
`preferred embodiment.
`FIG. 12 illustrates the address map and transition control
`registers of the preferred embodiment.
`FIGS. 13-15 illustrate the other control registers of the
`preferred embodiment.
`FIG. 16 illustrates the modem interface logic of the
`preferred embodiment.
`FIG. 17 illustrates an example of the enhancer RAM
`address map of the preferred embodiment.
`FIGS. 18-21 illustrate examples of accessing locations in
`cartridge ROM and processing these accesses by the present
`invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMLBODDVIENT
`
`FIG. 1 illustrates the architecture of the system and how
`the presently preferred embodiment of an improved video
`game enhancer is installed by the user. The improved video
`game enhancer 4 has a male edge-card connector 5 on the
`bottom and a female edge-card connector 3 on the top. It is
`inserted into the female edge-card connector of video game
`console 7 (normally intended for insertion of a video game
`cartridge). Video game console 7. controllers 8. 9, and
`television 12 are all well known to those of ordinary sill in
`the art. Video game cartridge 1 is also well known. The male
`edge-card connector 2 of a video game cartridge 1 is inserted
`
`Petitioners Ex. 1005 Page 24
`
`Petitioners Ex. 1005 Page 24
`
`
`
`5,624,316
`
`5
`
`into the enhancer’s female edge-card connector 3. Thus.
`when properly installed.
`the enhancer 4 is sandwiched
`directly between the game cartridge 1 and video game
`console 7.
`
`The enhancer 4 has a telephone jack 1] to which a
`telephone cord is connected and plugged into a standard
`telephone outlet 10. The enhancer 4 has a slot 16in which
`a Smart Card (i.e. a credit card with an internal microcom-
`puter and memory) 15 may be inserted. Such Smart Cards
`are well known to those of ordinary skill in the art.
`The video game console 7 is otherwise hooked up as it is
`normally. with at least one of its controllers 8 and 9 plugged
`in. and a video/audio or RF output connected to television 12
`and an AC transformer attached to AC outlet 13.
`
`The switch 14 has two positions. In one position the
`enhancer 4 is as disabled and the execution of the software
`
`in game cartridge 1 is not aifected. In the other position. the
`enhancer 4 is enabled and the execution of game cartridge 1
`may be aifected if the enhancer 4 is so configured.
`As an overview. the enhancer 4 of the present invention
`is used in the following manner. Details of the internal
`operation will be forthcoming later in this document. Con-
`sider FIGS. 1 and 2.
`
`Upon power-up or reset with the enhancer 4 enabled. the
`enhancer 4 intercepts the memory accesses (usually reads.
`but in some cases writes) of the video game console’s CPU
`33. and directs the CPU 33 to execute out of the enhancer’s
`4 internal ROM 28 rather than the ROM 20 of video game
`cartridge 1 . The internal ROM 28 contains operating system
`software to initialize the enhancer 4 and determine which
`
`video game cartridge is installed. Since the enhancer 4 also
`contains battery backed-up RAM 27. it is able to retain data
`previously stored in it. This RAM 27 is entirely general
`purpose and can be used to store any data. but in the
`presently preferred embodiment it is likely to contain pre-
`viously stored video game enhancement software. enhance-
`ments to the ROM—based operating system. and preference
`information entered by the user. Also. the enhancer 4 is able
`to accommodate a Smart Card 15 which may also contain
`relevant
`information (e.g.
`identification. game credits.
`preferences. game enhancements. etc.). Thus. based on an
`analysis of the currently connected cartridge 1 and Smart
`Card 15 as well as an analysis of the current state of the
`RAM 27. the operating system of the enhancer 4 determines
`how to initialize itself.
`
`The operating system of the enhancer 4 then directs the
`video game console to present an audiovisual display on
`monitor 12 to alert the user of the system of the current
`system status and give the user an opportunity to specify
`(using a controller 8 or 9) several control parameters for
`enhancer 4. For example. if the enhancer 4’s operating
`system determines that there is software already stored in
`RAM 27 to enhance the attached game cartridge 1. the user
`will be given an opportunity to activate the enhancements
`and play the game. If such software is not stored in the RAM
`27. the user will be notified that