Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 17 additions & 11 deletions docs/CACHE.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,20 @@ The database consists of resource entries connected to a unique id. The id is ca

#### Resource Types

These resource types contain the provided game data from a scraping
source.

##### title

A game title
The game title

##### platform

A game platform
The game platform, may differ from provided platform with `-p`.

##### description

A game description
The game description

##### publisher

Expand Down Expand Up @@ -96,32 +99,35 @@ Game rating, real number between 0 and 1

##### cover

A cover image filename for a game (file exists in `covers` subfolder)
Cover image filename for a game (file stored below `covers` subfolder)

##### screenshot

A screenshot image filename for a game (file exists in `screenshots` subfolder)
Screenshot image filename for a game (file stored below `screenshots` subfolder)

##### wheel

A wheel (logo) image filename for a game (file exists in `wheels` subfolder)
Wheel (logo) image filename for a game (file stored below `wheels` subfolder)

##### marquee

A marquee image filename for a game (file exists in `marquees` subfolder)
Marquee image filename for a game (file stored below `marquees` subfolder)

##### texture

A texture image (disc/cartridge) filename for a game (file exists in `textures` subfolder)
Texture image (disc/cartridge) filename for a game (file stored below `textures`
subfolder)

##### video

A video file filename for a game (file exists in `videos` subfolder)
Video file filename for a game (file stored below `videos` subfolder)

##### manual

(Since v3.12) A manual (PDF) file filename for a game (file exists in `manuals` subfolder)
Since v3.12: Manual (PDF) file filename for a game (file stored below `manuals`
subfolder)

##### fanart

(Since v3.18) A background image displayed in some frontends (e.g. Batocera) and themes for a game (file exists in `fanarts` subfolder)
Since v3.18: Background image displayed in some frontends (e.g. Batocera) and
themes for a game (file stored below `fanarts` subfolder)
23 changes: 15 additions & 8 deletions docs/PLATFORMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ maintain local changes to the `platforms_idmap.csv` in a separate file with a
`peas.json` overwrites the one from `peas.json`. The same applies for the
platforms ID-mapping (see next section).

!!! tip
!!! tip "Avoid Duplication"

If you need a specific folder name for a platform (on your setup or due to an
EmulationStation theme) use a symbolic link (for example `megadrive` (=folder)
Expand All @@ -72,16 +72,21 @@ The second file is used for to instruct scrapers to lookup games by the numeric
platform identifier the scraping site uses for queries. The file
`platforms_idmap.csv` defines exact platform id for the web APIs of
Screenscraper, MobyGames and the GamesDB. It is a CSV file which maps the
platform handle (e.g. `megadrive`) to the respective platform id of the scraping
platform handle (e.g. `c64`) to the respective platform id of the scraping
site (selected with the CLI option `-s`):

```csv
folder,screenscraper_id,mobygames_id,tgdb_id
[...]
megadrive,1,16,36
c64,66,27,40
[...]
```

!!! tip "The Games DB"

The game data at TGDB is in rare case in different platforms to be found. Prominent example is Sega's Genesis respecitve Mega Drive. For these edgecases you may find the platform ids in the `platforms_idmap.csv` separated with an `|`. This means all platform ids will be tried to find a match in left-to-right order of the definition.


You can display the number with their platform name on each of the three
scraping sites in a more readable format with the script
`peas_and_idmap_verify.py`. Find the script sibling to the Skyscraper
Expand All @@ -90,13 +95,15 @@ site):

```
[...]
├── megadrive
│ ├── ScrS 1: Megadrive
│ ├── Moby 16: Genesis
│ └── TGDB 36: Sega Mega Drive
├── c64
│ ├── ScrS 66: Commodore 64
│ ├── Moby 27: Commodore 64
│ └── TGDB 40: Commodore 64
[...]
```

After the platform id is the textual representation the scraper source uses.

## How to Change Platform Aliases or Gamefile Extensions

Follow instructions in this section if you only want to overwrite platform alias
Expand Down Expand Up @@ -166,7 +173,7 @@ If you have multiple platforms defined in your local file make sure the platform
blocks are separated by a comma `,`.


!!! tip
!!! tip "Case-sensitivity in EmulationStation Configuration"

On RetroPie you may also have to edit `~/.emulationstation/es_systems.cfg` and
add `.bin` and `.BIN`.
Expand Down
31 changes: 23 additions & 8 deletions docs/SCRAPINGMODULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,18 @@ over a table cell to display the scraper module as tooltip:
| [GameBase](#gamebase-db) | ✓ {title='GameBase'} | ✓ {title='GameBase'} |   {title='GameBase'} | ✓ {title='GameBase'} | ✓ {title='GameBase'} | ✓ {title='GameBase'} | ✓ {title='GameBase'} | ✓ {title='GameBase'} | ✓ ² {title='GameBase'} | ✓ {title='GameBase'} | ✓ {title='GameBase'} |   {title='GameBase'} |   {title='GameBase'} |   {title='GameBase'} |   {title='GameBase'} |   {title='GameBase'} |   {title='GameBase'} |
| [Internet Game DB (IGDB)](#igdb) | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} | ✓ {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |   {title='Internet Game DB (IGDB)'} |
| [File Import](#custom-resource-import) | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} | ✓ {title='File Import'} |
| [MobyGames](#mobygames) | ✓ {title='MobyGames'} | {title='MobyGames'} | ✓ {title='MobyGames'} | {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} | {title='MobyGames'} | {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |
| [MobyGames](#mobygames) | ✓ {title='MobyGames'} | ✓ ⁴ {title='MobyGames'} | ✓ {title='MobyGames'} | See ⁴ {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} | See ⁴ {title='MobyGames'} | See ⁴ {title='MobyGames'} | ✓ {title='MobyGames'} | ✓ {title='MobyGames'} | See ⁴ {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |   {title='MobyGames'} |
| [OpenRetro](#openretro) | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} |   {title='OpenRetro'} | ✓ {title='OpenRetro'} | ✓ {title='OpenRetro'} |   {title='OpenRetro'} |   {title='OpenRetro'} | ✓ {title='OpenRetro'} |   {title='OpenRetro'} |   {title='OpenRetro'} |   {title='OpenRetro'} |
| [ScreenScraper](#screenscraper) | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} | ✓ {title='ScreenScraper'} |
| [The Games DB](#thegamesdb-tgdb) | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} |   {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} |   {title='The Games DB'} | ✓ {title='The Games DB'} | ✓ {title='The Games DB'} |   {title='The Games DB'} |   {title='The Games DB'} | ✓ {title='The Games DB'} |
| [ZXInfo](#zxinfo-formerly-world-of-spectrum) | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} |   {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ ³ {title='ZXInfo'} | ✓ {title='ZXInfo'} | ✓ {title='ZXInfo'} |   {title='ZXInfo'} |   {title='ZXInfo'} |   {title='ZXInfo'} |   {title='ZXInfo'} |   {title='ZXInfo'} |   {title='ZXInfo'} |
| Coverage | 10/10 | 10/10 | 8/10 | 10/10 | 9/10 | 10/10 | 10/10 | 8/10 | 8/10 | 10/10 | 10/10 | 4/10 | 4/10 | 5/10 | 3/10 | 2/10 | |
| Coverage | 10/10 | 10/10 | 8/10 | 9/10 | 9/10 | 10/10 | 10/10 | 7/10 | 7/10 | 10/10 | 10/10 | 4/10 | 4/10 | 5/10 | 3/10 | 2/10 | 3/10 |

**Remarks**:
¹ Skyscraper uses ArcadeDB's Flyer and as a failsafe the Title screen, as Arcade games usually where not sold in a box
² GameBase provides only an adult flag, thus it is either 18 or no age rating
³ The source zxinfo.dk provides only an x-rated flag, thus it is either 18 or no age rating
³ The source zxinfo.dk provides only an x-rated flag, thus it is either 18 or no age rating
⁴ Release date will contain the first release date worldwde with Hobbyist API subscription. Age Recommendation, Rating, Max. Players, Video and release date per platform require an APIv2 Bronze subscription or higher. Skyscraper supporting anything else than a Hobbyist subscription is very unlikely.

### Recognized Keywords in Query

Expand All @@ -39,11 +40,11 @@ over a table cell to display the scraper module as tooltip:
| gamebase | Game filename, Game title and Game CRC (automatically detected). Except for CRC, globbing patterns (`*` and `'?`) can be used. |
| igdb | Title or use id=... to query by IGDB game ID |
| import | No query supported |
| mobygames | Title or numeric MobyGames ID (see _Identifiers_ section their website / on game details) |
| mobygames | Title or numeric MobyGames ID (see _Moby ID:_ right below the title when displaying a game on the website) |
| openretro | Only title |
| screenscraper | romnom=, crc=, md5=, sha1=; see [Screenscraper documentation](https://www.screenscraper.fr/webapi2.php?alpha=0&numpage=0#jeuInfos) for description |
| thegamesdb, tgdb | Only title |
| zxinfo (worldofspectrum) | Title, game Id (id=...) or game filehash (MD5 or SHA512) |
| zxinfo (worldofspectrum) | Title, game Id (id=...) or game filehash (MD5 or SHA512) |

!!! tip "Aliases for Game Filenames"

Expand Down Expand Up @@ -143,7 +144,7 @@ The database also supports many non-Amiga platforms, but there's no doubt that A
- Shortname: _`mobygames`_
- Type: _Online_
- Website: _[www.mobygames.com](https://www.mobygames.com)_
- Type: _File name_ or _Moby Games ID_ search based
- Type: _File name_ or _MobyGames ID_ search based
- User credential support: _None required_
- API request limit: _1 request per 5 seconds (Hobbyist subscription)_
- Thread limit: _1_
Expand All @@ -153,9 +154,23 @@ The database also supports many non-Amiga platforms, but there's no doubt that A
- `Skyscraper -p fba -s mobygames <SINGLE FILE TO SCRAPE>`
- `Skyscraper -p fba -s mobygames --startat <FILE TO START AT> --endat <FILE TO END AT>`

MobyGames. What can I say. If you haven't heard about this database before you've been missing out. It's one of the best and oldest games databases on the internet. You'll probably come across references to MobyGames on other sites when searching for retro games. There's a reason for that - it's that good.
MobyGames APIv2 imposes more limits than APIv1. Not only you will need a payed
subscription (to get an API key), but even with the entry-level (=Hobbyist)
subscription you cannot scrape the same data as with APIv1. These are the
limitations:

There's a caveat to the module as it requires a subscription to get an API key, but you get well curated game information especially for hard to find titles. Examine the possible options: https://www.mobygames.com/api/subscribe/. Once you have obtained an API key add it to the [userCreds](CONFIGINI.md#usercreds) configuration (without any colon) in the [mobygames] INI section.
- Release date will contain only the first release date worldwde with Hobbyist API
subscription.
- Age Recommendation, Rating, Maximum of Players, Video and release date per
platform require an APIv2 Bronze subscription or higher.

Skyscraper supporting anything else than a Hobbyist subscription is very
unlikely. It is saddening to see the service of MobyGames degrading after the
acquisition by Atari SA.

However, once you have obtained an API key (starting with `moby_...`) add it to
the [userCreds](CONFIGINI.md#usercreds) configuration (without any colon) in the
`[mobygames]` INI-file section.

### IGDB

Expand Down
4 changes: 3 additions & 1 deletion mobygames_platforms.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"84": "Browser",
"231": "Bubble",
"154": "Camputers Lynx",
"332": "Casio FP-1000/1100",
"124": "Casio Loopy",
"306": "Casio Programmable Calculator",
"125": "Casio PV-1000",
Expand Down Expand Up @@ -186,6 +187,7 @@
"44": "Nintendo DS",
"87": "Nintendo DSi",
"203": "Nintendo Switch",
"333": "Nintendo Switch 2",
"266": "North Star",
"244": "Noval 760",
"116": "Nuon",
Expand Down Expand Up @@ -306,7 +308,7 @@
"82": "Wii",
"132": "Wii U",
"3": "Windows",
"5": "Windows 3.x",
"5": "Windows 16-bit",
"140": "Windows Apps",
"66": "Windows Mobile",
"98": "Windows Phone",
Expand Down
1 change: 1 addition & 0 deletions peas.json
Original file line number Diff line number Diff line change
Expand Up @@ -1092,6 +1092,7 @@
"genesis",
"mega drive",
"sega mega drive",
"sega genesis",
"sega mega drive/genesis"
],
"formats": [
Expand Down
4 changes: 2 additions & 2 deletions platforms_idmap.csv
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ mame-advmame,75,143,23
mame-libretro,75,143,23
mame-mame4all,75,143,23
mastersystem,2,26,35
megadrive,1,16,36
megadrive,1,16,36|18
moto,141,147,-1
msx,113,57,4929
n64,14,9,3
Expand Down Expand Up @@ -122,7 +122,7 @@ naomi,56,-1,23
neogeocd,70,54,4956
palm,219,65,-1
pcenginecd,114,45,4955
plus4,99,115,5007
plus4,99,115,5007|5006
ps3,59,81,12
ps4,60,141,4919
psvita,62,105,39
Expand Down
Loading
Loading