• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Nintendo files patent for Game Boy emulation on mobile phones, PDA's, PC and more

R

Rösti

Unconfirmed Member
On June 23, 2014, Nintendo Co., Ltd. filed in the US a patent application for "Hand-held Video Game Platform Emulation". It was published today, on November 27, via the USPTO. Inventor is Patrick J. Link who has worked on several other patents dealing namely with emulation and security. Now, what must be mentioned is that this is a divisional application, which is a continuation of a a pending application, by the USPTO described as follows :

A later application for an independent or distinct invention, carved out of a pending application and disclosing and claiming only subject matter disclosed in the earlier or parent application, is known as a divisional application or “division.”

A similar story emerged in 2012 where many outlets wrote about it, for example Engadget. This new application is a continuation of that patent application, though with some claims changed and with less references. So it is not entirely new, but it is filed this year and not in 2003 as happened with the previous application. Anyway, let's start by talking a look at the abstract, note that this stems from 1999-2003 so the text may appear quite arcane. Interesting parts in bold.

Abstract

A software emulator for emulating a handheld video game platform such as GAME BOY.RTM., GAME BOY COLOR.RTM. and/or GAME BOY ADVANCE.RTM. on a low-capability target platform (e.g., a seat-back display for airline or train use, a personal digital assistant, a cell phone) uses a number of features and optimizations to provide high quality graphics and sound that nearly duplicates the game playing experience on the native platform. Some exemplary features include use of bit BLITing, graphics character reformatting, modeling of a native platform liquid crystal display controller using a sequential state machine, and selective skipping of frame display updates if the game play falls behind what would occur on the native platform.

Claims

1-16. (canceled)

17. A method of adapting an emulator, the method comprising: executing, on a processor, an emulator capable of running a plurality different binary applications; recognizing, by the processor, an identity of a binary application based on an inspection of the binary application; automatically adapting, by the processor, a behavior of the emulator to the binary application based on the recognized identity of the binary application; and generating, by the processor, an audio visual presentation using the adapted behavior of the emulator.
It appears most of the claims in 1-16 have been consolidated into 17. I'm not sure when these claims where canceled, I see nothing too informative via the Patent Application Information Retrieval (PAIR) system of the USPTO.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001]Description

This application is a divisional application of application Ser. No. 09/723,322 filed Nov. 28, 2000 (Docket No. 723-950), now U.S. Pat. No. ______. This application is related to copending commonly-assigned application Ser. No. 09/722,410 filed Nov. 28, 2000 entitled PORTABLE VIDEO GAME SYSTEM (Docket No. 723-951), which is a continuation-in-part of application Ser. No. 09/627,440, filed Jul. 28, 2000. This application is also related to copending commonly-assigned application Ser. No. 09/321,201 of Okada et al filed May 27, 1999 entitled "Portable Color Display Game Machine and Storage Medium for The Same". Priority is also claimed from provisional application No. 60/233,622 filed Sep. 18, 2000 under attorney docket no. 723-932 entitled "Method and Apparatus for Emulating a Portable Game Machine." Each of these related applications is incorporated herein by reference.

FIELD

[0002] This invention relates to systems, methods, techniques, data structures, and other features for running software applications including but not limited to video games on platforms different from the ones the software is intended or designed to run on.

BACKGROUND AND SUMMARY

[0003] Nintendo's GAME BOY.RTM. hand-held video game platforms have been extraordinarily successful. Nintendo released the first GAME BOY.RTM. in the late 1980s. Since then, this product and its successors (GAME BOY COLOR.RTM. and GAME BOY ADVANCE.RTM.) have captured the imaginations of millions of video game players throughout the world.

[0004] A wide number of different software applications (including but not limited to video games) have been designed to run on these platforms. People throughout the world enjoy these applications every day. One can see them being used on subways, at sports arenas, after school, and in a number of other contexts. See FIG. 1A.

[0005] Nintendo's GAME BOY.RTM., GAME BOY COLOR.RTM. and GAME BOY ADVANCE.RTM. are examples of platforms having specialized hardware that is optimized for low cost, excellent performance and good graphics. These devices are not really general purpose computers; rather, they are special-purpose devices with specialized capabilities particularly adapted to video game play. These special capabilities provide low cost and exciting video game play action with good graphics and sound.

[0006] While GAME BOY.RTM. platforms are inexpensive and have long battery life, there may be situations in which it would be desirable to play or use applications developed for GAME BOY.RTM. on other platforms. For example, an airline, train or other vehicle passenger might want to play video games during a long journey. As shown in FIG. 1B, airlines are installing seat-back computer displays into the backs of airline seats. Such seat-back displays may provide a low cost personal computer including a processor, random access memory, liquid crystal display and input device(s). Similar displays could be installed in other vehicles (e.g., trains, ships, vans, cars, etc.) or in other contexts (e.g., at walk-up kiosks, within hotel rooms, etc.). It would be desirable under certain circumstances to allow users to execute all sorts of different applications including GAME BOY.RTM. video games and other applications using the general-purpose computer capabilities of such seat-back or similar display devices.

[0007] Personal computers have also proliferated throughout the world and are now available at relatively low cost. A trend has shifted some entertainment from the home television set to the home personal computer, where children and adults can view interesting web pages and play downloaded video games and other applications. In some circumstances, it may be desirable to allow users to play GAME BOY.RTM. video games on their home personal computers (see FIG. 1C).

[0008] A wide variety of so-called personal digital assistants (PDA's) have become available in recent years. Such devices now comprise an entire miniature computer within a package small enough to fit into your pocket. Mobile cellular telephones are also becoming increasingly computationally-intensive and have better displays so they can access the World Wide Web and perform a variety of downloaded applications. In some circumstances, it may be desirable to enable people to play GAME BOY.RTM. video games and other GAME BOY.RTM. applications on a personal digital assistant, cellular telephone or other such device (see FIG. 1D).

[0009] The special-purpose sound and graphics circuitry provided by the GAME BOY.RTM. platforms is not generally found in the various other platforms shown in FIGS. 1B, 1C and 1D. Providing these missing capabilities is one of the challenges to running a GAME BOY.RTM. video game (or other GAME BOY.RTM. application) on these other target platforms.

[0010] Another challenge relates to instruction set compatibility. Nintendo's GAME BOY.RTM. is based on an older, relatively inexpensive microprocessor (the Zilog Z80) that is no longer being used in most modern general purpose computer systems such as personal computers, seat-back displays and personal digital assistants. The Z80 instruction set (the language in which all GAME BOY.RTM. games and other GAME BOY.RTM. applications are written in) is not directly understood by the more modern Intel microprocessors (e.g., the 8086, 80286, 80386, Pentium and other processors in the Intel family) that are now widely used and found in most personal computers, seat-back displays, personal digital assistants, and the like. While it is possible to "port" certain GAME BOY.RTM. games or other applications to different microprocessor families (e.g., by cross-compiling the source code to a different target microprocessor), there may be an advantage in certain contexts to being able to play or execute the same binary images stored in GAME BOY.RTM. cartridges on target platforms other than GAME BOY.RTM..

[0011] One way to provide a cross-platform capability is to provide a GAME BOY.RTM. software emulator on the target platform. Generally, a software emulator is a computer program that executes on a desired target platform (e.g., a seat-back display device, a personal computer or a personal digital assistant shown in FIGS. 1B-1D) and uses software to supply native platform capabilities that are missing from the target platform. For example, a software emulator may perform some or all of GAME BOY.RTM.'s specialized graphics functions in software, and may interface with whatever graphics resources are available on the target platform to display resulting images. A software emulator may translate or interpret Z80 instructions so the microprocessor of the target platform can perform the functions that GAME BOY.RTM. would perform if presented with the same instructions. The software emulator may include software code that emulates hardware capabilities within the GAME BOY.RTM. circuitry (e.g., audio and/or graphics processing) and/or translate associated GAME BOY.RTM. application requests into requests that can be handled by the hardware resources available on the target platform. For example, the target platform may include a graphics adapter and associated display that is incompatible with GAME BOY.RTM.'s graphics hardware but which can perform some of the basic graphics functions required to display GAME BOY.RTM. graphics on a display.

[0012] A number of GAME BOY.RTM. emulators have been written for a variety of different platforms ranging from personal digital assistants to personal computers. However, further improvements are possible and desirable.

[0013] One area of needed improvement relates to obtaining acceptable speed performance and high quality sound and graphics on a low-capability platform. A low-capability platform (e.g., a seat-back display or a personal digital assistant) may not have enough processing power to readily provide acceptable speed performance. Unless the software emulator is carefully designed and carefully optimized, it will not be able to maintain real time speed performance when running on a slower or less highly capable processor. Slow-downs in game performance are generally unacceptable if the average user can notice them since they immediately affect and degrade the fun and excitement of the game playing experience.

[0014] Performance problems are exacerbated by the penchant of some video game developers to squeeze the last bit of performance out of the GAME BOY.RTM. platform. Performance tricks and optimizations within a GAME BOY.RTM. application may place additional demands on any emulator running the application. Some prior art emulators provide acceptable results when running certain games but unacceptable results (or do not work at all) for other games. An ideal emulator provides acceptable results across a wide range of different games and other applications such that the emulator can run virtually any game or other application developed for the original platform.

[0015] Another challenge to designing a good software emulator relates to maintaining excellent image and sound quality. Ideally, the software emulator running on the target platform should be able to produce graphic displays that are at least the same quality as those that would be seen on the native platform. Additionally, the color rendition and other aspects of the image should be nearly if not exactly the same. Sounds (e.g., music and speech) from the emulator should have at least the same quality as would be heard on the original platform. All of these capabilities should be relatively closely matched even on platforms with radically different sound and graphics hardware capabilities.

[0016] One prior attempt to develop a video game platform emulator is disclosed in U.S. Pat. No. 6,115,054 to Giles. That patent describes a general purpose computer based video game platform software emulator including an execution skipping feature that evaluates the ability of the general purpose computer to generate video frames fully synchronized with the target platform computer system. If the evaluation determines that the emulator is falling behind the target system, the emulator executes only a first subset of the graphics commands while skipping execution of a second subset of graphics commands so as to partially render the frame. For example, the patent discloses fully executing certain graphics commands while partially executing others (e.g., clipped drawing commands) to provide a partial rendering of the frame. One disadvantage to the approach described in the Giles patent is that partial rendering of a frame can lead to uncertain imaging results that will degrade the quality of the image being produced by the emulator.

[0017] The present invention solves these and other problems by providing a unique software emulator capable of providing acceptable speed performance and good image and sound quality on even a low-capability target platform such as a seat back display for example.

[0018] The preferred embodiment software emulator provided by this invention maintains high-quality graphics and sound in real time across a wide variety of video games and other applications--and nearly duplicates the graphics and sound that would be experienced by a user of the GAME BOY.RTM., GAME BOY COLOR.RTM. and/or GAME BOY ADVANCE.RTM. platform running the same game or other application. The preferred embodiment emulator achieves this through a unique combination of features and optimizations including, for example: [0019] use of a virtual liquid crystal display controller (state machine) to maintain real time synchronization with events as they would occur on the native platform, [0020] use of a hardware-assisted bit BLIT memory transfer operation to efficiently transfer graphics information into video memory, [0021] pre-computed translation table for translating native platform graphics character formats into formats more compatible with standard graphics adapters, [0022] emulation of native platform color palette information to provide compatibility with games and other applications that change color palettes within a frame, [0023] emulation of major registers and other hardware-based memory structures within the native platform in RAM under software control, [0024] use of a jump table able to efficiently parse incoming binary instruction formats, [0025] use of a unique page table to control memory access by remapping memory access instructions into different memory locations and/or function calls, [0026] availability of a ROM protection function to eliminate ROM overwriting during emulated operations, [0027] responsive to video game compatibility modes and registration data, [0028] models native platform using state machine defining search, transfer, horizontal blank and vertical blank states, [0029] cycle counter to determine when a modeled state has expired and transition to a new state is desired, [0030] selective frame display update skipping while maintaining execution of all instructions to maintain state information while minimizing game play slowdowns, [0031] optional NOP loop look ahead feature to avoid wasting processing time in NOP loops, [0032] redundant emulated RAM and ROM storage to optimize execution efficiency, [0033] separate page tables for read and write operations, [0034] modeling of native microprocessor registers as a union of byte, word and long register formats, [0035] modeling native instruction CPU flags to allow efficient updating after operations are performed by target platform microprocessor, [0036] mapping emulated program counter into target platform microprocessor general purpose register, [0037] reads and writes via index register go through pointer tables to increase execution efficiency, [0038] adaptable input controller emulator to provide user inputs from a variety of different user input devices, [0039] emulated object attribute memory, and [0040] use of screen memory buffers larger than screen size to increase paging efficiency by eliminating clipping calculations and using the hardware BitBlt to transfer a subset of the memory buffer to displayed video memory.
Imagery (I've taken the libery of including fewer than usual, most of them are just block diagrams describing modes and methods anyway)

1_py8daj.png

[0042] FIG. 1A shows someone playing a Nintendo GAME BOY.RTM. portable video game platform;

2_p5qfb7.png


3_pm1f3t.png


4_p4rcl8.png

[0043] FIGS. 1B-1D show various different target platforms that could be used to emulate the FIG. 1 GAME BOY.RTM.;

5_p0rezs.png

[0044] FIG. 2 is a block diagram of an example software emulator architecture;
Source: http://appft.uspto.gov/netacgi/nph-...s1=Nintendo.AS.&OS=AN/Nintendo&RS=AN/Nintendo

I won't include the detailed description as it just describes a bunch of modes and instructions for emulation on various platforms. But if you are interested in that, it's of course readily available at the link.

Does this mean that we will see a Game Boy emulator, an official one anyway, on iPhone soon? Not necessarily. As always, a patent application does not confirm a product or service, it is simply an idea that may or may not be used. For the original applications filed over a decade ago, we have yet to see anything. But it at least seems like Nintendo has interest in this, be it for legal reasons or for actually exploring a new market. There you have it anyway.
 

KoopaTheCasual

Junior Member
Regardless or not if they have plans to actually have mobile emulation, it's nice to see that Nintendo no longer lives in their bubble oblivious of things like this, and at least wants to legally safe guard their butts.
 

SovanJedi

provides useful feedback
I assume this is to stamp on fan-made Android GBA emulators.

I was thinking this too - didn't they patent emulators on something else a long time back, only for people to find that they did it just so they had more legal leverage to shut other emulators down?
 

Rich!

Member
It's likely only to prevent others from selling and supplying homebrew Game Boy emulators on Android/Google marketplaces as those two seemingly don't give a shit about preventing them.

not that they should prevent them, imo.
 
This is definitely the best way to approach mobile. Don't make it their main platform, don't chase F2P shit, don't abandon dedicated platforms. Providing emulation of older games is great, though. It's a win for everybody.
 

Rich!

Member
This is definitely the best way to approach mobile. Don't make it their main platform, don't chase F2P shit, don't abandon dedicated platforms. Providing emulation of older games is great, though. It's a win for everybody.

Nintendo aren't going to do it.

it's a preventive measure.
 

Griss

Member
Would be huge if they stepped into this market with emulation - there's a lot of money out there that they're missing out on. Lots of people emulate on their phones.

However, it's more likely that they're just creating a situation where it will be easier to challenge and remove emulators appearing on the iOS and Android shops.
 

entremet

Member
I assume this is to stamp on fan-made Android GBA emulators.

Funnily enough Nintendo doesn't offer GBA games in any portable platforms of theirs. Well there's Ambassadors, but those are very limited and not for sale for any 3DS unit.

Nintendo really needs to get better about their amazing back catalog.

Games should be cheaper.
Games should be cross platform. I shouldn't need to buy SMB1 again and again.
And Nintendo needs to just open the entire catalog instead of drop feeding.
 

joezombie

Member
They acknowledge in the application that existing emulators pre-date this application, so I don't see how this could effect them
 

Raist

Banned
Fig 1C just cracks me up.

I mean, someone playing GB stuff on a computer plugged into a CRT monitor, with a "PATENT FILED 2014" caption.
 

Gleethor

Member
I don't think they'll be putting anything on mobile. Even if it's older games, the idea that mario can be played on other platforms is a dangerous one for their console and handheld business.
 

qko

Member
IF Nintendo ever opens to the possibility of putting GB and GBA games on mobile I expect the backlash of "$5 for Link's Awakening?!?! $8 for Golden Sun?!?! Ridiculous pricing!!! Etc. etc."
 

sörine

Banned
I was thinking this too - didn't they patent emulators on something else a long time back, only for people to find that they did it just so they had more legal leverage to shut other emulators down?
Yes, way back in 2004. This isn't new at all.

And it was mostly fear of Nintendo using these patents to shut down other homebrew emulators but I don't believe they ever did. Like most of Nintendo's patents it seems to have a more defensive maneuver to protect themselves from litigation rather than trying to bully others.
 

Gluka

Member
Could this actually be used to attack emulation? I thought reverse engineering had some sort of protection under US law, but I admit I don't really know all that much about the subject.
 
There needs to be a sentence in large text at the start that says: 'it's very likely that Nintendo is doing this to combat emulators that currently exist. Stop trying to make Nintendo on phones/PCs happen. It's not going to happen'.
 

TI82

Banned
I laughed pretty hard at the SOUND BLASTER part of that diagram

Or the dude sitting at the huge desk with nothing but the oldest PDA ever. Or the VGA section of that diagram.

Just makes me wonder if they have been sitting on this for this long.
 

OmegaFax

Member
I don't think Nintendo ever intents to actually emulate on any of these platforms. They want to patent troll existing emulators and filed these as grounds to stand on.

From Nintendo's legal page: http://www.nintendo.com/corp/legal.jsp#good << and they've pretty much stood on this for the longest time if you go back and read the same page on Archive.org.

How Does Nintendo Feel About the Emergence of Video Game Emulators?

The introduction of emulators created to play illegally copied Nintendo software represents the greatest threat to date to the intellectual property rights of video game developers. As is the case with any business or industry, when its products become available for free, the revenue stream supporting that industry is threatened. Such emulators have the potential to significantly damage a worldwide entertainment software industry which generates over $15 billion annually, and tens of thousands of jobs.

What Does Nintendo Think of the Argument that Emulators are Actually Good for Nintendo Because it Promotes the Nintendo Brand to PC Users and Leads to More Sales?

Distribution of an emulator developed to play illegally copied Nintendo software hurts Nintendo's goodwill, the millions of dollars invested in research & development and marketing by Nintendo and its licensees. Substantial damages are caused to Nintendo and its licensees. It is irrelevant whether or not someone profits from the distribution of an emulator. The emulator promotes the play of illegal ROMs , NOT authentic games. Thus, not only does it not lead to more sales, it has the opposite effect and purpose.

How Come Nintendo Does Not Take Steps Towards Legitimizing Nintendo Emulators?

Emulators developed to play illegally copied Nintendo software promote piracy. That's like asking why doesn't Nintendo legitimize piracy. It doesn't make any business sense. It's that simple and not open to debate.
 
R

Rösti

Unconfirmed Member
Or the dude sitting at the huge desk with nothing but the oldest PDA ever. Or the VGA section of that diagram.

Just makes me wonder if they have been sitting on this for this long.
Since 1999/2000.
 

Wichu

Member
I don't think Nintendo ever intents to actually emulate on any of these platforms. They want to patent troll existing emulators and filed these as grounds to stand on.

From Nintendo's legal page: http://www.nintendo.com/corp/legal.jsp#good << and they've pretty much stood on this for the longest time if you go back and read the same page on Archive.org.

That doesn't say anything about legal emulation (i.e. Nintendo releasing their own emulator and selling games for it); it only says Nintendo wouldn't support an emulator that can play illegally-downloaded ROMs. I can see official Nintendo emulators happening, if only to appease shareholders.
 

Durante

Member
Reading the abstract, I have to wonder once again how the hell you can patent things that have been published, common practice for a decade.

But I wonder that all the time with patents.

I mean, for example, selective frame skipping is an exemplary feature? Emulators have been doing this since the early 90s -- probably earlier but I wouldn't know for sure.
 

massoluk

Banned
Is this patent even valid considering prior art/existing products? I mean it sounds right for Nintendo to have a patent like this, but they are definitely not the first to make an emulation program.
 

Mortemis

Banned
Pokemon on mobile, yahoo about to bust a nut.

There's already emulators, might as well get money from it and do it yourself.
 
Top Bottom