EmulatorJS/README.md

241 lines
5.4 KiB
Markdown
Raw Normal View History

2022-02-23 03:10:41 +00:00
<p align="center">
<img src="https://user-images.githubusercontent.com/74841470/155255251-0a0840ee-51d7-4f9e-878b-1be287d9a984.png" width="250">
</p>
2021-12-20 16:30:29 +00:00
2022-02-23 15:02:59 +00:00
# EmulatorJS
2021-12-20 16:30:29 +00:00
2021-12-31 17:49:03 +00:00
Self-hosted **Javascript** emulation for various system.
2021-12-20 16:30:29 +00:00
2021-12-31 17:52:21 +00:00
<br>
2021-12-31 17:49:03 +00:00
*If something doesn't work, please consider opening an* ***[Issue]*** <br>
*with as many details as possible, as well as the console log.*
2021-04-05 20:37:22 +00:00
2021-12-31 17:49:03 +00:00
*The* ***Screen Recording*** *option currently doesn't support* ***Audio*** *.*
2021-04-06 18:49:16 +00:00
2022-02-14 18:27:56 +00:00
The **beta** version of the emulator core files are now avaliable. (For limited systems) <br>
If you would like to use it, please add the following line to your code.
```js
EJS_BETA = true;
```
When reporting bugs, please specify that you are using the beta version
2021-12-31 17:49:03 +00:00
---
2021-08-25 19:49:00 +00:00
2022-01-13 21:30:06 +00:00
**⸢ [Example Use] ⸥ ⸢ [Emulator Demo] ⸥ ⸢ [Beta] ⸥**
2021-04-06 18:39:36 +00:00
2021-12-31 17:49:03 +00:00
---
2021-04-19 16:30:24 +00:00
2021-12-31 17:49:03 +00:00
## Supported Systems
2021-04-05 20:37:22 +00:00
2022-01-13 22:04:36 +00:00
#### Nintendo
2022-01-13 22:41:05 +00:00
**[Game Boy Advance][Nintendo Game Boy Advance]**|**[Famicom / NES][NES / Famicom]**|**[Virtual Boy][Virtual Boy]**|**[Game Boy][Nintendo Game Boy]**|**[SNES]**|**[DS][Nintendo DS]**|**[64][Nintendo 64]**
2022-01-13 22:04:36 +00:00
#### Sega
2022-01-13 22:41:05 +00:00
**[Master System][Sega Master System]**|**[Mega Drive][Sega Mega Drive]**|**[Game Gear][Sega Game Gear]**|**[Saturn][Sega Saturn]**|**[32X][Sega 32X]**|**[CD][Sega CD]**
2022-01-13 22:04:36 +00:00
#### Atari
2022-01-13 22:41:05 +00:00
**[Jaguar][Atari Jaguar]**|**[Lynx][Atari Lynx]**|**[7800][Atari 7800]**|**[2600][Atari 2600]**
2022-01-13 22:04:36 +00:00
#### Other
2022-01-13 22:41:05 +00:00
**[TurboGrafs 16 PC Engine][TurboGrafs-16 / PC Engine]**|**[WanderSwan Color][WanderSwan / Color]**|**[Neo Geo Poket][Neo Geo Poket]**|**[PlayStation]**|**[Arcade]**|**[MSX]**|**[3DO]**
2021-04-05 20:37:22 +00:00
2021-12-31 17:49:03 +00:00
---
2021-04-05 20:37:22 +00:00
2021-12-31 17:49:03 +00:00
## Usage
2021-04-05 20:37:22 +00:00
2021-12-31 17:49:03 +00:00
*For questions please use the* ***[Issue]*** *tab.*
2021-08-02 12:31:28 +00:00
2021-12-31 17:49:03 +00:00
<br>
2021-12-21 00:35:17 +00:00
2021-12-31 17:49:03 +00:00
##### Setup
2021-12-21 00:35:17 +00:00
2021-12-31 17:49:03 +00:00
1. Download this repository.<br>
*`Code ➞ Download As Zip`*
2021-12-21 00:35:17 +00:00
2021-12-31 17:49:03 +00:00
2. Use a **WebServer** to host the emulator.
3. Use your **Browser** to navigate to `localhost`
2021-12-21 00:35:17 +00:00
<br>
2022-01-13 21:30:06 +00:00
##### ROMs
2021-12-31 17:49:03 +00:00
2022-01-13 21:30:06 +00:00
**ROMs** can be used as `zip` / `rar` / `7z` archives.
2021-12-31 17:49:03 +00:00
<br>
2022-01-13 21:30:06 +00:00
##### Netplay
2021-12-31 17:49:03 +00:00
2022-01-13 21:30:06 +00:00
By default **Netplay** is ***disabled***, <br>
to enable it, add the following:
```js
2022-01-13 22:58:26 +00:00
// ID in your website, required for netplay. Each game in your site should have a different ID
2022-01-13 22:04:36 +00:00
EJS_gameID = 1;
2021-12-21 00:35:17 +00:00
```
2022-01-13 21:30:06 +00:00
2022-01-13 21:31:00 +00:00
<br>
2022-02-14 18:27:56 +00:00
by default, the netplay server url will be `emulatorjs.herokuapp.com`, but to default to the default `ws.emulatorjs.com` server add the following line
```js
EJS_oldEJSNetplayServer = true;
```
<br>
*To self host:*
2022-01-13 21:30:06 +00:00
1. Download the **[Server]**.
2022-01-18 19:59:30 +00:00
2. Specify the servers address with:
2022-01-13 21:30:06 +00:00
```js
2022-01-18 19:59:30 +00:00
EJS_netplayUrl = 'http://localhost:3000/'; // Absolute Url To Your Netplay Server
2021-12-21 00:35:17 +00:00
```
2021-12-31 17:49:03 +00:00
<br>
2021-12-21 00:35:17 +00:00
2022-02-14 18:27:56 +00:00
##### Custom Save Filename
2021-12-31 17:49:03 +00:00
To customize the filename of save states <br>
simply add the following lines of code.
```js
2022-02-14 18:27:56 +00:00
EJS_gameName = 'Game Name';
2021-12-21 00:35:17 +00:00
```
2021-12-31 17:49:03 +00:00
**➞ Save Filename:** `Game Name.state`
<br>
##### AD
To place an advertisement in front of the <br>
`play now` screen, include the following line:
```js
2022-02-14 18:27:56 +00:00
EJS_AdUrl = 'URL';
2021-12-21 00:35:17 +00:00
```
2021-12-31 17:49:03 +00:00
2022-01-05 18:38:25 +00:00
<br>
2022-01-13 21:30:06 +00:00
##### Interface Color
To use a different color for the emulator interface, use:
2022-01-05 18:38:25 +00:00
2022-01-13 21:30:06 +00:00
```js
EJS_color = '#FF0000'; // Hex Color Code
2022-01-05 18:38:25 +00:00
```
2022-01-13 21:30:06 +00:00
<br>
##### Direct Start
To start the emulator immediately, add this line:
```js
2022-01-05 18:38:25 +00:00
EJS_startOnLoaded = true;
```
2022-01-13 21:30:06 +00:00
*For audio to play the user still* <br>
*needs to interact with the page.*
2022-01-05 18:38:25 +00:00
<br>
2022-01-13 21:30:06 +00:00
##### Custom Paths
2022-01-05 18:38:25 +00:00
2022-01-13 21:30:06 +00:00
Paths to emulator files can be customized with:
```js
2022-01-05 18:38:25 +00:00
EJS_paths = {
2022-01-15 22:36:20 +00:00
'fileName' : '/somepath',
'emulator.js' : 'https://example.com/emulator.js',
'n64-asmjs.data' : '/asdfds.data'
2022-01-13 21:30:06 +00:00
};
2022-01-05 18:38:25 +00:00
```
2022-01-13 21:30:06 +00:00
*If a file is not defined, the default is used.*
2022-01-23 22:36:31 +00:00
<br>
2022-02-14 18:27:56 +00:00
##### Localization
2022-03-01 02:22:55 +00:00
please see [the localization readme]
2022-02-14 18:27:56 +00:00
<br>
2022-01-23 22:36:31 +00:00
##### USING MAME SYSTEM
you must add the line
2022-02-14 18:27:56 +00:00
```js
2022-01-23 22:36:31 +00:00
EJS_core = 'mame';
```
and the line
2022-02-14 18:27:56 +00:00
```js
2022-01-23 22:36:31 +00:00
EJS_mameCore = '' // mame core options (example: '4|0')
```
set the mame core value to the mame core number (`1` - `6`) + `|` + save states supported (`0` or `1`)
<br>
2022-01-13 21:30:06 +00:00
2022-01-15 23:28:18 +00:00
# LICENSE
2022-01-15 22:36:20 +00:00
Licenced under the Apache License 2.0
2022-02-14 18:27:56 +00:00
Please state changes and the licence when re-distributing
2022-03-01 02:22:55 +00:00
[Read the whole license here]
If I find a repository that does not follow the licence, I will report it.
2022-01-15 22:36:20 +00:00
2021-12-31 17:49:03 +00:00
<!----------------------------------------------------------------------------->
[Example Use]: https://coldcast.org/games/1/Super-Mario-Bros
[Emulator Demo]: https://ethanaobrien.github.io/emulatorjs/
2022-01-13 21:30:06 +00:00
[Beta]: https://emulatorjs.netlify.app/
2021-12-31 17:49:03 +00:00
2021-12-31 17:50:40 +00:00
[Issue]: https://github.com/ethanaobrien/emulatorjs/issues
2021-12-31 17:49:03 +00:00
[This repository]: https://github.com/linuxserver/emulatorjs
2022-01-18 19:59:30 +00:00
[Server]: https://github.com/ethanaobrien/emuserver/releases
2022-01-13 21:30:06 +00:00
2022-03-01 02:22:55 +00:00
[the localization readme]: data/localization/
[Read the whole license here]: LICENSE
2021-12-31 17:49:03 +00:00
[NES / Famicom]: docs/NES-Famicom.md
[SNES]: docs/SNES.md
[Nintendo 64]: docs/Nintendo%2064.md
[Nintendo Game Boy]: docs/Nintendo%20Game%20Boy.md
[Nintendo Game Boy Advance]: docs/Nintendo%20Game%20Boy%20Advance.md
[Nintendo DS]: docs/Nintendo%20DS.md
[PlayStation]: docs/PlayStation.md
[Virtual Boy]: docs/Virtual%20Boy.md
[Sega Mega Drive]: docs/Sega%20Mega%20Drive.md
[Sega Master System]: docs/Sega%20Master%20System.md
[Sega CD]: docs/Sega%20CD.md
[Atari Lynx]: docs/Atari%20Lynx.md
[MSX]: docs/MSX.md
[3DO]: docs/3DO.md
[Sega 32X]: docs/Sega%2032X.md
[Atari Jaguar]: docs/Atari%20Jaguar.md
[Neo Geo Poket]: docs/Neo%20Geo%20Poket.md
[Sega Game Gear]: docs/Sega%20Game%20Gear.md
[Sega Saturn]: docs/Sega%20Saturn.md
[Atari 7800]: docs/Atari%207800.md
[WanderSwan / Color]: docs/WanderSwan-Color.md
[TurboGrafs-16 / PC Engine]: docs/TurboGrafs%2016-PC%20Engine.md
[Arcade]: docs/Arcade.md
[Atari 2600]: docs/Atari%202600.md