# JavaScript NES Emulator: CycloaJS

Please drag & drop your .NES game or select a homebrew game below.

.NESファイルをドラッグ・アンド・ドロップするか、以下から無料なゲームを選択すると遊ぶことができます。

## Software Requirements / 動作要件

Chrme/Firefox, Safari for iPad and Safari for Windows(v5). Sounds are available only for Chrome and Firefox (Web Audio API and Audio Data API).

Chrome/Firefox、iPad版Safari/Windows版Safari5での動作を確認しています。ChromeとFirefoxのみサウンドも出力されます（Web Audio API and Audio Data API)。

## Control / 操作方法

Player 1 | Button
--- | ---
A | Z
B | X
Start | Enter
Select | Space
↑ | ↑
→ | →
← | ←
↓ | ↓

Currently player2 is not supported. I have tried many times to support Gamepad API, but the API does not work at all... :(

現在プレイヤ２は対応していません。ゲームパッドAPIにも何度も対応しようとしたのですが、ゲームパッドの状態が拾えません…。

## About CycloaJS

This emulator is a port of Cycloa, a NES emulator written in C++, to JavaScript. The aim of this development is survey of JavaScript performance. In PC browsers, this emulator runs faster than jsnes with funciton inline expansin, but source code has been very messy. In iPad (1st gen), both emulators runs at more of the same speed.

このエミュレータは、C++で書かれたCycloaいうエミュレータのJavaScriptへの移植です。開発の主目的はJavaScriptのパフォーマンスの調査です。その結果、関数呼び出しのインライン化などを行うことでPC上では十分なパフォーマンスを出せることがわかったものの、ソースコードの可読性が非常に下がってしまうことが分かりました。また、PCでは既存のjsnesよりも数倍と十分な高速化ができましたが、iPad上ではFPSに有意な差が出ませんでした。

## Sourcecode

All sourecodes are licensed under GPL v3 or later, and available on Github.

ソースコードのライセンスはGPL v3かそれ以降のバージョンです。ソースコードはGithubで得ることができます。

## About sample games

### Alter Ego

Alter Ego is a puzzle action game, originally developed by Denis Grachev in ZX Spectrum. This NES version is ported by Shiru and Kulor in 2011. Warning! This game is "free of charge", but not licensed under GPL or any "opensource" license.

You can control a hero and his "alter ego". The hero and his alter ego move in mirrored fashion each other. You can swap them with B button in limited times. To complete stage, you have to collect all items in the satage.

Alter Egoは、Denis GrachevさんがZXスペクトラム向けに2011年に開発したアクションパズルゲームで、それを同年にShiruさんとKulorさんがファミコン向けに移植したものを今回許可を頂いて転載させて頂いています。「無料」のゲームですが、GPLなどの自由なライセンスではありません。

画面上には操作する主人公と、そのアルター・エゴ（分身）が居ます。分身はステージに応じて、左右または上下方向に対して対称に動きます。Bボタンを押すことで分身と主人公を制限回数付きで入れ替えることができ、これを使って通常行けない場所に行くことができます。

主人公と分身を上手く入れ替えて、ステージ上のアイテムをすべて集めてください！敵キャラに触れるか、ステージ上から落下してしまうとアウトです。

### thwaite

thwaite is a shooting-game developed by Damian Yerrick. You have to break out the ICBM and save your town! Is is licensed under GPL v3 or later. Here is a "README" document.

thwaiteは、Damian Yerrickさんによって開発されたシューティングゲームです。 空から降り注ぐICBMを撃ち落とし、あなたの街を守りましょう。 ライセンスはGPL v3かそれ以降です。 READMEファイルはこちらです。

### Concentration Room

Contentration Room is a card-matching game developed by Damian Yerrick. Is is licensed under GPL v3 or later. Here is a "README" document.

Contentration Roomは、Damian Yerrickさんによって開発された神経衰弱ゲームです。 ライセンスはGPL v3かそれ以降です。 READMEファイルはこちらです。

### LJ65

LJ65 is a tetris(R)-like action puzzle game developed by Damian Yerrick. Is is licensed under GPL v2or later. Here is a "README" document.

LJ65は、Damian Yerrickさんによって開発された、テトリス(R)に似たアクションパズルゲームです。 ライセンスはGPL v2かそれ以降です。 READMEファイルはこちらです。