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
19 changes: 10 additions & 9 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ A PKGi-style ROM downloader for jailbroken PS3 that downloads ROMs from HTTP sou

```
┌─────────────────────────────────────────────────────────┐
│ Myrient Indexer (PC) │
│ Python script that crawls myrient, generates TSV DBs │
│ archive.org Indexer (PC) │
│ Python script fetches archive.org metadata, generates │
│ TSV DBs. Runs via GitHub Actions or manual. │
│ Runs: cron job, GitHub Actions, or manual │
└───────────────────────┬─────────────────────────────────┘
│ uploads
Expand Down Expand Up @@ -45,9 +46,9 @@ A PKGi-style ROM downloader for jailbroken PS3 that downloads ROMs from HTTP sou

```
PLATFORM REGION NAME URL SIZE
PSX USA Crash Bandicoot https://myrient.erista.me/files/... 123456789
PS2 EUR Gran Turismo 4 https://myrient.erista.me/files/... 4500000000
NES USA Super Mario Bros https://myrient.erista.me/files/... 24576
PSX USA Crash Bandicoot https://archive.org/download/... 123456789
NES USA Super Mario Bros https://archive.org/download/... 24576
GBA USA Advance Wars https://archive.org/download/... 5242880
```

## PS3 App Modules
Expand Down Expand Up @@ -195,8 +196,8 @@ romi_snprintf(text, sizeof(text), "%s %s", _("Press"), _("to continue"));

## Data Source

Primary: https://myrient.erista.me/files/
- No-Intro: Cartridge-based ROMs (NES, SNES, GB, GBA, Genesis, etc.)
- Redump: Disc-based games (PSX, PS2, PS3, GameCube, etc.)
Primary: https://archive.org/
- No-Intro: Cartridge-based ROMs (NES, SNES, GB, GBC, GBA, Genesis, SMS, Atari, etc.)
- Redump: Disc-based games (PSX, etc.)

Platform detection via regex on directory paths (e.g., "Sony - PlayStation 2" → PS2)
See `tools/archive_org_indexer.py` for the full list of archive.org item IDs per platform.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ ROM and ISO downloader for PlayStation 3 - A PKGi adaptation for retro gaming.
## Features

- Multi-platform ROM downloads (PSX, PS2, PS3, NES, SNES, GB, GBC, GBA, Genesis, SMS)
- Integrated with Myrient ROM archive (No-Intro, Redump)
- Integrated with archive.org ROM archive (No-Intro, Redump)
- Multiple storage device support (HDD, USB 0-7, NTFS 0-7)
- RetroArch ROM organization by platform
- Background music with 9 language translations
Expand Down Expand Up @@ -88,7 +88,7 @@ ROMs are automatically organized by platform:

## Database Generation

ROMi uses TSV databases generated from Myrient ROM archives. See [tools/README.md](tools/README.md) for the myrient indexer documentation and database generation instructions.
ROMi uses TSV databases generated from archive.org No-Intro/Redump collections. See [tools/README.md](tools/README.md) for the indexer documentation and database generation instructions.

## Building

Expand Down Expand Up @@ -125,7 +125,7 @@ make ps3-deploy PS3_IP=192.168.1.100
## Credits

- Fork of [PKGi PS3](https://github.com/bucanero/pkgi-ps3) by bucanero
- ROM databases: [Myrient](https://myrient.erista.me/) (No-Intro, Redump)
- ROM databases: [archive.org](https://archive.org) (No-Intro, Redump)
- PS3 toolchain: PSL1GHT, ps3dev
- Libraries: libcurl, mini18n, ya2d, mbedTLS

Expand Down
4 changes: 2 additions & 2 deletions source/romi_ps3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1382,7 +1382,7 @@ void romi_curl_init(CURL *curl)
{
static struct curl_slist *headers = NULL;

// Mimic wget headers exactly - Myrient whitelists wget/curl
// Mimic wget headers for HTTP download compatibility
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Wget/1.24");

// Match wget's minimal headers
Expand Down Expand Up @@ -1537,7 +1537,7 @@ romi_http* romi_http_get(const char* url, const char* content, uint64_t offset,
}
curl_easy_setopt(http->curl, CURLOPT_URL, url);

// NOTE: No Referer header - plain curl doesn't send it, and Myrient rate-limits browser-like requests
// NOTE: No Referer header - plain curl doesn't send it

LOG("starting http GET request for %s", url);

Expand Down
12 changes: 7 additions & 5 deletions tools/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,20 @@ <h2>Database Files</h2>
</ul>
<p>Individual platform database files (for offline use):</p>
<ul>
<li><a href="romi_NES.tsv">romi_NES.tsv</a> - NES</li>
<li><a href="romi_SNES.tsv">romi_SNES.tsv</a> - SNES</li>
<li><a href="romi_GB.tsv">romi_GB.tsv</a> - Game Boy</li>
<li><a href="romi_GBC.tsv">romi_GBC.tsv</a> - Game Boy Color</li>
<li><a href="romi_GBA.tsv">romi_GBA.tsv</a> - Game Boy Advance</li>
<li><a href="romi_NES.tsv">romi_NES.tsv</a> - NES</li>
<li><a href="romi_SNES.tsv">romi_SNES.tsv</a> - SNES</li>
<li><a href="romi_Genesis.tsv">romi_Genesis.tsv</a> - Sega Genesis</li>
<li><a href="romi_SMS.tsv">romi_SMS.tsv</a> - Sega Master System</li>
<li><a href="romi_PSX.tsv">romi_PSX.tsv</a> - PlayStation</li>
<li><a href="romi_N64.tsv">romi_N64.tsv</a> - Nintendo 64</li>
<li><a href="romi_Arcade.tsv">romi_Arcade.tsv</a> - Arcade (MAME)</li>
<li><a href="romi_Atari2600.tsv">romi_Atari2600.tsv</a> - Atari 2600</li>
<li><a href="romi_Atari5200.tsv">romi_Atari5200.tsv</a> - Atari 5200</li>
<li><a href="romi_Atari7800.tsv">romi_Atari7800.tsv</a> - Atari 7800</li>
<li><a href="romi_AtariLynx.tsv">romi_AtariLynx.tsv</a> - Atari Lynx</li>
</ul>

<p><small>Source: <a href="https://myrient.erista.me">Myrient</a> | Updated weekly via GitHub Actions</small></p>
<p><small>Source: <a href="https://archive.org">archive.org</a> (No-Intro, Redump) | Updated weekly via GitHub Actions</small></p>
</body>
</html>
Loading