{"id":23914481,"url":"https://github.com/ra101/pokeshelf","last_synced_at":"2025-02-23T18:41:49.864Z","repository":{"id":63279446,"uuid":"565065099","full_name":"ra101/PokeShelf","owner":"ra101","description":"Quick Access Interface for All of Your Pokémon Games","archived":false,"fork":false,"pushed_at":"2022-12-07T10:18:24.000Z","size":7174,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"core","last_synced_at":"2025-01-05T10:13:54.869Z","etag":null,"topics":["pokemon","pokemon-essentials","python","python-gui","python3","python3-gui","tkinter","tkinter-gui"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ra101.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-12T08:19:14.000Z","updated_at":"2022-11-16T08:58:55.000Z","dependencies_parsed_at":"2023-01-24T16:45:26.068Z","dependency_job_id":null,"html_url":"https://github.com/ra101/PokeShelf","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra101%2FPokeShelf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra101%2FPokeShelf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra101%2FPokeShelf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ra101%2FPokeShelf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ra101","download_url":"https://codeload.github.com/ra101/PokeShelf/tar.gz/refs/heads/core","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240364295,"owners_count":19789756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pokemon","pokemon-essentials","python","python-gui","python3","python3-gui","tkinter","tkinter-gui"],"created_at":"2025-01-05T10:14:20.633Z","updated_at":"2025-02-23T18:41:49.829Z","avatar_url":"https://github.com/ra101.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n\n  \u003ch1 id=\"-----\"\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./Assets/title.png\" height=\"300px\"\u003e\n\u003c/p\u003e\n\n  \u003c/h1\u003e\n\n\u003ch1 id=\"-----\"\u003e\n\u003ca href=\"https://github.com/ra101/PokeShelf\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Source%20code-404040?style=for-the-badge\u0026logo=github\" alt=\"source_code\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/releases/latest/download/PokeShelf.zip\"\u003e\u003cimg src=\"https://img.shields.io/badge/download-639?style=for-the-badge\u0026logo=windows\" alt=\"download\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/releases/download/v1.2.4/PokeShelf.zip\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponser-dd6633?style=for-the-badge\u0026logo=buymeacoffee\u0026logoColor=white\" alt=\"download\"\u003e\u003c/a\u003e\n\n\n\u003c/h1\u003e\n\n\u003ca href=\"https://github.com/ra101/PokeShelf/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ra101/PokeShelf?style=for-the-badge\u0026color=goldenrod\u0026label=⭐ Stars\" alt=\"Stars\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/ra101/PokeShelf?style=for-the-badge\u0026color=aaa\u0026label=⛓️ Forks\" alt=\"Forks\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/blob/core/LICENSE\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/license/ra101/POkeShelf?style=for-the-badge\u0026label=%F0%9F%93%9C%20License\u0026color=critical\" alt=\"License\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues/ra101/PokeShelf?style=for-the-badge\u0026label=⚠️ Issuues\u0026color=39e\" alt=\"Open Issues\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/ra101/PokeShelf/graphs/contributors\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/contributors/ra101/PokeShelf?style=for-the-badge\u0026label=%F0%9F%98%8E%20Devs\u0026color=goldenrod\" alt=\"Contributors\"\u003e\u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n## 📄 Prerequisite\n\nThere various methods to make a Pokémon fangames. The most notable ones are:\n\n- Using [Pokémon Essentials](https://pokemon-fan-game.fandom.com/wiki/Pok%C3%A9mon_Essentials), A base [RPG Maker XP](https://www.rpgmakerweb.com/products/rpg-maker-xp) project that comes with its own debugger, map connector and alot of free tools, It is community driven project, and is always up-to-date! RPG-Maker-XP only compiles games to Windows, so these are essentially Windows only games!\n- By [ROM Hacking](https://en.wikipedia.org/wiki/ROM_hacking), These are created by editing the base ROM of _legally owned_ Pokémon game, We will be taking only [GameBoy Series](https://en.wikipedia.org/wiki/Game_Boy_Advance) and [Nintendo DS](https://en.wikipedia.org/wiki/Nintendo_DS) in account, since they have the most used games as base Image. These Fangames are made for their respective console, but can be played on any device using [Emulator](https://en.wikipedia.org/wiki/Emulator)!\n\n\u003cbr/\u003e\n\n## 💼 About\n\n\u003cp align=\"center\"\u003e\n\u003ci\u003e\u003cb\u003e\"\u003c/b\u003eThose who play Pokémon Games, typically have alot of them\u003cb\u003e\"\u003c/b\u003e\u003c/i\u003e  ~ My Experience\n\u003c/p\u003e\n\n**PokéShelf** is a living gallery that hosts all games downloaded/installed by the User, May it be _Essentials_ game or GBx/NDS ROM!\n\n- PokéShelf itself is themed like a Pokémon game menu, with almost no mouse input and key bindings similar to _Emulators_ and _Essentials_ game, all this to maintain the Immersion.\n- Once Configured, Play Games Directly from PokeShelf, even the ones that require Emulator!\n- You can Add Custom Background Image/Video and Custom Music for each fangame.\n- Auto Add functionality for BG and Music for most of the _Essentials_ Games, To enable this functionality with ROMs or with your incompatible _Essentials_ Game, Check the [BG Auto-Add Guide](#-how-bg-auto-add-works).\n- Lastly, A Quit-to-Tray Option, if required, _I personally never used It._\n\n\u003cbr/\u003e\n\n## 💥 Get Started\n\n\n\nYou are First Encountered with the **Splash** Screen, Add a game in order to get in the **Shelf**.\n\n\u003cbr/\u003e\n\n\n( **θ** ) **Controls**:\n\n| Action       | Key                                   |\n| ------------ | ------------------------------------- |\n| Escape       | `\u003cEsc\u003e` │ `\u003cX\u003e`|\n| Navigation   | ⬆️ │ `\u003cShift-Tab\u003e`  ; ⬇️ │ `\u003cTab\u003e`|\n| Adjust Value | ⬅️ ; ➡️|\n| Enter        | `\u003cEnter\u003e` │ `\u003cC\u003e` │`\u003cZ\u003e` │`\u003cSpace\u003e` |\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n**( I )**  Open **Options** by Press `Alt + S` *(S as in Settings)* or Click on `Options` in Menu Bar.\n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eAlt + S\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/AS.gif\"  width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n\n- Adjust Music Volume\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/MV.gif\" width=75% /\u003e\u003c/div\u003e\n\n- Adjust Screen Size, \u003e= L recommended\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/SS.jpg\" width=75% /\u003e\u003c/div\u003e\n\n- You can't update Game Order within Shelf, Edit it in `config.json`.\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/GO.jpg\" width=75% /\u003e\u003c/div\u003e\n\n- Add GBx Emulator if you intend to add GameBoy ROMs, [VisualBoy Advance](https://visualboyadvance.org/) is tested and recommended, It can emulate all GameBoy Series consoles (`.gb`, `.gbc`, `.gba`)\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/GB.jpg\" width=75% /\u003e\u003c/div\u003e\n\n- Add NDS Emulator if you intend to add Nintendo DS ROMs, [DeSmuME](https://desmume.org) is tested and recommended.\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/DS.jpg\" width=75% /\u003e\u003c/div\u003e\n\n- Activate Quit-to-Tray Option, if required\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/ST.gif\" width=75% /\u003e\u003c/div\u003e\n\n- `Save` to remember this for next time, `Cancel` to revert back or Press `Esc` to simply use these settings as a one time thing.\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/SC.gif\" width=75% /\u003e\u003c/div\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n**( II )**  Open **Add Game** by Press `Ctrl + A` *(A as in Add)* or Click on `Game \u003e Add Game` in Menu Bar.\n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eCtrl + A\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/CA.gif\" width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n\n- Add Essentials Game (`.exe`) **or** GBx ROM (`.gb`, `.gbc`, `.gba`)  **or** NDS ROM (`.nds`). *(While Adding ROMs make sure to have already added respective Emulator or else Save Button won't work)*\n-  As soon as you add Game, [Auto Add]((#-how-bg-auto-add-works)) functionality would kick in for `BG Image/Video` and `BG Music`, But incase it doesn't, You have ability to Manualy Select Both of Them\n   - File type for `BG Image/Video`: `.png`, `.jpg`, `.jpeg`, `.bmp`, `.gif`, `.mp4`, `.mkv`, `.webm`, `.avi`, `.mov`\n   - File type for `BG Music`: `.wav`, `.ogg`, `.flac` (unfortunately `.mid` is not yet supported)\n   - If it doesn't kick in, To enable this functionality with ROMs or with your incompatible _Essentials_ Game, Check the [BG Auto-Add Guide](#-how-bg-auto-add-works), and go to edit menu and readd the game.\n   \n   \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/AG.jpg\" width=75% /\u003e\u003c/div\u003e\n   \n- Press `Save`, It will send into the `Shelf` Screen, with your game displayed on front, `Cancel` will send you back to `Spash` Screen.\n\n  \u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/SC.gif\" width=75% /\u003e\u003c/div\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\n\n**( III )**  Once A Game is Added, You can go to **Shelf** Screen by `Ctrl + S` *(S as in Shelf)* or Click on `Game \u003e PokeShelf` in Menu Bar.\n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eCtrl + S\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/CS.gif\" width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n\n- You can use `\u003cLeft\u003e`-`\u003cRight\u003e` to navigate b/w Games; Press `\u003cEnter\u003e` to Exit Shelf and **Start** the selected Game!\n- To **Remove Game**, Simpily naviagte to the game you want to remove and Press `Ctrl + R` *(R as in Remove)* or Click on `Game \u003e Remove Game` in Menu Bar.\n\n  \u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eCtrl + R\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/CR.gif\" width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n- To **Edit Game**, Simpily naviagte to the game you want to edit and Press `Ctrl + E` *(E as in Edit)* or Click on `Game \u003e Edit Game` in Menu Bar.\n\n  \u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eCtrl + E\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/CE.gif\" width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\n\n**( IV )**  To get Details about the app, Press `Alt + A` *(A as in About)* or Click on `About` in Menu Bar.\n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003cth  align=\"center\"\u003e\u003ch3\u003e\u003ccode\u003eAlt + A\u003c/code\u003e\u003c/h3\u003e\u003c/th\u003e\u003cth\u003e\u003cdiv align=\"center\"\u003e\u003cimg src=\"./Assets/AA.gif\" width=\"200px\" /\u003e\u003c/div\u003e\u003c/th\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003cbr/\u003e\u003cbr/\u003e\n\n## 📜 How BG Auto-Add Works!\n\nBackground files are added automacially for Essentials Games, This is see how a typical Essentials Game Folder Structure Looks:\n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003ctd width=\"50%\"\u003eSo, Shelf automatically looks for \u003cul\u003e\u003cli\u003e\u003ccode\u003eBG Img/Vid\u003c/code\u003e in \u003ccode\u003e./Graphics/Titles/\u003c/code\u003e\u003c/li\u003e\u003cli\u003e\u003ccode\u003eBG Music\u003c/code\u003e in \u003ccode\u003e./Audio/BGM/\u003c/code\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/td\u003e\u003ctd\u003e\u003cdiv align=\"left\"\u003e\u003cimg src=\"./Assets/exe_struc.png\" width=\"75%\" /\u003e\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\u003cbr/\u003e\n\n### Priority List for File Name: \n\n*Lower the Rank, Higher the Priority*\n\n1. **`Shelf`**: for example, `shelf.gif` , `SHelf.mp4`, `ShElf.ogg`\n\n2. **`GameName`** : \n   - **Folder Name** for an **Essentials Game**, e.g.:`eSsEnstiAls gAme.png`, `Pokemon Uranium.wav` \n   -  ROM **File Name** for **ROM**, e.g.: `radical-red-v2.3a.jpg`, `unbound-v1.1.3.1.ogg `\n   \n3. **`Title`** : First file with name starting with **title**, e.g.: `title1.mkv`, `TitLe-random.flac`\n\n4. **`Splash`** : First file with name starting with **splash**, e.g.: `splash151.mkv`, `splash-splish.ogg`\n\n   \u003cbr/\u003e\n\n**To Make your Essentials Game PokéShelf Compactible, Developers are Recommended to use `Shelf`**\n\n\n\u003cbr/\u003e\n\n### Recommended Folder Structure for ROMs: \n\n\u003ctable align=\"center\"\u003e\u003ctr\u003e\u003ctd width=\"50%\"\u003eSince Shelf is already checking for files in \u003ccode\u003e./Graphics/Titles/\u003c/code\u003e and \u003ccode\u003e./Audio/BGM/\u003c/code\u003e, We can create those folders and just add files there, (for each of the roms) \u003cbr /\u003e\u003cbr /\u003e\u003ccode\u003eShelf\u003c/code\u003e, \u003ccode\u003eTitle\u003c/code\u003e and \u003ccode\u003eSpalsh\u003c/code\u003e will display the same Image for all the ROMs, therefore \u003cb\u003e\u003ccode\u003eGameName\u003c/code\u003e\u003c/b\u003e is the only one applicable when you have more than one ROM.\u003c/td\u003e\u003ctd\u003e\u003cdiv align=\"left\"\u003e\u003cimg src=\"./Assets/rom_struc.png\" width=\"75%\" /\u003e\u003c/div\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n\n\u003cbr/\u003e\n\n**To Make your Fan ROM PokéShelf Compactible, Developers are Recommended to use `GameName`**\n\n\u003cbr/\u003e\n\n\u003cbr/\u003e\n\n## 🤙Contact Me\n\n[![Protonmail](https://img.shields.io/badge/Protonmail-📧%20Email-558?style=for-the-badge\u0026logo=protonmail)](mailto://ping@ra101.dev) [![Telegram](https://img.shields.io/badge/Telegram-💬%20Chat-informational?style=for-the-badge\u0026logo=telegram)](https://telegram.me/ra_101)\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  \u003ch3\u003e Made with \u003cb\u003e❤️\u003c/b\u003e by\u003cb\u003e〈 RA 〉\u003c/b\u003e\u003c/h3\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra101%2Fpokeshelf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fra101%2Fpokeshelf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fra101%2Fpokeshelf/lists"}