U.S. Pat. No. 9,295,910
Methods, Apparatus and Systems for Use of a Non-Native Chipset to Play Original Video Game Cartridges
AssigneeHyperkin Inc.
Issue DateSeptember 11, 2014
Illustrative Figure
Abstract
Apparatus, methods and systems using a more powerful, but non-native, modern CPU/GPU chipset to play one or more types of original console games. The apparatus, methods and systems incorporate a modern processor and therefore corresponding modern components and have circuitry that can be used to access original games.
Description
DETAILED DESCRIPTION OF EMBODIMENTS Reference is made to the Figures in which elements of the illustrated embodiments of the invention are given numerical designations so as to enable one skilled in the art to make and use the invention. It is understood that the following descriptions are exemplary of embodiments of the invention. 1. First Example Embodiment of the Invention First Example Embodiment of the Invention with Reference toFIG. 1andFIG. 3: 1. A CPU/GPU/Sound and other I/O combination item302/128such as a SoC is one feature of an embodiment. At the time of writing, suitable parts might be Texas instruments AM3359, Allwinner A10, Nvidia Tegra 3, Rockchip RK3066 etc. 2. This is connected electrically to RAM304/122, possibly DDRAM-3, such as those provided by Samsung, Kingston and many other manufacturers. 3. A Boot program is loaded to RAM containing a GUI from a MSD306/132, such as SD card, readily available from many manufacturers such as Sandisk. 4. Cartridge ports such as306,308,310,110are scanned for the presence of one or more game cartridges. 5. A RAM based FPGA could be configured to access each cartridge port to scan for cartridges present. Using a programmable RAM based FPGA in this way may help save on cost as the same chip can be configured for each different game slot. This is indicated in the Figures as item312and124. An example FPGA might be a Xilinx XC3S50ATQ144. Alternatively a Microcontroller such as the Nuvoton NUC220 chip could be used. 6. Older chip technologies tend to user higher voltages than more modern ones, so in this Example Embodiment Voltage level shifters314,316and138are used to adjust the Voltages between the differing technologies. Alternatively a Microcontroller or FPGA with multiple I/O voltage capacity could be used, such as those manufactured by Nuvoton. 7. Users will be able to select various options by ...
DETAILED DESCRIPTION OF EMBODIMENTS
Reference is made to the Figures in which elements of the illustrated embodiments of the invention are given numerical designations so as to enable one skilled in the art to make and use the invention. It is understood that the following descriptions are exemplary of embodiments of the invention.
1. First Example Embodiment of the Invention
First Example Embodiment of the Invention with Reference toFIG. 1andFIG. 3:
1. A CPU/GPU/Sound and other I/O combination item302/128such as a SoC is one feature of an embodiment. At the time of writing, suitable parts might be Texas instruments AM3359, Allwinner A10, Nvidia Tegra 3, Rockchip RK3066 etc.
2. This is connected electrically to RAM304/122, possibly DDRAM-3, such as those provided by Samsung, Kingston and many other manufacturers.
3. A Boot program is loaded to RAM containing a GUI from a MSD306/132, such as SD card, readily available from many manufacturers such as Sandisk.
4. Cartridge ports such as306,308,310,110are scanned for the presence of one or more game cartridges.
5. A RAM based FPGA could be configured to access each cartridge port to scan for cartridges present. Using a programmable RAM based FPGA in this way may help save on cost as the same chip can be configured for each different game slot. This is indicated in the Figures as item312and124. An example FPGA might be a Xilinx XC3S50ATQ144. Alternatively a Microcontroller such as the Nuvoton NUC220 chip could be used.
6. Older chip technologies tend to user higher voltages than more modern ones, so in this Example Embodiment Voltage level shifters314,316and138are used to adjust the Voltages between the differing technologies. Alternatively a Microcontroller or FPGA with multiple I/O voltage capacity could be used, such as those manufactured by Nuvoton.
7. Users will be able to select various options by using one of the Human interface devices in318. These could be either original console input devices such as Joypads as shown in102,104,106and116,118,120, or a more modern input device such as Mouse, Keyboard or Bluetooth Joypad.
8. Visual Feedback is provided to the User by the GUI menu as indicated by block338/136,330. Options that might be entered via this menu include;a. Overclocking, where games can be made to run faster (or slower) than originally intendedb. Anti Aliasing, Lines which appear jagged can be smoothed out.c. Upscaling, allows games to be displayed in a higher resolution than originally intendedd. Insertion of Cheat codes.
9. A cartridge, present in306,308, or310/112is likely to be loaded into available RAM304/122, this allows for,a. Much faster access speeds than in the original games.b. Lower power consumption, the original cartridges required higher voltages and current. This means less power is drawn; embodiments can be run on Batteries, such as Example Embodiment 2
10. The FPGA/MCU,312/128used to read from the cartridge port, could be released after this task is completed and then used to give additional processing power.
11. An appropriate software emulator is loaded from MSD306/132into RAM304/122.
12. The software emulator program is run via the SoC's main processor302/128, and the game is run, albeit in an emulated as opposed to native form meaning that Processor and/or Graphics instructions are therefore likely interpreted and not directly executed as on the original console.
Game direction is input via controllers318plugged into compatible connectors320,322,324,326InFIG. 1, these are102,104,106for Player 1 and116,118and120for Player 2 as well as130.
13. If a user wishes they can decide to select the “save” option, this is initiated by a button or button press sequence. Storing the contents of RAM to MSD. This can then later be loaded back into memory so that the game is resumed from the exact point at which the user had originally saved the game.
14. As an extra feature, one or more of the various cheat systems can be implemented in software, allowing extra value at no extra build cost
2. Second Example Embodiment of Invention
With Reference toFIG. 2andFIG. 1
1. At step202as shown inFIG. 2, in this embodiment the Power on Function is provided by an ordinary toggle switch142. Once power is provided to the circuitry the SoC's main CPU will start its boot process.
2. The SoC's main processor, for example a Rockchip RK3066, as part of its normal procedure will load and boot data from MSD, in this embodiment a common SD Flash such as that provided by Sandisk, Toshiba, or other manufacturers known to skilled persons is used as storage space to hold the Operating System as represented in204.
3. In step206it is assumed there are ‘D’ number of game cartridge slots. In this particular embodiment there are 4 slots in the device however this could be any number starting from one.
4. To be able to read from each slot in turn a RAM based programmable logic device (FPGA) such as the Xilinx Spartan XC3S50 is used in step208is used to check each slot for a valid game cartridge. The FPGA is used to effectively increase I/O from the SoC. If the SoC has sufficient I/O available, the FPGA could be dispensed with to save on cost in alternative embodiments. An alternative to an FPGA is a Microcontroller such as the Nuvoton NUC220.
5. A game cartridge is easily digitally distinguishable from no cartridge. In step210the FPGA/MCU, likely in conjunction with the SOC's CPU, is used to check for the presence of a game cartridge.
6. A program loop,212, is created to check all slots for the presence of cartridges.
7. Once at least one cartridge is found, then in214the ROM contents of the cartridge are read into RAM. If there is more than one cartridge inserted then one can be selected by the user. From here the content can be accessed faster than the relatively slower ROM used in typical (especially older) game consoles.
8. In step216a custom GUI is loaded from storage media into RAM and output displayed on the output display device, typically a TV or monitor perhaps using an HDMI output such as136shown inFIG. 1and controlled using one of the Joypad input methods. The interface is designed to assist the user to make various choices about the game before launching. For example whether to activate any cheats, any graphical filters to improve game appearance whether to speed up (overclock) or slow down a game etc.
9. In step218A ‘Software emulator’ to translate the original code and data into appropriate code and data for the new chipset is also loaded into RAM to a separate memory location.
10. In step220the Emulator is launched by passing its start address to the program counter, any configuration options entered by the user into the GUI are passed to this section of code.
11. The external Joypads in step222, are read continuously during play and the values passed to the emulator. Output from the emulator is displayed on the Screen in step224. Should the user press an assigned button(s) on the console or joypad button the user is taken back to the GUI in steps226and228where they are given the option to Save the RAM contents to Mass Storage device, probably SD card so the game can be loaded at a later date after the machine has been switched off.
3. Second Example Embodiment
Referring toFIG. 4andFIG. 5, this example embodiment, the invention is used for a mobile or hand-held device.FIG. 4is a front view of the second example embodiment.FIG. 5is a rear view of the same example embodiment.
4. Second Embodiment Implementation
In this second example, the system is designed to be a portable system. In addition to similar components used in the first example embodiment, there is also the addition of a battery406,506and a display such as LCD414,514. The sockets404,504allow the insertion of compatible joypads of the original machine. The button layout418,518can be arranged in a comparable formation of the Console that is under emulation.
5. FIGS.4and5Key
402, 502Plastic top case part404, 504Sockets to allow original console controllers to be used406, 506Rechargeable battery408, 508Battery cover410, 510RAM to store Emulation code, binary image of cartridgegraphical front end, and temporary console game.412, 512Speakers for sound output414, 514LCD Display for viewing gameplay output when on the move416, 516None Native SoC containing Microprocessor(s) Graphicsprocessor(s), sound etc.418, 518Buttons sensors arranged to emulate the positioning of theRetro console.420, 520Lower part of case522Flap for retro Cartridge insertion524Cartridge Receptor for retro cartridge reading526HDMI Micro connector for modern TV connectivity528Power Socket for recharging and/or direct power530On off slide switch
Advantages of the second example embodiment include,
1. There is likely to be a significant advantage in battery life. As previously mentioned, the older technology chips tended to use more power, and therefore battery life would be typically much shorter than using the invention.
2. As in the first embodiment, features can be included such as cheat codes where locations on the original game can be modified to provide cheats such as unlimited lives, level skip etc.
3. More modern connectors can be provided such as HDMI to provide compatibility with more modern Television systems so games can be played on TV using the unit. This can be of particular benefit when the original consoles could not be easily connected to TV sets.
GLOSSARY
GUI
Graphical User Interface, a method by which a user is allowed to view and Enter and read data, typically in a nicely displayed, Human Readable form,
http://en.wikipedia.org/wiki/Graphical_user_interface
Software Emulator
Is a computer program run on a CPU that typically emulates other CPU's or hardware chips. Often written in a high level language such as C, then compiled into a binary executable.
http://en.wikipedia.org/wiki/Emulator
Cheat System
A method where data is modified from its original intended value to perform a function other than that intended. Often used to create items such as infinite lives, invulnerability.
Cheat Code
Data representative either directly or indirectly of a modification that produces a change in intended function, a classic example is “An Infinite lives cheat code”,
http://en.wikipedia.org/wiki/Cheating_in_video_games
HDMI
A digital video transfer protocol designed for transferring multiple resolutions and definitions. Typically from storage devices such as a Blue Ray Player and display devices such as a TV,
http://en.wikipedia.org/wiki/HDMI
ROM Images
A digital image or binary file taken from a ROM and stored on a computer, in the context of this document it refers to the binary content of a game cartridge that has been transferred somehow to a file.
http://en.wikipedia.org/wiki/ROM_image
Moore's Law
The observation (and prediction) that transistors on Integrated circuits are approximately doubled every 2 years.
http://en.wikipedia.org/wiki/Moore's_law
Classic/Retro Games
Games from previous generations
http://en.wikipedia.org/wiki/Retrogaming
Joypad
A type of Human interface device held in the hand where digits are used to provide input.
http://en.wiktionary.org/wiki/joypad
Gray Importing
Refer to “legal goods” which are sold outside normal distribution channels by companies which may have no relationship with the producer of the goods.
VLSI
Very-large-scale integration (VLSI) is the process of creating integrated circuits by combining thousands of transistors into a single chip.
http://en.wikipedia.org/wiki/Very-large-scale_integration
GPU
Graphics Processor unit, is a specialized processor designed to display and manipulate graphics data.
http://en.wikipedia.org/wiki/Graphics_processing_unit
SoC
Solution On a Chip, is a chip that integrates many components of a computer into a single chip.
http://en.wikipedia.org/wiki/System_on_a_chip
Chipset
A Chipset is a group of Integrated Circuits that are used together perform a specific task. A GPU and CPU will often be included in a chipset, and the group of chips used in one Video game console might be referred to as a chipset. A SoC typically will contain a chipset
SNES
Abbreviation for Super Nintendo Entertainment System, a popular Video Games system first released by Nintendo in Japan in 1990, then in North America in 1991 then Europe and Australasia in 1992
http://en.wikipedia.org/wiki/Super_Nintendo_Entertainment_System
MSD
Mass storage device, A device for storing large amounts of data when there is no power
http://en.wikipedia.org/wiki/Mass_storage_device
Claims
- An apparatus for use of a non-native chipset to play original video game cartridges comprising a central processing unit, a graphics processor unit and audio controller operatively connected to one or more cartridge ports through voltage level shifters;said cartridge ports adapted to connect to one or more video game cartridges to enable access to video game content on said video game cartridges and to display the video game content on an associated output device and further including the central processing unit, graphics processing unit and audio controller are electrically connected to RAM, a boot program is loaded to the RAM containing a graphical user interface (GUI) from a mass storage device (MSD);a field programmable gate array (FPGA) or microcontroller unit (MCU) configured to access each of the cartridge ports to scan for the presence of the video game cartridges having differing voltage level requirements, and the voltage level shifters are adapted to adjust the voltages between the differing voltage requirements of the video game cartridges detected in the cartridge ports, the video game information from the detected video game cartridge is loaded into the RAM;the GUI has a display menu to list options for the user to select one or more options selected from the group consisting of overclocking, where games can be made to run faster or slower than originally intended, anti aliasing, so lines which appear jagged can be smoothed out, upscaling, to allow games to be displayed in a higher resolution than originally intended, and insertion of cheat codes;a software emulator is loaded from a mass storage device (MSD) into the RAM, so that the software emulator program and the video game is run in an emulated as opposed to native form meaning that processor and/or graphics instructions are therefore interpreted and not directly executed as on the original video game cartridge;and game direction is controlled by the user using controllers so that the user can select to store the contents of the RAM to the MSD so that the contents of the RAM can subsequently be loaded back into memory so that the video game is resumed from substantially the point of play at which the user had originally saved the video game.
- The apparatus of claim 1 further comprising a human interface device operatively connected to the central processing unit.
- The apparatus of claim 1 further including a mass storage device operatively connected to one or more of the cartridge ports.
- An apparatus for use of a non-native chipset to play original video game cartridges comprising a central processing unit, a graphics processor unit and audio controller operatively connected to one or more cartridge ports, the central processing unit, graphics processor unit and audio controller comprise a system on a chip (SoC), wherein activating a toggle switch provides electrical power to start a boot process for the central processing unit of the SoC and the central processing unit of the SoC loads and boots an operating system and drivers from a mass storage device (MSD);a programmable logic device or microcontroller unit (MCU) configured to access the cartridge ports and to detect the presence of one or more video game cartridges in the cartridge ports and voltage level shifters are adapted to adjust the voltages between the differing voltage requirements of the video game cartridges detected in the cartridge ports, so that once at least one video game cartridge is detected, the read only memory (ROM) contents of the cartridge are read into the RAM, and if there is more than one video game cartridge detected, then one video game cartridge is selected by a user;a graphical user interface (GUI) is loaded from a storage media into the RAM and an output is displayed on an output display device to display a user options menu to assist the user to select various configuration options about the video game from the user options menu before launching the video game;a software emulator is loaded into the RAM to a separate memory location, the software emulator configured to translate the original code and data from the ROM contents of the selected video game cartridge into appropriate code and data for the SoC, so that the software emulator is launched by passing its start address to a program counter and the selected configuration options entered by the user into the GUI are utilized;and human interface devices are read substantially continuously during play and the output from the human interface devices are passed to the software emulator, and wherein output from the software emulator is displayed on the output display device so that the user is given the option to save the RAM contents to a second mass storage device so the video game can be subsequently loaded into the RAM after the apparatus has been switched off.
- The apparatus of claim 4 further comprising the graphical user interface allows a user to enter a game play option selected from the group consisting of overclocking, anti-aliasing, upscaling and insertion of cheat codes.
- The apparatus of claim 4 wherein the system on a chip includes a cheat system to manipulate the video game content on the video game cartridges.
- The apparatus of claim 4 wherein the associated output device is a battery operated display device.
- The apparatus of claim 7 further comprising one or more joypads operatively connected to the system on a chip to manipulate the video game content shown on the output device.
- A method for using a non-native chipset to play original video game cartridges using a system on a chip (SOC) operatively connected to one or more game cartridge ports, comprising the steps of: initiating a toggle switch to provide electrical power to start a boot process for the central processing unit of the SoC so that the central processing unit of the SoC loads and boots an operating system and drivers from a mass storage device (MSD);initiating a programmable logic device or microcontroller unit (MCU) which is configured to access the one or more cartridge ports and to detect the presence of one or more video game cartridges in the one or more cartridge ports, and voltage level shifters adjust the voltages between the differing voltage requirements of the video game cartridges detected in the cartridge ports, so that once at least one video game cartridge is detected, then the read only memory (ROM) contents of the cartridge are read into the RAM, and if there is more than one video game cartridge detected, then one video game cartridge is selected by a user;loading a graphical user interface (GUI) from a storage media into the RAM so that an output is displayed on an output display device to display a user options menu in order to assist the user to make various choices about the video game before launching the video game;loading a software emulator into the RAM to a separate memory location, the software emulator configured to translate the original code and data from the ROM contents of the selected video game cartridge into appropriate code and data for the SoC, so that the software emulator is launched by passing its start address to the program counter and configuration options entered by the user into the GUI are utilized;and reading output from a human interface device during video game play and the output is passed to the software emulator, and wherein output from the software emulator is displayed on the output display device so that the user is given the option to save the RAM contents to a second mass storage device so the video game can be subsequently loaded into the RAM after being powered down and then restarted.
- The method of claim 9 comprising the step of saving contents of the RAM to an additional mass storage device.
- The method of claim 9 comprising the step of including cheat codes operatively connected to the programmable logic device or microcontroller unit (MCU) to allow manipulation of the video game content shown on the output display device.
- The method of claim 9 wherein the human interface device is selected from the group consisting of external joypads, mouse, keyboard and bluetooth joypad to manipulate the video game content shown on the output display device.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.