From 10185de76a589c38d80cac81889f92e90dd0f3fa Mon Sep 17 00:00:00 2001
From: Ramaerel <72925865+Ramaerel@users.noreply.github.com>
Date: Thu, 6 Mar 2025 10:18:00 +1000
Subject: [PATCH] The final update
I've been working on this for a few months now. I will no longer be updating it personally. This is a full revamp with all the features I wanted to add.
---
README.md | 108 +-
backend/raproxy.php | 149 +++
bios.php | 275 +++++
bios/put.bios.here | 0
.../63bd4c10c895070621df80e7aaf48e7e.json | 1 +
.../a945c9ea703250c42b01b3c1c8263323.json | 1 +
.../b097c3655d6a0b2530311ad5ef15e8dc.json | 1 +
.../dd1818f8c085ff272162d2398845ddeb.json | 1 +
.../f6a91b8e7816be0562017961488ab9a9.json | 1 +
config/retroachievements.json | 8 +
debug_ra.php | 489 +++++++++
delete_bios.php | 52 +
fnc.php | 45 -
functions.php | 356 +++++++
get_state.php | 49 +
img/avatars/avatar1.png | Bin 0 -> 4720 bytes
img/avatars/avatar2.png | Bin 0 -> 9161 bytes
img/avatars/avatar3.png | Bin 0 -> 14486 bytes
img/avatars/avatar4.png | Bin 0 -> 121810 bytes
img/avatars/avatar5.png | Bin 0 -> 18881 bytes
img/avatars/avatar6.png | Bin 0 -> 101063 bytes
img/avatars/avatar7.png | Bin 0 -> 12461 bytes
img/avatars/avatar8.png | Bin 0 -> 97383 bytes
.../63bd4c10c895070621df80e7aaf48e7e.png | Bin 0 -> 13903 bytes
.../a945c9ea703250c42b01b3c1c8263323.png | Bin 0 -> 11594 bytes
.../b097c3655d6a0b2530311ad5ef15e8dc.png | Bin 0 -> 3796 bytes
.../dd1818f8c085ff272162d2398845ddeb.png | Bin 0 -> 19651 bytes
.../f6a91b8e7816be0562017961488ab9a9.png | Bin 0 -> 16796 bytes
...3bd4c10c895070621df80e7aaf48e7e_boxart.png | Bin 0 -> 74947 bytes
...3bd4c10c895070621df80e7aaf48e7e_ingame.png | Bin 0 -> 21329 bytes
...63bd4c10c895070621df80e7aaf48e7e_title.png | Bin 0 -> 77408 bytes
...945c9ea703250c42b01b3c1c8263323_boxart.png | Bin 0 -> 109206 bytes
...945c9ea703250c42b01b3c1c8263323_ingame.png | Bin 0 -> 91839 bytes
...a945c9ea703250c42b01b3c1c8263323_title.png | Bin 0 -> 17652 bytes
...097c3655d6a0b2530311ad5ef15e8dc_boxart.png | Bin 0 -> 108539 bytes
...097c3655d6a0b2530311ad5ef15e8dc_ingame.png | Bin 0 -> 136301 bytes
...b097c3655d6a0b2530311ad5ef15e8dc_title.png | Bin 0 -> 11871 bytes
...d1818f8c085ff272162d2398845ddeb_boxart.png | Bin 0 -> 125779 bytes
...d1818f8c085ff272162d2398845ddeb_ingame.png | Bin 0 -> 52135 bytes
...dd1818f8c085ff272162d2398845ddeb_title.png | Bin 0 -> 17541 bytes
...6a91b8e7816be0562017961488ab9a9_boxart.png | Bin 0 -> 99074 bytes
...6a91b8e7816be0562017961488ab9a9_ingame.png | Bin 0 -> 41175 bytes
...f6a91b8e7816be0562017961488ab9a9_title.png | Bin 0 -> 83207 bytes
img/images.download.here | 0
includes/retroachievements.php | 450 +++++++++
index.php | 371 ++++++-
inis/inis.generate.here | 0
js/bios.js | 44 +
js/play.js | 88 ++
js/profiles.js | 224 +++++
js/upload.js | 77 ++
play.php | 945 +++++++++++++++---
profile_action.php | 149 +++
profile_get.php | 30 +
profiles/67bfaf6ae3257.json | 1 +
roms/roms.upload.here | 0
saveState.php | 33 -
save_state.php | 62 ++
saves/67bfaf6ae3257/Kirby Super Star_1.state | Bin 0 -> 823536 bytes
saves/saves.store.here | 0
settings.php | 813 +++++++++++++++
style.css | 891 +++++++++++++++--
test_ra.php | 398 ++++++++
upload.php | 306 ++++--
64 files changed, 6015 insertions(+), 403 deletions(-)
create mode 100644 backend/raproxy.php
create mode 100644 bios.php
delete mode 100644 bios/put.bios.here
create mode 100644 cache/retroachievements/63bd4c10c895070621df80e7aaf48e7e.json
create mode 100644 cache/retroachievements/a945c9ea703250c42b01b3c1c8263323.json
create mode 100644 cache/retroachievements/b097c3655d6a0b2530311ad5ef15e8dc.json
create mode 100644 cache/retroachievements/dd1818f8c085ff272162d2398845ddeb.json
create mode 100644 cache/retroachievements/f6a91b8e7816be0562017961488ab9a9.json
create mode 100644 config/retroachievements.json
create mode 100644 debug_ra.php
create mode 100644 delete_bios.php
delete mode 100644 fnc.php
create mode 100644 functions.php
create mode 100644 get_state.php
create mode 100644 img/avatars/avatar1.png
create mode 100644 img/avatars/avatar2.png
create mode 100644 img/avatars/avatar3.png
create mode 100644 img/avatars/avatar4.png
create mode 100644 img/avatars/avatar5.png
create mode 100644 img/avatars/avatar6.png
create mode 100644 img/avatars/avatar7.png
create mode 100644 img/avatars/avatar8.png
create mode 100644 img/cache/icons/63bd4c10c895070621df80e7aaf48e7e.png
create mode 100644 img/cache/icons/a945c9ea703250c42b01b3c1c8263323.png
create mode 100644 img/cache/icons/b097c3655d6a0b2530311ad5ef15e8dc.png
create mode 100644 img/cache/icons/dd1818f8c085ff272162d2398845ddeb.png
create mode 100644 img/cache/icons/f6a91b8e7816be0562017961488ab9a9.png
create mode 100644 img/cache/screenshots/63bd4c10c895070621df80e7aaf48e7e_boxart.png
create mode 100644 img/cache/screenshots/63bd4c10c895070621df80e7aaf48e7e_ingame.png
create mode 100644 img/cache/screenshots/63bd4c10c895070621df80e7aaf48e7e_title.png
create mode 100644 img/cache/screenshots/a945c9ea703250c42b01b3c1c8263323_boxart.png
create mode 100644 img/cache/screenshots/a945c9ea703250c42b01b3c1c8263323_ingame.png
create mode 100644 img/cache/screenshots/a945c9ea703250c42b01b3c1c8263323_title.png
create mode 100644 img/cache/screenshots/b097c3655d6a0b2530311ad5ef15e8dc_boxart.png
create mode 100644 img/cache/screenshots/b097c3655d6a0b2530311ad5ef15e8dc_ingame.png
create mode 100644 img/cache/screenshots/b097c3655d6a0b2530311ad5ef15e8dc_title.png
create mode 100644 img/cache/screenshots/dd1818f8c085ff272162d2398845ddeb_boxart.png
create mode 100644 img/cache/screenshots/dd1818f8c085ff272162d2398845ddeb_ingame.png
create mode 100644 img/cache/screenshots/dd1818f8c085ff272162d2398845ddeb_title.png
create mode 100644 img/cache/screenshots/f6a91b8e7816be0562017961488ab9a9_boxart.png
create mode 100644 img/cache/screenshots/f6a91b8e7816be0562017961488ab9a9_ingame.png
create mode 100644 img/cache/screenshots/f6a91b8e7816be0562017961488ab9a9_title.png
delete mode 100644 img/images.download.here
create mode 100644 includes/retroachievements.php
delete mode 100644 inis/inis.generate.here
create mode 100644 js/bios.js
create mode 100644 js/play.js
create mode 100644 js/profiles.js
create mode 100644 js/upload.js
create mode 100644 profile_action.php
create mode 100644 profile_get.php
create mode 100644 profiles/67bfaf6ae3257.json
delete mode 100644 roms/roms.upload.here
delete mode 100644 saveState.php
create mode 100644 save_state.php
create mode 100644 saves/67bfaf6ae3257/Kirby Super Star_1.state
delete mode 100644 saves/saves.store.here
create mode 100644 settings.php
create mode 100644 test_ra.php
diff --git a/README.md b/README.md
index 81d63b7..ab76a33 100644
--- a/README.md
+++ b/README.md
@@ -1,36 +1,106 @@
-
-# Game Library [![Badge License]][License]
-
-*A game library extension for* ***[EmulatorJS]***
+# RetroHub [![Badge_License]][License]
+*Formerly EJS Library*
+*A game library and rom management tool using ***[EmulatorJS]***
-This add - on site allows users of EmulatorJS to manage ROMs, including a built-in (albeit basic) data and image scraper.
+This site allows users to run and manage their ROMs, using EmulatorJS and the RetroAchievements website.
-PSX has returned!
-
+## Disclaimer
+I will no longer be working on this project; this final update was purely me learning how to program better for my new project
-## Installation
+If you wish for functionality like this, but are unsure how to set it up yourself, check out ***[Temporus]***.
-This is a drag and drop extension, with the
-exception that it requires something to host
-PHP files like XAMPP. After that, simply upload your roms.
-Bulk rom uploading has been added to make this easier.
+## Features
-I've taken out image scraping for now, I will try to add it in with more options etc with the rebuild.
-Instead, I've given cloud save options!
+### Modern Game Library Interface
-## BIOS setup
+Grid and list views for your ROM collection
+Search and filter by console type
+Game cards with cover art and metadata
-To add BIOs for the systems that require it, simply
-add the BIOs to a ZIP file and rename it to *console name*.zip.
-For example, the gba bios would be kept as /bios/gba.zip
-
+### Powerful ROM Management
+
+Bulk upload capability for ROMs
+Automatic console detection based on file extension
+Support for various ROM formats including ZIP files
+
+
+### RetroAchievements Integration
+
+Automatic game metadata and images from RetroAchievements
+Game info including developer, publisher, release date
+Cover art, screenshots, and title screens
+
+
+### Profile System
+
+Netflix-style profile switching for family sharing
+Custom avatars for each profile
+Independent save states per profile
+
+
+### Advanced Save State System
+
+Multiple save slots per game
+Screenshot preview of each save state
+Seamless saving/loading during gameplay
+
+
+### BIOS Management
+
+Upload and manage BIOS files for various systems
+Visual indication of installed BIOS files
+System-specific BIOS requirements reference
+
+
+### Cloud Save Support
+
+Server-side save state management
+Persistent game progress across sessions
+Backup protection for your progress
+
+
+
+### Installation
+
+Requires a PHP-enabled web server (XAMPP, WAMP, or similar)
+Copy all files to your web server's document root
+Ensure proper permissions for cache and save directories
+Access the site via your web browser
+
+### RetroAchievements Setup
+(This is for direct access. If using a Proxy, I have one set up already and linked in :)
+Go to Settings → RetroAchievements
+Enable RetroAchievements integration
+Choose between direct API access (requires your own API key) or proxy mode
+If using direct access, enter your RetroAchievements API key from your account's control panel
+Save settings and enjoy enhanced game metadata and images
+
+### BIOS Requirements
+Some systems require BIOS files to function correctly. Upload your BIOS files through the BIOS management page. Common requirements include:
+
+PlayStation: SCPH5500.bin, SCPH5501.bin, SCPH5502.bin
+Game Boy Advance: gba_bios.bin
+Nintendo DS: bios7.bin, bios9.bin, firmware.bin
+Sega CD: bios_CD_U.bin, bios_CD_J.bin, bios_CD_E.bin
+
+### Support
+This project is no longer actively maintained. For similar functionality with professional support, please visit Temporus.
+License
+RetroHub is released under the GPL license.
+
+### Credits
+
+EmulatorJS - Emulation core
+RetroAchievements - Game metadata and images
[Badge License]: https://img.shields.io/badge/license-GPL-blue
[EmulatorJS]: https://github.com/EmulatorJS/emulatorjs
+[Temporus]: https://temporus.one/
+
[License]: #
diff --git a/backend/raproxy.php b/backend/raproxy.php
new file mode 100644
index 0000000..ae30a2b
--- /dev/null
+++ b/backend/raproxy.php
@@ -0,0 +1,149 @@
+ '** YOUR API KEY **', // Replace with your RetroAchievements API key
+ 'cache_dir' => 'cache/', // Directory to store cached responses
+ 'cache_expiration' => 604800, // Cache expiration time in seconds (7 days)
+ 'rate_limit' => 30, // Maximum requests per minute per IP
+ 'rate_limit_window' => 60 // Time window for rate limiting in seconds
+];
+
+// Create cache directory if it doesn't exist
+if (!is_dir($config['cache_dir'])) {
+ mkdir($config['cache_dir'], 0755, true);
+}
+
+// Basic rate limiting
+$clientIP = $_SERVER['REMOTE_ADDR'];
+$rateLimitFile = $config['cache_dir'] . 'rate_' . md5($clientIP) . '.json';
+
+$rateData = [
+ 'count' => 0,
+ 'timestamp' => time()
+];
+
+if (file_exists($rateLimitFile)) {
+ $rateData = json_decode(file_get_contents($rateLimitFile), true);
+
+ // Reset counter if window has passed
+ if (time() - $rateData['timestamp'] > $config['rate_limit_window']) {
+ $rateData['count'] = 0;
+ $rateData['timestamp'] = time();
+ }
+}
+
+// Check if rate limit exceeded
+if ($rateData['count'] >= $config['rate_limit']) {
+ header('HTTP/1.1 429 Too Many Requests');
+ echo json_encode([
+ 'error' => 'Rate limit exceeded. Please try again later.'
+ ]);
+ exit;
+}
+
+// Process only POST requests
+if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
+ header('HTTP/1.1 405 Method Not Allowed');
+ echo json_encode([
+ 'error' => 'Only POST requests are allowed.'
+ ]);
+ exit;
+}
+
+// Verify required parameters
+if (!isset($_POST['endpoint']) || empty($_POST['endpoint'])) {
+ header('HTTP/1.1 400 Bad Request');
+ echo json_encode([
+ 'error' => 'Missing required parameter: endpoint'
+ ]);
+ exit;
+}
+
+$endpoint = $_POST['endpoint'];
+$params = isset($_POST['params']) ? $_POST['params'] : [];
+
+// Sanitize endpoint to prevent directory traversal
+$endpoint = basename($endpoint);
+
+// Generate cache key based on request
+$cacheKey = md5($endpoint . serialize($params));
+$cachePath = $config['cache_dir'] . $cacheKey . '.json';
+
+// Check if cached response exists and is still valid
+if (file_exists($cachePath) && (time() - filemtime($cachePath) < $config['cache_expiration'])) {
+ $cachedResponse = file_get_contents($cachePath);
+
+ if ($cachedResponse) {
+ header('Content-Type: application/json');
+ echo $cachedResponse;
+ exit;
+ }
+}
+
+// Increment rate limit counter and save
+$rateData['count']++;
+file_put_contents($rateLimitFile, json_encode($rateData));
+
+// Build API URL - Using the correct format: API_EndpointName.php
+$baseUrl = 'https://retroachievements.org/API/';
+$url = $baseUrl . 'API_' . $endpoint . '.php';
+
+// Add authentication to params
+if (is_array($params)) {
+ $params['y'] = $config['api_key'];
+} else {
+ $params = [
+ 'y' => $config['api_key']
+ ];
+}
+
+// Build full URL with parameters
+$url .= '?' . http_build_query($params);
+
+// Make request to RetroAchievements API
+$ch = curl_init();
+curl_setopt($ch, CURLOPT_URL, $url);
+curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
+curl_setopt($ch, CURLOPT_USERAGENT, 'RetroHub-Proxy/1.0');
+curl_setopt($ch, CURLOPT_TIMEOUT, 15);
+
+$response = curl_exec($ch);
+$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+$error = curl_error($ch);
+
+curl_close($ch);
+
+// Return error if request failed
+if ($httpCode !== 200 || empty($response)) {
+ header('HTTP/1.1 ' . ($httpCode ? $httpCode : 500) . ' Error');
+ echo json_encode([
+ 'error' => 'Error fetching data from RetroAchievements API',
+ 'http_code' => $httpCode,
+ 'curl_error' => $error,
+ 'url' => $url
+ ]);
+ exit;
+}
+
+// Cache the response
+file_put_contents($cachePath, $response);
+
+// Return the response
+header('Content-Type: application/json');
+echo $response;
\ No newline at end of file
diff --git a/bios.php b/bios.php
new file mode 100644
index 0000000..9bda09b
--- /dev/null
+++ b/bios.php
@@ -0,0 +1,275 @@
+ 0) {
+ $_SESSION['current_profile'] = $profiles[0]['id'];
+ } else {
+ // Create default profile if none exists
+ $defaultProfileId = createProfile("Player 1", "avatar1.png");
+ $_SESSION['current_profile'] = $defaultProfileId;
+ }
+}
+
+// Process BIOS file uploads
+$uploadMessage = '';
+$uploadStatus = '';
+
+if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['upload_type'])) {
+ if ($_POST['upload_type'] == 'bios' && isset($_FILES['bios_file'])) {
+ if ($_FILES['bios_file']['error'] == UPLOAD_ERR_OK) {
+ // Create the bios directory if it doesn't exist
+ if (!is_dir('bios')) {
+ mkdir('bios', 0755, true);
+ }
+
+ $tmp_name = $_FILES['bios_file']['tmp_name'];
+ $name = basename($_FILES['bios_file']['name']);
+ $console = isset($_POST['console_type']) ? $_POST['console_type'] : pathinfo($name, PATHINFO_FILENAME);
+
+ // If console type is specified, rename the file
+ if (isset($_POST['console_type']) && !empty($_POST['console_type'])) {
+ $ext = pathinfo($name, PATHINFO_EXTENSION);
+ $name = $console . '.' . $ext;
+ }
+
+ // Move the uploaded file
+ if (move_uploaded_file($tmp_name, "bios/$name")) {
+ $uploadMessage = "BIOS file uploaded successfully!";
+ $uploadStatus = 'success';
+ } else {
+ $uploadMessage = "Error uploading BIOS file.";
+ $uploadStatus = 'error';
+ }
+ } else {
+ $uploadMessage = "Error uploading BIOS file: " . $_FILES['bios_file']['error'];
+ $uploadStatus = 'error';
+ }
+ }
+}
+
+// Get current profile data
+$currentProfile = getProfileById($_SESSION['current_profile']);
+$allProfiles = getProfiles();
+
+// Get list of BIOS files
+$biosFiles = getBiosFiles();
+?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bios/put.bios.here b/bios/put.bios.here
deleted file mode 100644
index e69de29..0000000
diff --git a/cache/retroachievements/63bd4c10c895070621df80e7aaf48e7e.json b/cache/retroachievements/63bd4c10c895070621df80e7aaf48e7e.json
new file mode 100644
index 0000000..986437d
--- /dev/null
+++ b/cache/retroachievements/63bd4c10c895070621df80e7aaf48e7e.json
@@ -0,0 +1 @@
+{"Title":"Super Mario World","ID":228,"ConsoleID":3,"ConsoleName":"SNES\/Super Famicom","ImageIcon":"https:\/\/retroachievements.org\/Images\/066393.png","NumAchievements":85,"NumLeaderboards":77,"Points":721,"DateModified":"2025-02-23 07:55:07","ForumTopicID":135,"Flags":null,"ImageTitle":"https:\/\/retroachievements.org\/Images\/014709.png","ImageIngame":"https:\/\/retroachievements.org\/Images\/000022.png","ImageBoxArt":"https:\/\/retroachievements.org\/Images\/055336.png","Publisher":"Nintendo","Developer":"","Genre":"2D Platforming","Released":"1990-11-21","ReleasedAtGranularity":"day","IsFinal":false,"RichPresencePatch":"52bc010d1abe6246a886a01490778224","GuideURL":"https:\/\/github.com\/RetroAchievements\/guides\/wiki\/Super-Mario-World-(SNES)","Updated":"2025-02-27T01:09:41.000000Z","ParentGameID":null,"NumDistinctPlayers":73583,"Achievements":{"341":{"ID":341,"NumAwarded":61970,"NumAwardedHardcore":31667,"Title":"Unleash The Dragon","Description":"Collect 5 Dragon Coins in a level","Points":2,"TrueRatio":2,"Author":"Scott","DateModified":"2019-06-28 07:37:31","DateCreated":"2013-04-29 20:16:23","BadgeName":"46591","DisplayOrder":2,"MemAddr":"89ec5f82d3d43959ff4181bcc7642fbe","type":null},"342":{"ID":342,"NumAwarded":69767,"NumAwardedHardcore":34404,"Title":"Giddy Up!","Description":"Catch a ride with a friend","Points":1,"TrueRatio":1,"Author":"Scott","DateModified":"2019-06-28 07:37:27","DateCreated":"2013-04-29 20:22:11","BadgeName":"46580","DisplayOrder":1,"MemAddr":"9103229bd1f8f8f38cbe68e9205b496e","type":null},"347":{"ID":347,"NumAwarded":26763,"NumAwardedHardcore":15508,"Title":"Morton Enough","Description":"Defeat Morton Koopa Jr. of Castle #2","Points":5,"TrueRatio":7,"Author":"Scott","DateModified":"2019-06-28 07:37:56","DateCreated":"2013-04-30 11:51:40","BadgeName":"46599","DisplayOrder":11,"MemAddr":"8c4dc4216f5792bd3d5ea8af53dd3617","type":null},"1706":{"ID":1706,"NumAwarded":9575,"NumAwardedHardcore":6234,"Title":"Maximum Finish","Description":"Cross the finish line at the end of the stage and collect the max 50 stars","Points":5,"TrueRatio":14,"Author":"jackolantern","DateModified":"2024-11-19 16:05:37","DateCreated":"2013-07-01 10:23:50","BadgeName":"47084","DisplayOrder":7,"MemAddr":"bdcb98c6cd90b2a8181d4c2bd682cec7","type":null},"2199":{"ID":2199,"NumAwarded":12203,"NumAwardedHardcore":8024,"Title":"Filling All The Blocks In","Description":"Hit the buttons in all four coloured switch palaces","Points":5,"TrueRatio":11,"Author":"jackolantern","DateModified":"2021-07-10 23:40:13","DateCreated":"2013-08-14 21:01:54","BadgeName":"47069","DisplayOrder":23,"MemAddr":"5746b29a904c12c0803fabe2f5d68ebb","type":null},"2246":{"ID":2246,"NumAwarded":9070,"NumAwardedHardcore":5273,"Title":"Perfect Bonus Stage","Description":"Score 8 extra lives in the 'Bonus Game'","Points":10,"TrueRatio":33,"Author":"Jaarl","DateModified":"2019-06-28 07:37:45","DateCreated":"2013-08-15 16:03:33","BadgeName":"47085","DisplayOrder":8,"MemAddr":"b906c4bf420d6da729760d352e78b716","type":null},"2250":{"ID":2250,"NumAwarded":14504,"NumAwardedHardcore":9337,"Title":"Reznor - Flaming Wheel of Death","Description":"Defeat the Reznor atop Vanilla Dome","Points":5,"TrueRatio":10,"Author":"Jaarl","DateModified":"2019-12-06 13:50:23","DateCreated":"2013-08-16 01:04:33","BadgeName":"46597","DisplayOrder":19,"MemAddr":"1cd0e2759c859212036cdb7306a3fc1e","type":null},"2251":{"ID":2251,"NumAwarded":25306,"NumAwardedHardcore":15261,"Title":"Another Kind of Flying","Description":"Collect a P-Balloon","Points":2,"TrueRatio":3,"Author":"Jaarl","DateModified":"2019-07-30 01:05:05","DateCreated":"2013-08-16 01:04:38","BadgeName":"47083","DisplayOrder":5,"MemAddr":"43a295ad695c3e4d88f1420919ab847b","type":null},"2253":{"ID":2253,"NumAwarded":46011,"NumAwardedHardcore":25476,"Title":"I is for Icky Iggy","Description":"Defeat Iggy Koopa of Castle #1","Points":5,"TrueRatio":5,"Author":"Jaarl","DateModified":"2019-08-03 04:32:46","DateCreated":"2013-08-16 01:25:56","BadgeName":"46598","DisplayOrder":10,"MemAddr":"05031254f09ec3782e570b0248952785","type":"progression"},"2261":{"ID":2261,"NumAwarded":17731,"NumAwardedHardcore":10691,"Title":"Lemmy Down Slowly","Description":"Defeat Lemmy Koopa of Castle #3","Points":5,"TrueRatio":9,"Author":"Jaarl","DateModified":"2019-06-28 07:37:58","DateCreated":"2013-08-16 11:28:42","BadgeName":"46600","DisplayOrder":12,"MemAddr":"da63d3001ee4b183a103411d9065e401","type":null},"2262":{"ID":2262,"NumAwarded":16788,"NumAwardedHardcore":10059,"Title":"Ludwig's Last Symphony","Description":"Defeat Ludwig von Koopa of Castle #4","Points":5,"TrueRatio":10,"Author":"Jaarl","DateModified":"2019-06-28 07:38:02","DateCreated":"2013-08-16 11:39:23","BadgeName":"46601","DisplayOrder":13,"MemAddr":"aaf53be13d7e59964ced55eab5024b4d","type":null},"2274":{"ID":2274,"NumAwarded":4451,"NumAwardedHardcore":3714,"Title":"Shortest Route","Description":"Clear the fewest stages possible and beat the game","Points":25,"TrueRatio":111,"Author":"Jaarl","DateModified":"2019-10-02 10:00:01","DateCreated":"2013-08-17 12:33:19","BadgeName":"46575","DisplayOrder":172,"MemAddr":"b5dd0e157b856748375ac47bd21a6453","type":null},"2275":{"ID":2275,"NumAwarded":12040,"NumAwardedHardcore":7611,"Title":"Bowser Disposer","Description":"Beat Bowser and save the princess","Points":25,"TrueRatio":62,"Author":"Jaarl","DateModified":"2019-10-20 14:34:01","DateCreated":"2013-08-17 12:33:22","BadgeName":"46760","DisplayOrder":17,"MemAddr":"07b11c62f0f8ea86ed12cfba0975e893","type":"win_condition"},"2277":{"ID":2277,"NumAwarded":4473,"NumAwardedHardcore":3580,"Title":"Burning Bowser","Description":"Get the princess kiss as Fire Mario (Front Door!)","Points":10,"TrueRatio":46,"Author":"Jaarl","DateModified":"2021-07-10 23:40:12","DateCreated":"2013-08-17 12:33:28","BadgeName":"46593","DisplayOrder":20,"MemAddr":"1559ce347115d77786ed5fd212908a6b","type":null},"2297":{"ID":2297,"NumAwarded":4285,"NumAwardedHardcore":3468,"Title":"Starman Challenge","Description":"Clear the game without dying in one session","Points":25,"TrueRatio":118,"Author":"Jaarl","DateModified":"2024-12-24 23:37:36","DateCreated":"2013-08-19 13:13:35","BadgeName":"46579","DisplayOrder":173,"MemAddr":"6fbd6d22d742f0ed809892b72bbfbc7c","type":null},"2298":{"ID":2298,"NumAwarded":20952,"NumAwardedHardcore":13251,"Title":"To the Stars!","Description":"Reach the Star Road","Points":5,"TrueRatio":8,"Author":"Jaarl","DateModified":"2017-09-03 21:53:14","DateCreated":"2013-08-19 13:13:39","BadgeName":"47072","DisplayOrder":29,"MemAddr":"7eb9672410d7f164d518d65f97a4cd34","type":null},"2299":{"ID":2299,"NumAwarded":17899,"NumAwardedHardcore":12142,"Title":"Shoo! Shoo! Big Boo","Description":"Find and defeat the hidden Big Boo in Donut Secret House","Points":5,"TrueRatio":8,"Author":"Jaarl","DateModified":"2019-07-30 04:07:01","DateCreated":"2013-08-19 13:13:42","BadgeName":"46596","DisplayOrder":18,"MemAddr":"84efdf203734f106f17f503ce5d3859b","type":null},"2300":{"ID":2300,"NumAwarded":12134,"NumAwardedHardcore":8127,"Title":"Mario's Special Place","Description":"Get to the challenging Special Zone","Points":5,"TrueRatio":11,"Author":"Jaarl","DateModified":"2017-09-03 21:53:15","DateCreated":"2013-08-19 13:13:46","BadgeName":"47073","DisplayOrder":30,"MemAddr":"3b359573f5916b50b7bb54ef5a56e6cc","type":null},"2302":{"ID":2302,"NumAwarded":7888,"NumAwardedHardcore":5282,"Title":"Change of Scenery","Description":"Clear the Special Zone and change the seasons in Dinosaur Land","Points":25,"TrueRatio":82,"Author":"Jaarl","DateModified":"2025-02-23 07:55:07","DateCreated":"2013-08-19 16:21:43","BadgeName":"47074","DisplayOrder":31,"MemAddr":"8325f72dcc64e0434cb956348085b054","type":null},"2303":{"ID":2303,"NumAwarded":6708,"NumAwardedHardcore":5147,"Title":"That Oh-So-Familiar Tune","Description":"Find the secret in the Special Zone","Points":2,"TrueRatio":6,"Author":"Jaarl","DateModified":"2021-07-14 11:34:05","DateCreated":"2013-08-19 16:21:45","BadgeName":"46563","DisplayOrder":34,"MemAddr":"89bf054d07d88414c7a15ef473948412","type":null},"2304":{"ID":2304,"NumAwarded":5600,"NumAwardedHardcore":4294,"Title":"All Exits","Description":"100% clear the game","Points":50,"TrueRatio":197,"Author":"Jaarl","DateModified":"2021-07-10 23:40:14","DateCreated":"2013-08-19 16:21:48","BadgeName":"46761","DisplayOrder":32,"MemAddr":"bbda37e6d8d2b2475e610ccefb117821","type":null},"2305":{"ID":2305,"NumAwarded":11249,"NumAwardedHardcore":7153,"Title":"Chocolate Donut","Description":"Walk in a circle on Chocolate Island","Points":1,"TrueRatio":2,"Author":"Jaarl","DateModified":"2019-10-21 01:55:34","DateCreated":"2013-08-19 19:00:05","BadgeName":"47071","DisplayOrder":28,"MemAddr":"1c4f4233e33008887a0502d8c174ccd2","type":null},"2306":{"ID":2306,"NumAwarded":13165,"NumAwardedHardcore":8107,"Title":"Roy's Ploy Destroy-ed","Description":"Defeat Roy Koopa of Castle #5","Points":10,"TrueRatio":23,"Author":"Jaarl","DateModified":"2019-06-28 07:38:04","DateCreated":"2013-08-19 19:00:08","BadgeName":"46602","DisplayOrder":14,"MemAddr":"e8705ec3843457fe9c055187f3facee7","type":null},"2309":{"ID":2309,"NumAwarded":11323,"NumAwardedHardcore":7074,"Title":"Wendy Chips Are Down","Description":"Defeat Wendy O. Koopa of Castle #6","Points":10,"TrueRatio":26,"Author":"Jaarl","DateModified":"2019-06-28 07:38:07","DateCreated":"2013-08-19 19:13:02","BadgeName":"46603","DisplayOrder":15,"MemAddr":"aa3f0f757f3b7d3bc90c6377460c3e79","type":null},"2342":{"ID":2342,"NumAwarded":9706,"NumAwardedHardcore":6186,"Title":"Larry in the Airy","Description":"Defeat Larry Koopa of Castle #7","Points":10,"TrueRatio":29,"Author":"Jaarl","DateModified":"2019-06-28 07:38:09","DateCreated":"2013-08-20 03:44:43","BadgeName":"46604","DisplayOrder":16,"MemAddr":"59740c4157df5d9611165e5a6b30fc72","type":null},"2985":{"ID":2985,"NumAwarded":6766,"NumAwardedHardcore":4640,"Title":"The Investigator","Description":"Access a secret area in the Forest Fortress","Points":5,"TrueRatio":18,"Author":"mrvsonic87","DateModified":"2017-09-03 21:53:21","DateCreated":"2013-09-20 05:58:58","BadgeName":"47075","DisplayOrder":33,"MemAddr":"d223d3714c7ad99728adf187404ad388","type":null},"4874":{"ID":4874,"NumAwarded":44765,"NumAwardedHardcore":24336,"Title":"I Believe I Can Fly","Description":"Collect a feather","Points":1,"TrueRatio":1,"Author":"UNHchabo","DateModified":"2019-07-30 00:39:34","DateCreated":"2014-02-09 01:07:44","BadgeName":"46577","DisplayOrder":4,"MemAddr":"63805813f34714a220e0f1be4d98f414","type":null},"4933":{"ID":4933,"NumAwarded":16823,"NumAwardedHardcore":10857,"Title":"Floating Through The Clouds","Description":"Hijack a Lakitu's cloud","Points":2,"TrueRatio":3,"Author":"UNHchabo","DateModified":"2019-07-30 01:42:01","DateCreated":"2014-02-10 05:42:15","BadgeName":"46571","DisplayOrder":6,"MemAddr":"fc010f6432b8be2786523aac43914fcc","type":null},"29653":{"ID":29653,"NumAwarded":15165,"NumAwardedHardcore":10477,"Title":"Birth of Economy","Description":"Collect 5 Dragon Coins in all eligible levels in Yoshi's Island","Points":10,"TrueRatio":19,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:19","DateCreated":"2015-10-25 06:20:19","BadgeName":"46590","DisplayOrder":140,"MemAddr":"5c675b08e2c23ccd524cd0a0253c1c51","type":null},"29654":{"ID":29654,"NumAwarded":6330,"NumAwardedHardcore":5130,"Title":"A Hole In Your Wallet","Description":"Collect 5 Dragon Coins in all eligible levels in Donut Plains","Points":10,"TrueRatio":34,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:20","DateCreated":"2015-10-25 06:20:21","BadgeName":"46589","DisplayOrder":141,"MemAddr":"ab8a830d76823369fb49e3cecb8f04b0","type":null},"29655":{"ID":29655,"NumAwarded":5083,"NumAwardedHardcore":4179,"Title":"Like A Giant Bank","Description":"Collect 5 Dragon Coins in all eligible levels in Vanilla Dome","Points":10,"TrueRatio":40,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:23","DateCreated":"2015-10-25 06:20:22","BadgeName":"46588","DisplayOrder":142,"MemAddr":"fb7141ca9c36583229a1a0f8a2080a5b","type":null},"29656":{"ID":29656,"NumAwarded":4718,"NumAwardedHardcore":3825,"Title":"Economic Gaps","Description":"Collect 5 Dragon Coins in all eligible levels in Twin Bridges in one session","Points":10,"TrueRatio":43,"Author":"Dexterspet","DateModified":"2023-10-18 21:46:56","DateCreated":"2015-10-25 06:20:23","BadgeName":"46587","DisplayOrder":143,"MemAddr":"195480108dc626775af5e76f9722ed67","type":null},"29657":{"ID":29657,"NumAwarded":4512,"NumAwardedHardcore":3654,"Title":"Illusions of Grandeur","Description":"Collect 5 Dragon Coins in all eligible levels in the Forest [Including Castle]","Points":10,"TrueRatio":45,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:26","DateCreated":"2015-10-25 06:20:24","BadgeName":"46586","DisplayOrder":144,"MemAddr":"519f0e693f127e804be06578a23f7f32","type":null},"29658":{"ID":29658,"NumAwarded":3917,"NumAwardedHardcore":3213,"Title":"Sweet Greed","Description":"Collect 5 Dragon Coins in all eligible levels in Chocolate Island and GhostShip","Points":10,"TrueRatio":50,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:27","DateCreated":"2015-10-25 06:20:25","BadgeName":"46585","DisplayOrder":145,"MemAddr":"e4392218ad6b0a29c87955a274a94650","type":null},"29659":{"ID":29659,"NumAwarded":3685,"NumAwardedHardcore":3039,"Title":"The Dragon's Hoard","Description":"Collect 5 Dragon Coins in all eligible levels in the Valley of Bowser [Including Castle]","Points":10,"TrueRatio":53,"Author":"Dexterspet","DateModified":"2023-03-08 16:24:48","DateCreated":"2015-10-25 06:20:26","BadgeName":"46584","DisplayOrder":146,"MemAddr":"938cd3d3fcec159e2e70d5a4018af4c3","type":null},"29660":{"ID":29660,"NumAwarded":3452,"NumAwardedHardcore":2850,"Title":"Special Sorta Person","Description":"Collect 5 Dragon Coins in all eligible levels in Special Zone and Star Road","Points":10,"TrueRatio":56,"Author":"Dexterspet","DateModified":"2021-07-10 23:40:32","DateCreated":"2015-10-25 06:20:27","BadgeName":"46583","DisplayOrder":147,"MemAddr":"79fa3a96ed8dcec0855b1894d301ebd3","type":null},"29661":{"ID":29661,"NumAwarded":6729,"NumAwardedHardcore":5468,"Title":"Super Moonio","Description":"Collect the 3-Up Moon in Yoshi's Island","Points":5,"TrueRatio":16,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:16","DateCreated":"2015-10-25 06:20:28","BadgeName":"46561","DisplayOrder":148,"MemAddr":"a333bea1c2cbb6e58149539266d87700","type":null},"29662":{"ID":29662,"NumAwarded":9100,"NumAwardedHardcore":6642,"Title":"Crescent Donut","Description":"Collect the 3-Up Moon in Donut Plains","Points":5,"TrueRatio":13,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:19","DateCreated":"2015-10-25 06:20:29","BadgeName":"46560","DisplayOrder":149,"MemAddr":"3447cd86c094a224aa16225a272b7288","type":null},"29663":{"ID":29663,"NumAwarded":5334,"NumAwardedHardcore":4332,"Title":"Lunar Vanilla","Description":"Collect the 3-Up Moon in Vanilla Dome","Points":5,"TrueRatio":19,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:21","DateCreated":"2015-10-25 06:20:31","BadgeName":"46559","DisplayOrder":150,"MemAddr":"7568ae71a165b9c0233d33474ac40137","type":null},"29664":{"ID":29664,"NumAwarded":9508,"NumAwardedHardcore":6579,"Title":"Bridge Over Moonlit Water","Description":"Collect the 3-Up Moon in Twin Bridges","Points":5,"TrueRatio":13,"Author":"Dexterspet","DateModified":"2019-09-29 09:21:01","DateCreated":"2015-10-25 06:20:32","BadgeName":"46558","DisplayOrder":151,"MemAddr":"cba1a1fcf7e2412a3ee0f0e27022fd8a","type":null},"29665":{"ID":29665,"NumAwarded":10983,"NumAwardedHardcore":7160,"Title":"A False Moon","Description":"Collect the 3-Up Moon in the Forest of Illusion","Points":5,"TrueRatio":13,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:26","DateCreated":"2015-10-25 06:20:33","BadgeName":"46557","DisplayOrder":152,"MemAddr":"52e7e32f9c129d19f44d47e2efe43a15","type":null},"29666":{"ID":29666,"NumAwarded":4534,"NumAwardedHardcore":3676,"Title":"Lunaddiction","Description":"Collect the 3-Up Moon in Chocolate Island","Points":5,"TrueRatio":22,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:28","DateCreated":"2015-10-25 06:20:35","BadgeName":"46556","DisplayOrder":153,"MemAddr":"9d69a4da7cd1e1a7296c0584405efb69","type":null},"29667":{"ID":29667,"NumAwarded":9846,"NumAwardedHardcore":6345,"Title":"Under A Koopa Moon","Description":"Collect the 3-Up Moon in the Valley of Bowser","Points":5,"TrueRatio":14,"Author":"Dexterspet","DateModified":"2019-06-28 07:39:39","DateCreated":"2015-10-25 06:20:36","BadgeName":"46555","DisplayOrder":154,"MemAddr":"02deff6fedee330949b91f76222ea551","type":null},"45856":{"ID":45856,"NumAwarded":2382,"NumAwardedHardcore":2001,"Title":"Mini-Mario vs the World I","Description":"From Yoshi's Island 2 reach and beat #3 Lemmy's Castle in one Session without using Power-Ups, without using Yoshi and without active Switch Palace Blocks.","Points":25,"TrueRatio":194,"Author":"kdecks","DateModified":"2023-06-21 16:33:15","DateCreated":"2017-03-06 22:40:58","BadgeName":"46755","DisplayOrder":184,"MemAddr":"cda792287c4b3e7642aec5febfa80b79","type":"missable"},"45901":{"ID":45901,"NumAwarded":9758,"NumAwardedHardcore":6800,"Title":"Bonus on the Island","Description":"Obtain 1-up from Bonus Block in Yoshi's Island 3","Points":5,"TrueRatio":13,"Author":"Salsa","DateModified":"2019-12-15 19:25:20","DateCreated":"2017-03-08 03:02:40","BadgeName":"46551","DisplayOrder":36,"MemAddr":"7b4b634b1cbb5977bc6bee2ba478683a","type":null},"45902":{"ID":45902,"NumAwarded":10019,"NumAwardedHardcore":6950,"Title":"Bonus of the Donuts","Description":"Obtain 1-up from Bonus Block in Donut Plains 3","Points":5,"TrueRatio":13,"Author":"Salsa","DateModified":"2019-12-15 19:25:24","DateCreated":"2017-03-08 03:02:45","BadgeName":"46552","DisplayOrder":37,"MemAddr":"a12921109fb3e0500db39cc49f344ee5","type":null},"45903":{"ID":45903,"NumAwarded":4085,"NumAwardedHardcore":3405,"Title":"Bonus on the Butter","Description":"Obtain 1-up from Bonus Block in Butter Bridge 1","Points":5,"TrueRatio":24,"Author":"Salsa","DateModified":"2019-12-15 19:25:28","DateCreated":"2017-03-08 03:02:50","BadgeName":"46553","DisplayOrder":38,"MemAddr":"77449604cce7ffc3176a7d6a2f713d7d","type":null},"45904":{"ID":45904,"NumAwarded":8505,"NumAwardedHardcore":5576,"Title":"Bonus of the Chocolate","Description":"Obtain 1-up from Bonus Block in Chocolate Island 3","Points":5,"TrueRatio":15,"Author":"Salsa","DateModified":"2019-12-15 19:25:31","DateCreated":"2017-03-08 03:02:55","BadgeName":"46554","DisplayOrder":39,"MemAddr":"74ad057eea65fbed3be2ede6bd77f88d","type":null},"45905":{"ID":45905,"NumAwarded":6043,"NumAwardedHardcore":5064,"Title":"Color by Yoshi - Yellow","Description":"Riding yellow Yoshi, press the yellow switch","Points":5,"TrueRatio":17,"Author":"Salsa","DateModified":"2024-12-24 23:38:43","DateCreated":"2017-03-08 03:04:32","BadgeName":"46550","DisplayOrder":24,"MemAddr":"c7dff0a277eb91019295a7f366e6f16b","type":"missable"},"45906":{"ID":45906,"NumAwarded":10180,"NumAwardedHardcore":7483,"Title":"Color by Yoshi - Green","Description":"Riding green Yoshi, press the green switch","Points":5,"TrueRatio":12,"Author":"Salsa","DateModified":"2024-12-24 23:39:30","DateCreated":"2017-03-08 03:04:38","BadgeName":"46549","DisplayOrder":25,"MemAddr":"5d8a0e7391f3f37ac8fc722543214073","type":"missable"},"45907":{"ID":45907,"NumAwarded":6296,"NumAwardedHardcore":5156,"Title":"Color by Yoshi - Red","Description":"Riding red Yoshi, press the red switch","Points":5,"TrueRatio":16,"Author":"Salsa","DateModified":"2024-12-24 23:40:23","DateCreated":"2017-03-08 03:04:44","BadgeName":"46548","DisplayOrder":26,"MemAddr":"0b4ae23bd859be1438bc51054753fa62","type":"missable"},"45908":{"ID":45908,"NumAwarded":6049,"NumAwardedHardcore":4790,"Title":"Color by Yoshi - Blue","Description":"Riding blue Yoshi, press the blue switch","Points":5,"TrueRatio":17,"Author":"Salsa","DateModified":"2024-12-24 23:40:56","DateCreated":"2017-03-08 03:04:51","BadgeName":"46547","DisplayOrder":27,"MemAddr":"4f8a3033ce9e87723bb93ab722083a31","type":"missable"},"45994":{"ID":45994,"NumAwarded":1814,"NumAwardedHardcore":1550,"Title":"Mini-Mario vs the World II","Description":"From Cheese Bridge Area reach and beat #5 Roy's Castle and Forest Fortress in one Session without using Power-Ups except the P-Balloon and in Forest of Illusion 3, without using Yoshi and without active Switch Palace Blocks.","Points":25,"TrueRatio":246,"Author":"kdecks","DateModified":"2023-06-21 16:33:28","DateCreated":"2017-03-09 15:23:30","BadgeName":"46756","DisplayOrder":185,"MemAddr":"654decc65d32df2a3073011d25106b32","type":"missable"},"45995":{"ID":45995,"NumAwarded":1604,"NumAwardedHardcore":1357,"Title":"Mini-Mario vs the World III","Description":"From Chocolate Island 1, unlock all Level Entrances in Valley of Bowser and beat the Front Door in one Session without using Power-Ups except Sunken Ghost Ships' Super Star, without using Yoshi and without active Switch Palace Blocks.","Points":25,"TrueRatio":279,"Author":"kdecks","DateModified":"2023-06-21 16:33:48","DateCreated":"2017-03-09 15:23:34","BadgeName":"46757","DisplayOrder":186,"MemAddr":"87d1891268a0a6d5ef9f70f3f1c04c11","type":"missable"},"45996":{"ID":45996,"NumAwarded":1551,"NumAwardedHardcore":1302,"Title":"Mini-Mario vs the World SPECIAL","Description":"From Gnarly reach and beat Funky in one Session without using Power-Ups except the P-Balloon, without using Yoshi and without active Switch Palace Blocks.","Points":50,"TrueRatio":581,"Author":"kdecks","DateModified":"2023-06-21 16:33:59","DateCreated":"2017-03-09 15:23:39","BadgeName":"46758","DisplayOrder":187,"MemAddr":"75a2cad5fc04225aa8adc5a3664dd307","type":"missable"},"45997":{"ID":45997,"NumAwarded":4601,"NumAwardedHardcore":3849,"Title":"Didn't Take the Bait","Description":"On Forest of Illusion 4, get past Lakitu without killing him or taking the 1-up. No cape, wings.","Points":10,"TrueRatio":43,"Author":"kdecks","DateModified":"2022-12-21 03:10:04","DateCreated":"2017-03-09 15:23:43","BadgeName":"46615","DisplayOrder":165,"MemAddr":"da2daf48a39dc8304f06cefb2f011db3","type":null},"45999":{"ID":45999,"NumAwarded":3030,"NumAwardedHardcore":2402,"Title":"Who Needs Helium?","Description":"Complete SPECIAL-Tubular without Blue Yoshi, or Balloon Mario","Points":25,"TrueRatio":164,"Author":"kdecks","DateModified":"2021-07-10 23:40:50","DateCreated":"2017-03-09 15:23:52","BadgeName":"46677","DisplayOrder":169,"MemAddr":"b47775947066f6a3623e306930092d98","type":null},"46000":{"ID":46000,"NumAwarded":2805,"NumAwardedHardcore":2358,"Title":"A Groovy Flight","Description":"Complete SPECIAL-Groovy without landing past the first ? box. No Yoshi","Points":10,"TrueRatio":66,"Author":"kdecks","DateModified":"2021-07-10 23:40:53","DateCreated":"2017-03-09 15:23:56","BadgeName":"46665","DisplayOrder":170,"MemAddr":"6bde55b27b52de0f8e3828caf95ab27a","type":null},"46001":{"ID":46001,"NumAwarded":2593,"NumAwardedHardcore":2176,"Title":"Everything is Lava","Description":"Get to the normal exit of Forest of Illusion 2 without touching any walls, enemies, blue blocks","Points":25,"TrueRatio":180,"Author":"kdecks","DateModified":"2021-07-10 23:40:40","DateCreated":"2017-03-09 15:23:59","BadgeName":"46666","DisplayOrder":164,"MemAddr":"9401029c33c7ea48273113fbf12a4738","type":null},"46003":{"ID":46003,"NumAwarded":6633,"NumAwardedHardcore":4976,"Title":"Yoshi's a Mommy?","Description":"Help Yoshi lay a cloud egg and get 10 happy coins to summon a 1up","Points":5,"TrueRatio":17,"Author":"kdecks","DateModified":"2020-10-24 21:42:58","DateCreated":"2017-03-09 15:24:11","BadgeName":"46668","DisplayOrder":9,"MemAddr":"a05291392721b55602df3df3f237a505","type":null},"46004":{"ID":46004,"NumAwarded":3696,"NumAwardedHardcore":3188,"Title":"Fence Offense","Description":"Get 8 1-ups at #1 Iggy's Castle with 230 or more on the time clock","Points":10,"TrueRatio":51,"Author":"kdecks","DateModified":"2021-07-10 23:40:33","DateCreated":"2017-03-09 15:24:16","BadgeName":"46608","DisplayOrder":156,"MemAddr":"2d14e3c6d40130c0471181558e958bd4","type":null},"46005":{"ID":46005,"NumAwarded":2533,"NumAwardedHardcore":2125,"Title":"With More Than You Started","Description":"Complete SPECIAL-Funky with 300 or more on the time clock","Points":10,"TrueRatio":73,"Author":"kdecks","DateModified":"2021-07-10 23:40:56","DateCreated":"2017-03-09 15:24:25","BadgeName":"46669","DisplayOrder":171,"MemAddr":"7972ce4900a404cfe4fe7ba0f35ca51d","type":null},"46007":{"ID":46007,"NumAwarded":5280,"NumAwardedHardcore":4346,"Title":"I Starved Yoshi and All I Got Was...","Description":"On Star world 4 bring Baby Yoshi to the end flag without feeding it to adulthood","Points":10,"TrueRatio":39,"Author":"kdecks","DateModified":"2022-11-23 01:05:14","DateCreated":"2017-03-09 15:24:33","BadgeName":"46607","DisplayOrder":168,"MemAddr":"6938ca6dc21a4c9ae35797b3189dbedf","type":null},"46010":{"ID":46010,"NumAwarded":4534,"NumAwardedHardcore":3871,"Title":"A Mighty Quake","Description":"At the start of 1-2 overturn all 8 koopas at the same time with a cape pound","Points":5,"TrueRatio":21,"Author":"kdecks","DateModified":"2019-10-02 10:00:01","DateCreated":"2017-03-09 17:01:42","BadgeName":"46759","DisplayOrder":155,"MemAddr":"031907a24b2b014ac643bde4e4893f3f","type":null},"46120":{"ID":46120,"NumAwarded":3546,"NumAwardedHardcore":3070,"Title":"Bowser's Castle Explorer","Description":"Complete all 8 numbered rooms in one game session","Points":10,"TrueRatio":52,"Author":"kdecks","DateModified":"2021-07-10 23:40:48","DateCreated":"2017-03-12 02:21:00","BadgeName":"47078","DisplayOrder":167,"MemAddr":"6ca4b10d73e372ccc4a13779c756deb4","type":null},"46170":{"ID":46170,"NumAwarded":4515,"NumAwardedHardcore":3821,"Title":"Who Needs Vines?","Description":"Get the Normal Exit in Donut Ghost House without a Feather or Climbing on a Vine","Points":10,"TrueRatio":43,"Author":"GalacticSpear","DateModified":"2021-07-10 23:40:37","DateCreated":"2017-03-12 11:44:42","BadgeName":"46771","DisplayOrder":157,"MemAddr":"f35d6e40f300da9b1d6e1215e67cd7ba","type":null},"46331":{"ID":46331,"NumAwarded":6476,"NumAwardedHardcore":5222,"Title":"Spooking Big Boo","Description":"In the first room of Donut Secret House kill Big Boo","Points":5,"TrueRatio":16,"Author":"kdecks","DateModified":"2019-10-14 12:50:01","DateCreated":"2017-03-16 21:58:20","BadgeName":"47076","DisplayOrder":158,"MemAddr":"d6b016df621fcec797d506f718f968e8","type":null},"175188":{"ID":175188,"NumAwarded":2822,"NumAwardedHardcore":2349,"Title":"Do The Mario!","Description":"Make Mario dance during the credits","Points":0,"TrueRatio":0,"Author":"Sweezy1992","DateModified":"2023-08-07 21:26:04","DateCreated":"2021-09-29 17:17:57","BadgeName":"195401","DisplayOrder":176,"MemAddr":"e70398d6dd8e115ebe8f6b655508e4fb","type":null},"383324":{"ID":383324,"NumAwarded":4600,"NumAwardedHardcore":3613,"Title":"Entering the Castle Ruins","Description":"Reenter a Castle after it was destroyed by pressing L + R.","Points":2,"TrueRatio":9,"Author":"SporyTike","DateModified":"2024-05-31 13:34:57","DateCreated":"2023-12-26 13:17:47","BadgeName":"431957","DisplayOrder":35,"MemAddr":"68fc1fa8b43d6a226fda01d275d2c9fc","type":null},"383325":{"ID":383325,"NumAwarded":2224,"NumAwardedHardcore":1900,"Title":"Secrets of the Chucks","Description":"Trigger the hidden 1-Up in Donut Plains 1.","Points":2,"TrueRatio":16,"Author":"SporyTike","DateModified":"2023-12-26 13:17:47","DateCreated":"2023-12-26 13:17:47","BadgeName":"431958","DisplayOrder":51,"MemAddr":"acfaa62291200ae7c0b26aacefd951df","type":null},"383326":{"ID":383326,"NumAwarded":2057,"NumAwardedHardcore":1767,"Title":"Secrets of the Galoombas","Description":"Trigger the hidden 1-Up in Donut Plains 4.","Points":2,"TrueRatio":17,"Author":"SporyTike","DateModified":"2023-12-26 13:17:47","DateCreated":"2023-12-26 13:17:47","BadgeName":"431959","DisplayOrder":52,"MemAddr":"29e51bb4e9554ac3329c7e60bf102f35","type":null},"383327":{"ID":383327,"NumAwarded":4274,"NumAwardedHardcore":2948,"Title":"Secrets of the Sumo Bros","Description":"Trigger the hidden 1-Up in Cookie Mountain.","Points":1,"TrueRatio":5,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431960","DisplayOrder":57,"MemAddr":"f397337a18b4f99d06279515a3b4c9e7","type":null},"383328":{"ID":383328,"NumAwarded":2189,"NumAwardedHardcore":1881,"Title":"Secrets of the Cheep Cheeps","Description":"Trigger the hidden 1-Up in Yoshi's Island 4.","Points":3,"TrueRatio":24,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431961","DisplayOrder":50,"MemAddr":"a7ec7fcf19627c292dfff527a89ef7d1","type":null},"383329":{"ID":383329,"NumAwarded":2255,"NumAwardedHardcore":1787,"Title":"Secrets of Wendy","Description":"Trigger the hidden 1-Up in #6 Wendy's Castle.","Points":2,"TrueRatio":17,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431962","DisplayOrder":60,"MemAddr":"b4d85cfc5097a99a490987a952dddbaf","type":null},"383330":{"ID":383330,"NumAwarded":1714,"NumAwardedHardcore":1505,"Title":"Secrets of Chocolate","Description":"Trigger the hidden 1-Up in Chocolate Island 2.","Points":3,"TrueRatio":30,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431963","DisplayOrder":59,"MemAddr":"fb7fdf9fb903154b537ddfc3cdc1d983","type":null},"383331":{"ID":383331,"NumAwarded":1823,"NumAwardedHardcore":1594,"Title":"Secrets of the Fishbones","Description":"Trigger the hidden 1-Up in Vanilla Fortress.","Points":3,"TrueRatio":28,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431964","DisplayOrder":56,"MemAddr":"0628b330251e6965f349cc83605d5cd6","type":null},"383332":{"ID":383332,"NumAwarded":2480,"NumAwardedHardcore":2021,"Title":"Secrets of Morton","Description":"Trigger the hidden 1-Up in #2 Morton's Castle.","Points":1,"TrueRatio":7,"Author":"SporyTike","DateModified":"2023-12-26 13:17:48","DateCreated":"2023-12-26 13:17:48","BadgeName":"431965","DisplayOrder":53,"MemAddr":"563b6f0e9f7f824b634f038e38ab497d","type":null},"383333":{"ID":383333,"NumAwarded":2055,"NumAwardedHardcore":1780,"Title":"Secrets of the Boos","Description":"Trigger the hidden 1-Up in Vanilla Ghost House.","Points":3,"TrueRatio":26,"Author":"SporyTike","DateModified":"2023-12-26 13:17:49","DateCreated":"2023-12-26 13:17:49","BadgeName":"431966","DisplayOrder":54,"MemAddr":"be9514cff44c914d3ce2d9848ee7c5cf","type":null},"383334":{"ID":383334,"NumAwarded":1886,"NumAwardedHardcore":1602,"Title":"Secrets of the Vines","Description":"Trigger the hidden 1-Up in Gnarly.","Points":2,"TrueRatio":19,"Author":"SporyTike","DateModified":"2023-12-26 13:17:49","DateCreated":"2023-12-26 13:17:49","BadgeName":"431970","DisplayOrder":64,"MemAddr":"01c05d8546ca8ecd32c65233e9ba468a","type":null},"383335":{"ID":383335,"NumAwarded":2044,"NumAwardedHardcore":1745,"Title":"Secrets of the Bullet Bills","Description":"Trigger the hidden 1-Up in Vanilla Dome 4.","Points":2,"TrueRatio":17,"Author":"SporyTike","DateModified":"2023-12-26 13:17:55","DateCreated":"2023-12-26 13:17:55","BadgeName":"431974","DisplayOrder":55,"MemAddr":"9e7b32604be685c202d45190b33074f6","type":null},"383336":{"ID":383336,"NumAwarded":1877,"NumAwardedHardcore":1625,"Title":"Secrets of the Bubbles","Description":"Trigger the hidden 1-Up in Forest of Illusion 3.","Points":2,"TrueRatio":18,"Author":"SporyTike","DateModified":"2023-12-26 13:17:55","DateCreated":"2023-12-26 13:17:55","BadgeName":"431975","DisplayOrder":58,"MemAddr":"7659ae56c8059e5df3138c58f2341bc8","type":null},"383337":{"ID":383337,"NumAwarded":1547,"NumAwardedHardcore":1346,"Title":"Secrets of the Moving Walls II","Description":"Trigger the second hidden 1-Up in Valley of Bowser 2.","Points":2,"TrueRatio":22,"Author":"SporyTike","DateModified":"2023-12-26 13:17:55","DateCreated":"2023-12-26 13:17:55","BadgeName":"431976","DisplayOrder":62,"MemAddr":"18b9d36dcd01ce6f02e30ecee6e48d16","type":null},"383338":{"ID":383338,"NumAwarded":1413,"NumAwardedHardcore":1245,"Title":"Gambling with Life","Description":"Enter all 1-Up Chambers in a single Session.","Points":5,"TrueRatio":60,"Author":"SporyTike","DateModified":"2023-12-26 13:17:55","DateCreated":"2023-12-26 13:17:55","BadgeName":"431977","DisplayOrder":175,"MemAddr":"4f8537bd9fca90f6c2ed5d54d8d2b278","type":null},"383339":{"ID":383339,"NumAwarded":1617,"NumAwardedHardcore":1406,"Title":"Secrets of Larry","Description":"Trigger the hidden 1-Up in #7 Larry's Castle.","Points":3,"TrueRatio":32,"Author":"SporyTike","DateModified":"2023-12-26 13:17:59","DateCreated":"2023-12-26 13:17:59","BadgeName":"431978","DisplayOrder":63,"MemAddr":"3fbc21e97b2dc5d4df844ec9327bebbc","type":null},"383340":{"ID":383340,"NumAwarded":1664,"NumAwardedHardcore":1451,"Title":"Secrets of the Moving Walls","Description":"Trigger the first hidden 1-Up in Valley of Bowser 2.","Points":2,"TrueRatio":21,"Author":"SporyTike","DateModified":"2023-12-26 13:18:03","DateCreated":"2023-12-26 13:18:03","BadgeName":"431979","DisplayOrder":61,"MemAddr":"bf096482413aa52ceaa356eccf7c7cc5","type":null}},"Claims":[{"User":"Scott","SetType":0,"GameID":228,"ClaimType":0,"Created":"2013-04-29 00:00:00","Expiration":"2013-04-29 00:00:00"},{"User":"jackolantern","SetType":1,"GameID":228,"ClaimType":0,"Created":"2013-07-01 00:00:00","Expiration":"2013-07-01 00:00:00"},{"User":"Jaarl","SetType":1,"GameID":228,"ClaimType":0,"Created":"2013-08-15 00:00:00","Expiration":"2013-08-15 00:00:00"},{"User":"mrvsonic87","SetType":1,"GameID":228,"ClaimType":0,"Created":"2013-09-20 00:00:00","Expiration":"2013-09-20 00:00:00"},{"User":"UNHchabo","SetType":1,"GameID":228,"ClaimType":0,"Created":"2014-02-09 00:00:00","Expiration":"2014-02-09 00:00:00"},{"User":"Dexterspet","SetType":1,"GameID":228,"ClaimType":0,"Created":"2015-10-25 00:00:00","Expiration":"2015-10-25 00:00:00"},{"User":"Salsa","SetType":1,"GameID":228,"ClaimType":0,"Created":"2017-03-08 00:00:00","Expiration":"2017-03-08 00:00:00"},{"User":"matheus2653","SetType":1,"GameID":228,"ClaimType":0,"Created":"2017-03-12 00:00:00","Expiration":"2017-03-12 00:00:00"},{"User":"kdecks","SetType":1,"GameID":228,"ClaimType":0,"Created":"2017-03-16 00:00:00","Expiration":"2017-03-16 00:00:00"},{"User":"Sweezy1992","SetType":1,"GameID":228,"ClaimType":0,"Created":"2021-09-28 00:00:00","Expiration":"2021-09-30 00:00:00"},{"User":"SporyTike","SetType":1,"GameID":228,"ClaimType":0,"Created":"2023-12-24 08:38:05","Expiration":"2023-12-26 13:24:52"},{"User":"AuburnRDM","SetType":1,"GameID":228,"ClaimType":0,"Created":"2024-11-19 18:46:34","Expiration":"2025-05-19 18:46:34"}],"NumDistinctPlayersCasual":73583,"NumDistinctPlayersHardcore":73583}
\ No newline at end of file
diff --git a/cache/retroachievements/a945c9ea703250c42b01b3c1c8263323.json b/cache/retroachievements/a945c9ea703250c42b01b3c1c8263323.json
new file mode 100644
index 0000000..cda332c
--- /dev/null
+++ b/cache/retroachievements/a945c9ea703250c42b01b3c1c8263323.json
@@ -0,0 +1 @@
+{"Title":"Kirby's Dream Land 3","ID":813,"ConsoleID":3,"ConsoleName":"SNES\/Super Famicom","ImageIcon":"https:\/\/retroachievements.org\/Images\/055789.png","NumAchievements":32,"NumLeaderboards":1,"Points":377,"DateModified":"2024-03-30 12:49:18","ForumTopicID":866,"Flags":null,"ImageTitle":"https:\/\/retroachievements.org\/Images\/001819.png","ImageIngame":"https:\/\/retroachievements.org\/Images\/001820.png","ImageBoxArt":"https:\/\/retroachievements.org\/Images\/055863.png","Publisher":"Nintendo","Developer":"HAL Laboratory","Genre":"2D Platforming","Released":"1997-11-27","ReleasedAtGranularity":"day","IsFinal":false,"RichPresencePatch":"44add109084ef2e396b72673dd8b19ff","GuideURL":null,"Updated":"2025-02-26T22:41:54.000000Z","ParentGameID":null,"NumDistinctPlayers":7927,"Achievements":{"7679":{"ID":7679,"NumAwarded":6031,"NumAwardedHardcore":2803,"Title":"Sugar Rush","Description":"Collect an Invincible Candy","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 12:54:47","DateCreated":"2014-04-24 18:29:26","BadgeName":"528236","DisplayOrder":11,"MemAddr":"025ac9862303af0792ea2e5fe53d36fd","type":null},"7733":{"ID":7733,"NumAwarded":1066,"NumAwardedHardcore":804,"Title":"Good Deeds in Grass Land","Description":"Collect all the Heart Stars in Grass Land","Points":10,"TrueRatio":22,"Author":"Scootaloo","DateModified":"2022-04-11 13:26:35","DateCreated":"2014-04-26 18:14:15","BadgeName":"528238","DisplayOrder":13,"MemAddr":"a3b596309535ef29c9002e551e009b68","type":null},"7734":{"ID":7734,"NumAwarded":748,"NumAwardedHardcore":574,"Title":"Good Deeds in Ripple Field","Description":"Collect all the Heart Stars in Ripple Field","Points":10,"TrueRatio":29,"Author":"Scootaloo","DateModified":"2022-04-11 13:26:35","DateCreated":"2014-04-26 18:14:17","BadgeName":"528241","DisplayOrder":16,"MemAddr":"4b6780a6b6530adbe84516d2f2ecc93e","type":null},"7735":{"ID":7735,"NumAwarded":591,"NumAwardedHardcore":456,"Title":"Good Deeds in Sand Canyon","Description":"Collect all the Heart Stars in Sand Canyon","Points":10,"TrueRatio":35,"Author":"Scootaloo","DateModified":"2022-04-11 13:26:36","DateCreated":"2014-04-26 18:14:18","BadgeName":"528244","DisplayOrder":19,"MemAddr":"b81eacc80b140afe1d5c03f47f934336","type":null},"7736":{"ID":7736,"NumAwarded":545,"NumAwardedHardcore":423,"Title":"Good Deeds in Cloudy Park","Description":"Collect all the Heart Stars in Cloudy Park","Points":10,"TrueRatio":38,"Author":"Scootaloo","DateModified":"2022-04-11 13:37:15","DateCreated":"2014-04-26 18:14:20","BadgeName":"528247","DisplayOrder":22,"MemAddr":"e1cc19ec60815b6b52c12d61b4bd01bd","type":null},"7737":{"ID":7737,"NumAwarded":544,"NumAwardedHardcore":432,"Title":"Good Deeds in Iceberg","Description":"Collect all the Heart Stars in Iceberg","Points":10,"TrueRatio":37,"Author":"Scootaloo","DateModified":"2022-04-11 13:37:16","DateCreated":"2014-04-26 18:14:21","BadgeName":"528250","DisplayOrder":25,"MemAddr":"acb162e1ca50f4390ea3cd309bfaead1","type":null},"7701":{"ID":7701,"NumAwarded":6825,"NumAwardedHardcore":3073,"Title":"Chop-Chop!","Description":"Obtain the Cutter ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:19","DateCreated":"2014-04-25 20:50:51","BadgeName":"528228","DisplayOrder":3,"MemAddr":"a5f5d7b62bdcd0832f3a07d5050d97ed","type":null},"7702":{"ID":7702,"NumAwarded":3998,"NumAwardedHardcore":2172,"Title":"Great Balls of Fire","Description":"Obtain the Burning ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:20","DateCreated":"2014-04-25 20:50:53","BadgeName":"528229","DisplayOrder":4,"MemAddr":"e4ac34262b43b4ab7caff43a57cd955c","type":null},"7703":{"ID":7703,"NumAwarded":5022,"NumAwardedHardcore":2503,"Title":"Amp It Up","Description":"Obtain the Spark ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:20","DateCreated":"2014-04-25 20:50:54","BadgeName":"528230","DisplayOrder":5,"MemAddr":"c5900220b85030e227216474173dbc12","type":null},"7704":{"ID":7704,"NumAwarded":3684,"NumAwardedHardcore":2038,"Title":"Prickly Puffball","Description":"Obtain the Needle ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:20","DateCreated":"2014-04-25 20:50:56","BadgeName":"528231","DisplayOrder":6,"MemAddr":"5ee9c5ff9ec04a75c3ffe97724c7eb09","type":null},"7705":{"ID":7705,"NumAwarded":4315,"NumAwardedHardcore":2270,"Title":"Let's Rock!","Description":"Obtain the Stone Ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:21","DateCreated":"2014-04-25 20:50:57","BadgeName":"528232","DisplayOrder":7,"MemAddr":"2ecef33c7427a78428845152b0ebd4e7","type":null},"7706":{"ID":7706,"NumAwarded":1066,"NumAwardedHardcore":751,"Title":"Have an Ice Day!","Description":"Obtain the Ice ability","Points":5,"TrueRatio":12,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:21","DateCreated":"2014-04-25 20:50:59","BadgeName":"528233","DisplayOrder":8,"MemAddr":"5f57f7368d4e25667a0d0c434014d24e","type":null},"7707":{"ID":7707,"NumAwarded":4942,"NumAwardedHardcore":2468,"Title":"Umbrella Fella","Description":"Obtain the Parasol ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:21","DateCreated":"2014-04-25 20:51:01","BadgeName":"528234","DisplayOrder":9,"MemAddr":"f2cf8851ffdfc78d4132a1e008969446","type":null},"7708":{"ID":7708,"NumAwarded":4160,"NumAwardedHardcore":2210,"Title":"#KirbySweep","Description":"Obtain the Clean ability","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-11 15:14:22","DateCreated":"2014-04-25 20:51:02","BadgeName":"528235","DisplayOrder":10,"MemAddr":"14a0062403eb04c8b6e6670ca64557fd","type":null},"7727":{"ID":7727,"NumAwarded":2165,"NumAwardedHardcore":1379,"Title":"Let's Have a Picnic!","Description":"Complete Level 1 - Grass Land","Points":5,"TrueRatio":7,"Author":"Scootaloo","DateModified":"2022-04-11 22:05:13","DateCreated":"2014-04-26 15:41:40","BadgeName":"528239","DisplayOrder":14,"MemAddr":"07fd9a8b5f6d9c0745325555e0a2e4d2","type":"progression"},"7728":{"ID":7728,"NumAwarded":1245,"NumAwardedHardcore":861,"Title":"Going for a Swim?","Description":"Complete Level 2 - Ripple Field","Points":10,"TrueRatio":21,"Author":"Scootaloo","DateModified":"2022-04-11 22:05:13","DateCreated":"2014-04-26 15:41:42","BadgeName":"528242","DisplayOrder":17,"MemAddr":"3923cff1d03c9e2d1fe7f5b91e613d6c","type":"progression"},"7729":{"ID":7729,"NumAwarded":874,"NumAwardedHardcore":626,"Title":"Just Deserts","Description":"Complete Level 3 - Sand Canyon","Points":10,"TrueRatio":27,"Author":"Scootaloo","DateModified":"2022-04-11 22:05:14","DateCreated":"2014-04-26 15:41:43","BadgeName":"528245","DisplayOrder":20,"MemAddr":"8311c003ae02db53598275099770203c","type":"progression"},"7730":{"ID":7730,"NumAwarded":775,"NumAwardedHardcore":556,"Title":"Take Me Higher!","Description":"Complete Level 4 - Cloudy Park","Points":10,"TrueRatio":30,"Author":"Scootaloo","DateModified":"2022-04-11 22:05:14","DateCreated":"2014-04-26 15:41:45","BadgeName":"528248","DisplayOrder":23,"MemAddr":"f4aa9bddaca65dca316730d508177a9e","type":"progression"},"7732":{"ID":7732,"NumAwarded":714,"NumAwardedHardcore":521,"Title":"A Chilling Atmosphere","Description":"Complete Level 5 - Iceberg","Points":10,"TrueRatio":32,"Author":"Scootaloo","DateModified":"2022-04-11 23:52:46","DateCreated":"2014-04-26 17:54:03","BadgeName":"528252","DisplayOrder":27,"MemAddr":"9b693d08caab5c11b67a6af909fea001","type":"progression"},"7759":{"ID":7759,"NumAwarded":290,"NumAwardedHardcore":223,"Title":"Lucky Long-Jumper","Description":"Score 10 points in the Jumping Sub-Game","Points":25,"TrueRatio":167,"Author":"Scootaloo","DateModified":"2022-04-11 23:56:54","DateCreated":"2014-04-28 09:29:59","BadgeName":"528255","DisplayOrder":31,"MemAddr":"e2f8eff368a580717a4e11e87ba68e3d","type":null},"7758":{"ID":7758,"NumAwarded":3834,"NumAwardedHardcore":2098,"Title":"Six-Star Bounty","Description":"Collect 30 Star Pieces and earn a 1-Up","Points":2,"TrueRatio":2,"Author":"Scootaloo","DateModified":"2022-04-12 12:42:40","DateCreated":"2014-04-28 09:27:15","BadgeName":"528226","DisplayOrder":1,"MemAddr":"a2f55ee6770446682b0a245ce89564e6","type":null},"7738":{"ID":7738,"NumAwarded":513,"NumAwardedHardcore":400,"Title":"Friends till the End","Description":"Defeat Zero after collecting all the Heart Stars and see the true ending","Points":10,"TrueRatio":39,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:06","DateCreated":"2014-04-26 19:46:29","BadgeName":"528254","DisplayOrder":29,"MemAddr":"e6d164be3caf6b07319c42c0b1f03bac","type":"win_condition"},"7761":{"ID":7761,"NumAwarded":292,"NumAwardedHardcore":233,"Title":"Superstar Warrior","Description":"Complete the Boss Butch! Sub-Game","Points":25,"TrueRatio":160,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:06","DateCreated":"2014-04-28 12:03:35","BadgeName":"528256","DisplayOrder":32,"MemAddr":"f39098fcbaa3af3e58fca56c8a2e3cae","type":null},"7762":{"ID":7762,"NumAwarded":283,"NumAwardedHardcore":225,"Title":"Kirby Master","Description":"Reach 100% completion!","Points":50,"TrueRatio":331,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:07","DateCreated":"2014-04-28 12:03:36","BadgeName":"528257","DisplayOrder":33,"MemAddr":"d72f39e7f2bf9cc1a2b2db0f24a7aaba","type":null},"7769":{"ID":7769,"NumAwarded":277,"NumAwardedHardcore":224,"Title":"Eye Surgery","Description":"Defeat Zero without taking damage","Points":25,"TrueRatio":166,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:07","DateCreated":"2014-04-28 15:10:28","BadgeName":"528253","DisplayOrder":28,"MemAddr":"46e1ca9daee4f48899c82034a357380d","type":null},"7770":{"ID":7770,"NumAwarded":316,"NumAwardedHardcore":279,"Title":"Shocking Transformations!","Description":"Defeat King Dedede using the Spark ability without taking damage","Points":25,"TrueRatio":136,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:07","DateCreated":"2014-04-28 15:10:29","BadgeName":"528249","DisplayOrder":24,"MemAddr":"ef42cd30b1be59c094f9797eed3f0998","type":"missable"},"7802":{"ID":7802,"NumAwarded":333,"NumAwardedHardcore":294,"Title":"Putting the \"Pain\" in \"Painting\"","Description":"Defeat Ado using the Parasol ability without taking damage","Points":25,"TrueRatio":130,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:08","DateCreated":"2014-04-28 21:30:29","BadgeName":"528246","DisplayOrder":21,"MemAddr":"eb2a4ce34e1b16f76369ab72482e5a86","type":"missable"},"7803":{"ID":7803,"NumAwarded":521,"NumAwardedHardcore":439,"Title":"Not a Nature Lover?","Description":"Defeat Whispy Woods using the Burning ability without taking damage","Points":10,"TrueRatio":36,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:09","DateCreated":"2014-04-28 21:37:46","BadgeName":"528237","DisplayOrder":12,"MemAddr":"05ecfd45cf45916457b879c55ccd75a8","type":"missable"},"7804":{"ID":7804,"NumAwarded":328,"NumAwardedHardcore":292,"Title":"Coldwater Combat","Description":"Defeat Acro using the Ice ability without taking damage","Points":25,"TrueRatio":131,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:09","DateCreated":"2014-04-28 21:37:49","BadgeName":"528240","DisplayOrder":15,"MemAddr":"d00fc13eb6be7a7ee3b5f68deec3d73d","type":"missable"},"7805":{"ID":7805,"NumAwarded":345,"NumAwardedHardcore":306,"Title":"Wiping the Floor with \u2018Em","Description":"Defeat Pon & Con using the Clean ability without taking damage","Points":25,"TrueRatio":125,"Author":"Scootaloo","DateModified":"2022-04-12 13:38:11","DateCreated":"2014-04-28 21:37:51","BadgeName":"528243","DisplayOrder":18,"MemAddr":"b818aaa664bf5357748fab32c45205cb","type":"missable"},"7731":{"ID":7731,"NumAwarded":589,"NumAwardedHardcore":449,"Title":"Matters Needing Attention","Description":"Beat the game without collecting all the Heart Stars and see the ending...?","Points":10,"TrueRatio":36,"Author":"Scootaloo","DateModified":"2022-04-29 02:36:30","DateCreated":"2014-04-26 15:48:59","BadgeName":"528251","DisplayOrder":26,"MemAddr":"b7eafaded631ae8540468d435eb20627","type":"win_condition"},"7757":{"ID":7757,"NumAwarded":3017,"NumAwardedHardcore":1653,"Title":"Happy Hopper","Description":"Earn a 1-Up from the Goal Game","Points":4,"TrueRatio":5,"Author":"Scootaloo","DateModified":"2024-03-30 12:49:18","DateCreated":"2014-04-28 09:26:44","BadgeName":"528227","DisplayOrder":2,"MemAddr":"5e03d472037d52c588f8a20dc7e40e86","type":null}},"Claims":[{"User":"Scootaloo","SetType":0,"GameID":813,"ClaimType":0,"Created":"2014-04-24 00:00:00","Expiration":"2014-04-24 00:00:00"}],"NumDistinctPlayersCasual":7927,"NumDistinctPlayersHardcore":7927}
\ No newline at end of file
diff --git a/cache/retroachievements/b097c3655d6a0b2530311ad5ef15e8dc.json b/cache/retroachievements/b097c3655d6a0b2530311ad5ef15e8dc.json
new file mode 100644
index 0000000..0c07063
--- /dev/null
+++ b/cache/retroachievements/b097c3655d6a0b2530311ad5ef15e8dc.json
@@ -0,0 +1 @@
+{"Title":"BS Super Aleste","ID":244,"ConsoleID":3,"ConsoleName":"SNES\/Super Famicom","ImageIcon":"https:\/\/retroachievements.org\/Images\/093759.png","NumAchievements":86,"NumLeaderboards":3,"Points":895,"DateModified":"2023-06-03 23:20:47","ForumTopicID":3404,"Flags":null,"ImageTitle":"https:\/\/retroachievements.org\/Images\/009825.png","ImageIngame":"https:\/\/retroachievements.org\/Images\/009995.png","ImageBoxArt":"https:\/\/retroachievements.org\/Images\/009818.png","Publisher":"Toho","Developer":"Compile","Genre":"Shoot 'em Up","Released":"1992-10-01","ReleasedAtGranularity":"month","IsFinal":false,"RichPresencePatch":"4241a9e078d084e376098bda82c4841e","GuideURL":null,"Updated":"2025-02-26T15:56:19.000000Z","ParentGameID":null,"NumDistinctPlayers":562,"Achievements":{"44785":{"ID":44785,"NumAwarded":420,"NumAwardedHardcore":261,"Title":"Amazonas","Description":"Clear Area 1 in Main Game","Points":5,"TrueRatio":5,"Author":"Salsa","DateModified":"2020-06-27 20:43:03","DateCreated":"2017-02-07 20:05:36","BadgeName":"45579","DisplayOrder":1,"MemAddr":"3a7a3deb445ccb6932c61faa90f413d6","type":"progression"},"44786":{"ID":44786,"NumAwarded":228,"NumAwardedHardcore":153,"Title":"Space Platform","Description":"Clear Area 2 in Main Game","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2020-06-27 20:43:05","DateCreated":"2017-02-07 20:05:41","BadgeName":"45556","DisplayOrder":2,"MemAddr":"f5e0bf2ee19d65e47a31cfd5fe0f8b4d","type":"progression"},"44787":{"ID":44787,"NumAwarded":295,"NumAwardedHardcore":190,"Title":"Labyrinth","Description":"Clear Area 3 in Main Game","Points":5,"TrueRatio":6,"Author":"Salsa","DateModified":"2020-06-27 20:43:06","DateCreated":"2017-02-07 20:05:46","BadgeName":"45557","DisplayOrder":3,"MemAddr":"be33e86d84dea231a3d0f1f1593c59fa","type":"progression"},"44788":{"ID":44788,"NumAwarded":221,"NumAwardedHardcore":138,"Title":"Black Hole Anomalies","Description":"Clear Area 4 in Main Game","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2020-06-27 20:43:07","DateCreated":"2017-02-07 20:05:53","BadgeName":"45558","DisplayOrder":4,"MemAddr":"aee41a7c56cdb718ea98dd39792376c3","type":"progression"},"44789":{"ID":44789,"NumAwarded":180,"NumAwardedHardcore":108,"Title":"Rock Downfall","Description":"Clear Area 5 in Main Game","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2020-06-27 20:43:08","DateCreated":"2017-02-07 20:06:01","BadgeName":"45559","DisplayOrder":5,"MemAddr":"5088e89c1de65154c0038b4c52af5b91","type":"progression"},"44790":{"ID":44790,"NumAwarded":177,"NumAwardedHardcore":107,"Title":"Labyrinth 2","Description":"Clear Area 6 in Main Game","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2020-06-27 20:43:09","DateCreated":"2017-02-07 20:06:35","BadgeName":"45560","DisplayOrder":6,"MemAddr":"b8c19678b2ca17e85bb86cc5afa3f2f8","type":"progression"},"44791":{"ID":44791,"NumAwarded":174,"NumAwardedHardcore":106,"Title":"Asteroid Belt","Description":"Clear Area 7 in Main Game","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2020-06-27 20:43:10","DateCreated":"2017-02-07 20:06:42","BadgeName":"45561","DisplayOrder":7,"MemAddr":"982f57b1d7a751fa539f2be59229a826","type":"progression"},"44792":{"ID":44792,"NumAwarded":156,"NumAwardedHardcore":90,"Title":"Space Cruiser","Description":"Clear Area 8 in Main Game","Points":5,"TrueRatio":10,"Author":"Salsa","DateModified":"2020-06-27 20:43:14","DateCreated":"2017-02-07 20:07:01","BadgeName":"45562","DisplayOrder":8,"MemAddr":"018f5bda38eed94302df9b85f2ad9cd9","type":"progression"},"44793":{"ID":44793,"NumAwarded":153,"NumAwardedHardcore":89,"Title":"Labyrinth 3","Description":"Clear Area 9 in Main Game","Points":5,"TrueRatio":10,"Author":"Salsa","DateModified":"2020-06-27 20:43:15","DateCreated":"2017-02-07 20:07:09","BadgeName":"45563","DisplayOrder":9,"MemAddr":"8cc1bd8d142e57899817bd56bcbac427","type":"progression"},"44794":{"ID":44794,"NumAwarded":146,"NumAwardedHardcore":85,"Title":"Sky City","Description":"Clear Area 10 in Main Game","Points":5,"TrueRatio":10,"Author":"Salsa","DateModified":"2020-06-27 20:43:16","DateCreated":"2017-02-07 20:08:35","BadgeName":"45565","DisplayOrder":10,"MemAddr":"963585acf0edd1e0bab8c34e3d0bca9b","type":"progression"},"44795":{"ID":44795,"NumAwarded":143,"NumAwardedHardcore":84,"Title":"Data Highway","Description":"Clear Area 11 in Main Game","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2020-06-27 20:43:17","DateCreated":"2017-02-07 20:09:43","BadgeName":"45564","DisplayOrder":11,"MemAddr":"0813d3ac83506b6231ed1f2156277f24","type":"progression"},"44796":{"ID":44796,"NumAwarded":141,"NumAwardedHardcore":84,"Title":"Organic Life","Description":"Clear the Main Game","Points":25,"TrueRatio":55,"Author":"Salsa","DateModified":"2020-06-27 20:43:19","DateCreated":"2017-02-07 20:09:47","BadgeName":"45566","DisplayOrder":12,"MemAddr":"f6d954e810df13bdd7721216b06f235f","type":"win_condition"},"44797":{"ID":44797,"NumAwarded":265,"NumAwardedHardcore":165,"Title":"Raz's Frugality I (Zolba)","Description":"Destroy the boss on Stage 1 without using bombs","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2022-05-14 02:06:35","DateCreated":"2017-02-07 20:09:52","BadgeName":"45543","DisplayOrder":13,"MemAddr":"571b4b763c097dc14d5b408dc11848b0","type":null},"44798":{"ID":44798,"NumAwarded":179,"NumAwardedHardcore":108,"Title":"Raz's Frugality II (Lono)","Description":"Destroy the boss on Stage 2 without using bombs","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2022-05-14 02:06:35","DateCreated":"2017-02-07 20:10:27","BadgeName":"45544","DisplayOrder":14,"MemAddr":"cc4aa49e4f8c7a7da705fd20871ac657","type":null},"44799":{"ID":44799,"NumAwarded":287,"NumAwardedHardcore":184,"Title":"Raz's Frugality III (Sentry)","Description":"Destroy the boss on Stage 3 without using bombs","Points":5,"TrueRatio":6,"Author":"Salsa","DateModified":"2022-05-14 02:06:35","DateCreated":"2017-02-07 20:10:31","BadgeName":"45567","DisplayOrder":15,"MemAddr":"aaa57b01d78e96747bbbff2c5316fab1","type":null},"44800":{"ID":44800,"NumAwarded":187,"NumAwardedHardcore":110,"Title":"Raz's Frugality IV (Janel)","Description":"Destroy the boss on Stage 4 without using bombs","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2022-05-14 02:06:36","DateCreated":"2017-02-07 20:10:35","BadgeName":"45546","DisplayOrder":16,"MemAddr":"3e33642231453954a1ea8ac6b32cbd31","type":null},"44801":{"ID":44801,"NumAwarded":148,"NumAwardedHardcore":84,"Title":"Raz's Frugality V (Nardork)","Description":"Destroy the boss on Stage 5 without using bombs","Points":5,"TrueRatio":11,"Author":"Salsa","DateModified":"2022-05-14 02:06:36","DateCreated":"2017-02-07 20:10:39","BadgeName":"45686","DisplayOrder":17,"MemAddr":"ff859128c8c426981727453298221bbd","type":null},"44802":{"ID":44802,"NumAwarded":176,"NumAwardedHardcore":106,"Title":"Raz's Frugality VI (Bomber)","Description":"Destroy the boss on Stage 6 without using bombs","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2022-05-14 02:06:36","DateCreated":"2017-02-07 20:10:45","BadgeName":"45548","DisplayOrder":18,"MemAddr":"2e8af82dd7a73e37affffd08a25c514b","type":null},"44803":{"ID":44803,"NumAwarded":163,"NumAwardedHardcore":103,"Title":"Raz's Frugality VII (Ruber)","Description":"Destroy the boss on Stage 7 without using bombs","Points":10,"TrueRatio":19,"Author":"Salsa","DateModified":"2022-05-14 02:06:37","DateCreated":"2017-02-07 20:10:50","BadgeName":"45549","DisplayOrder":19,"MemAddr":"b304d6c1188fe64fa79ebd4055606a97","type":null},"44804":{"ID":44804,"NumAwarded":98,"NumAwardedHardcore":50,"Title":"Raz's Frugality VIII (Nont)","Description":"Destroy the boss on Stage 8 without using bombs","Points":10,"TrueRatio":33,"Author":"Salsa","DateModified":"2022-05-14 02:06:37","DateCreated":"2017-02-07 20:10:55","BadgeName":"45550","DisplayOrder":21,"MemAddr":"e07967120427570388b75d4b8cbcd351","type":null},"44805":{"ID":44805,"NumAwarded":149,"NumAwardedHardcore":85,"Title":"Raz's Frugality IX (Gunner)","Description":"Destroy the boss on Stage 9 without using bombs","Points":10,"TrueRatio":21,"Author":"Salsa","DateModified":"2022-05-14 02:06:37","DateCreated":"2017-02-07 20:11:00","BadgeName":"45551","DisplayOrder":22,"MemAddr":"03d087c706ad917edd074861dafae120","type":null},"44806":{"ID":44806,"NumAwarded":90,"NumAwardedHardcore":44,"Title":"Raz's Frugality X (Desert Zolba)","Description":"Destroy the boss on Stage 10 without using bombs","Points":10,"TrueRatio":36,"Author":"Salsa","DateModified":"2022-05-14 02:06:38","DateCreated":"2017-02-07 20:21:11","BadgeName":"45552","DisplayOrder":23,"MemAddr":"2e7bfb8d65a52ac3310315c0e849c8d2","type":null},"44807":{"ID":44807,"NumAwarded":95,"NumAwardedHardcore":46,"Title":"Raz's Frugality XI (Lucifer)","Description":"Destroy the boss on Stage 12 without using bombs","Points":10,"TrueRatio":35,"Author":"Salsa","DateModified":"2022-05-14 02:06:38","DateCreated":"2017-02-07 20:21:15","BadgeName":"45553","DisplayOrder":24,"MemAddr":"a1ee1da9d458220de78cf19ca4cd0ef3","type":null},"44808":{"ID":44808,"NumAwarded":243,"NumAwardedHardcore":150,"Title":"Thi's Velocity I (Zolba)","Description":"Destroy the boss on Stage 1 without taking damage","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2022-05-14 02:06:38","DateCreated":"2017-02-07 20:21:21","BadgeName":"45554","DisplayOrder":25,"MemAddr":"8f4346d69aa302438b50e51bb1e9b9ae","type":null},"44809":{"ID":44809,"NumAwarded":185,"NumAwardedHardcore":114,"Title":"Thi's Velocity II (Lono)","Description":"Destroy the boss on Stage 2 without taking damage","Points":5,"TrueRatio":8,"Author":"Salsa","DateModified":"2022-05-14 02:06:39","DateCreated":"2017-02-07 20:21:26","BadgeName":"45568","DisplayOrder":26,"MemAddr":"0fa1d25925f5b15abe882eabaf972d87","type":null},"44810":{"ID":44810,"NumAwarded":292,"NumAwardedHardcore":190,"Title":"Thi's Velocity III (Sentry)","Description":"Destroy the boss on Stage 3 without taking damage","Points":5,"TrueRatio":6,"Author":"Salsa","DateModified":"2022-05-14 02:06:39","DateCreated":"2017-02-07 20:21:32","BadgeName":"45569","DisplayOrder":27,"MemAddr":"dbf8446d8d940ea5382539efbf8beb2a","type":null},"44811":{"ID":44811,"NumAwarded":162,"NumAwardedHardcore":100,"Title":"Thi's Velocity IV (Janel)","Description":"Destroy the boss on Stage 4 without taking damage","Points":10,"TrueRatio":19,"Author":"Salsa","DateModified":"2022-05-14 02:06:39","DateCreated":"2017-02-07 20:22:36","BadgeName":"45570","DisplayOrder":28,"MemAddr":"50fa1fb0af4dc829255bc24603f30cd8","type":null},"44812":{"ID":44812,"NumAwarded":132,"NumAwardedHardcore":81,"Title":"Thi's Velocity V (Nardork)","Description":"Destroy the boss on Stage 5 without taking damage","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2022-05-14 02:06:40","DateCreated":"2017-02-07 20:22:42","BadgeName":"45571","DisplayOrder":29,"MemAddr":"6a70eeee21a56ec86ecc2abfa9d2f821","type":null},"44813":{"ID":44813,"NumAwarded":176,"NumAwardedHardcore":107,"Title":"Thi's Velocity VI (Bomber)","Description":"Destroy the boss on Stage 6 without taking damage","Points":10,"TrueRatio":18,"Author":"Salsa","DateModified":"2022-05-14 02:06:40","DateCreated":"2017-02-07 20:22:50","BadgeName":"45572","DisplayOrder":30,"MemAddr":"1779965915cc10c1dab87da5fe427920","type":null},"44814":{"ID":44814,"NumAwarded":138,"NumAwardedHardcore":87,"Title":"Thi's Velocity VII (Ruber)","Description":"Destroy the boss on Stage 7 without taking damage","Points":10,"TrueRatio":21,"Author":"Salsa","DateModified":"2022-05-14 02:06:40","DateCreated":"2017-02-07 20:23:19","BadgeName":"45573","DisplayOrder":31,"MemAddr":"9cc33671aa639bcbe0ab9352b48eebdf","type":null},"44815":{"ID":44815,"NumAwarded":88,"NumAwardedHardcore":43,"Title":"Thi's Velocity VIII (Nont)","Description":"Destroy the boss on Stage 8 without taking damage","Points":10,"TrueRatio":37,"Author":"Salsa","DateModified":"2022-05-14 02:06:41","DateCreated":"2017-02-07 20:23:23","BadgeName":"45574","DisplayOrder":32,"MemAddr":"305ffd38b46f7ec936139f6433f5bf7a","type":null},"44816":{"ID":44816,"NumAwarded":137,"NumAwardedHardcore":80,"Title":"Thi's Velocity IX (Gunner)","Description":"Destroy the boss on Stage 9 without taking damage","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2022-05-14 02:06:41","DateCreated":"2017-02-07 20:23:28","BadgeName":"45575","DisplayOrder":33,"MemAddr":"9e632e1e8e2d74f0d6f52f2f8da432fd","type":null},"44817":{"ID":44817,"NumAwarded":82,"NumAwardedHardcore":43,"Title":"Thi's Velocity X (Desert Zolba)","Description":"Destroy the boss on Stage 10 without taking damage","Points":10,"TrueRatio":37,"Author":"Salsa","DateModified":"2022-05-14 02:06:42","DateCreated":"2017-02-07 20:23:33","BadgeName":"45576","DisplayOrder":34,"MemAddr":"e51f0df7abdbebe9d215829d992078d6","type":null},"44818":{"ID":44818,"NumAwarded":82,"NumAwardedHardcore":44,"Title":"Thi's Velocity XI (Lucifer)","Description":"Destroy the boss on Stage 12 without taking damage","Points":25,"TrueRatio":92,"Author":"Salsa","DateModified":"2022-05-14 02:06:42","DateCreated":"2017-02-07 20:23:38","BadgeName":"45577","DisplayOrder":35,"MemAddr":"86d4bfe8389b5b23b116c08e0dcc803a","type":null},"44819":{"ID":44819,"NumAwarded":213,"NumAwardedHardcore":138,"Title":"Space Megaforce I (Amazonas)","Description":"Clear Area 1 in Main Game without being shot down","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2022-05-14 02:06:42","DateCreated":"2017-02-07 20:27:27","BadgeName":"45578","DisplayOrder":36,"MemAddr":"5cbcd90a834ab60b95117d4233dee23d","type":null},"44820":{"ID":44820,"NumAwarded":259,"NumAwardedHardcore":166,"Title":"Space Megaforce II (Space Platform)","Description":"Clear Area 2 in Main Game without being shot down","Points":5,"TrueRatio":7,"Author":"Salsa","DateModified":"2022-05-14 02:06:43","DateCreated":"2017-02-07 20:27:43","BadgeName":"45585","DisplayOrder":37,"MemAddr":"f12c4d76de1a90787553bf0c6aeb4a5d","type":null},"44821":{"ID":44821,"NumAwarded":279,"NumAwardedHardcore":184,"Title":"Space Megaforce III (Labyrinth)","Description":"Clear Area 3 in Main Game without being shot down","Points":5,"TrueRatio":6,"Author":"Salsa","DateModified":"2022-05-14 02:06:43","DateCreated":"2017-02-07 20:29:12","BadgeName":"45587","DisplayOrder":38,"MemAddr":"a53ecac2535983da10cd26e206c78a9f","type":null},"44822":{"ID":44822,"NumAwarded":136,"NumAwardedHardcore":78,"Title":"Space Megaforce IV (Black Hole Anomalies)","Description":"Clear Area 4 in Main Game without being shot down","Points":5,"TrueRatio":11,"Author":"Salsa","DateModified":"2022-05-14 02:06:43","DateCreated":"2017-02-07 20:29:18","BadgeName":"45588","DisplayOrder":39,"MemAddr":"9041ff4dc1eae5625249050b12161938","type":null},"44823":{"ID":44823,"NumAwarded":108,"NumAwardedHardcore":57,"Title":"Space Megaforce V (Rock Downfall)","Description":"Clear Area 5 in Main Game without being shot down","Points":5,"TrueRatio":14,"Author":"Salsa","DateModified":"2022-05-14 02:06:44","DateCreated":"2017-02-07 20:29:22","BadgeName":"45590","DisplayOrder":40,"MemAddr":"e89ae2a164bea7cd828f601ca17cc760","type":null},"44824":{"ID":44824,"NumAwarded":168,"NumAwardedHardcore":102,"Title":"Space Megaforce VI (Labyrinth 2)","Description":"Clear Area 6 in Main Game without being shot down","Points":5,"TrueRatio":9,"Author":"Salsa","DateModified":"2022-05-14 02:06:44","DateCreated":"2017-02-07 20:29:27","BadgeName":"45592","DisplayOrder":41,"MemAddr":"ddf20b4abca335c1d2215a3a7d474c64","type":null},"44825":{"ID":44825,"NumAwarded":137,"NumAwardedHardcore":83,"Title":"Space Megaforce VII (Asteroid Belt)","Description":"Clear Area 7 in Main Game without being shot down","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2022-05-14 02:06:44","DateCreated":"2017-02-07 20:30:48","BadgeName":"45593","DisplayOrder":42,"MemAddr":"146614c47b4799a2f9665d082c8aef99","type":null},"44826":{"ID":44826,"NumAwarded":89,"NumAwardedHardcore":43,"Title":"Space Megaforce VIII (Space Cruiser)","Description":"Clear Area 8 in Main Game without being shot down","Points":10,"TrueRatio":37,"Author":"Salsa","DateModified":"2022-05-14 02:06:45","DateCreated":"2017-02-07 20:30:53","BadgeName":"45594","DisplayOrder":43,"MemAddr":"41aca755bd5b2e371e0fae802937a682","type":null},"44827":{"ID":44827,"NumAwarded":142,"NumAwardedHardcore":83,"Title":"Space Megaforce IX (Labyrinth 3)","Description":"Clear Area 9 in Main Game without being shot down","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2022-05-14 02:06:45","DateCreated":"2017-02-07 20:31:06","BadgeName":"45596","DisplayOrder":44,"MemAddr":"8b2ecb8271b04b9f5ad72eaa13657b65","type":null},"44828":{"ID":44828,"NumAwarded":92,"NumAwardedHardcore":50,"Title":"Space Megaforce X (Sky City)","Description":"Clear Area 10 in Main Game without being shot down","Points":10,"TrueRatio":33,"Author":"Salsa","DateModified":"2022-05-14 02:06:45","DateCreated":"2017-02-07 20:31:14","BadgeName":"45598","DisplayOrder":45,"MemAddr":"ff13a4d432e9088a8a4dc4b5468beb42","type":null},"44829":{"ID":44829,"NumAwarded":111,"NumAwardedHardcore":61,"Title":"Space Megaforce XI (Data Highway)","Description":"Clear Area 11 in Main Game without being shot down","Points":10,"TrueRatio":28,"Author":"Salsa","DateModified":"2022-05-14 02:06:46","DateCreated":"2017-02-07 20:31:21","BadgeName":"45600","DisplayOrder":46,"MemAddr":"db8f0b7fd665e506c46fcb89c59d2815","type":null},"44830":{"ID":44830,"NumAwarded":83,"NumAwardedHardcore":51,"Title":"Space Megaforce XII (Organic Life)","Description":"Clear Area 12 in Main Game without being shot down","Points":10,"TrueRatio":32,"Author":"Salsa","DateModified":"2022-05-14 02:06:46","DateCreated":"2017-02-07 20:40:30","BadgeName":"45601","DisplayOrder":47,"MemAddr":"b716d4c743d2adfa8a9098f8de75e720","type":null},"44831":{"ID":44831,"NumAwarded":418,"NumAwardedHardcore":265,"Title":"Super Complier I (Amazonas)","Description":"Collect 40 additional capsules in Area 1 while not losing a life","Points":10,"TrueRatio":11,"Author":"Salsa","DateModified":"2021-10-07 20:43:24","DateCreated":"2017-02-07 20:40:34","BadgeName":"45815","DisplayOrder":48,"MemAddr":"ebe58f1bed64b74a406600e562bbdbc6","type":null},"44832":{"ID":44832,"NumAwarded":78,"NumAwardedHardcore":44,"Title":"Super Complier II (Space Platform)","Description":"Collect 35 additional capsules in Area 2 while not losing a life","Points":10,"TrueRatio":36,"Author":"Salsa","DateModified":"2021-10-07 20:43:25","DateCreated":"2017-02-07 20:41:33","BadgeName":"45816","DisplayOrder":49,"MemAddr":"f69c0e93f261b43a2170141e729c0c1d","type":null},"44833":{"ID":44833,"NumAwarded":70,"NumAwardedHardcore":42,"Title":"Super Complier III (Labyrinth)","Description":"Collect 20 additional capsules in Area 3 while not losing a life","Points":10,"TrueRatio":38,"Author":"Salsa","DateModified":"2021-10-07 20:43:25","DateCreated":"2017-02-07 20:41:38","BadgeName":"45817","DisplayOrder":50,"MemAddr":"711cb34bb6486ebdd2b2cd272c1b4d5b","type":null},"44834":{"ID":44834,"NumAwarded":76,"NumAwardedHardcore":45,"Title":"Super Complier IV (Black Hole Anomalies) ","Description":"Collect 40 additional capsules in Area 4 while not losing a life","Points":10,"TrueRatio":36,"Author":"Salsa","DateModified":"2021-10-07 20:43:25","DateCreated":"2017-02-07 20:42:36","BadgeName":"45818","DisplayOrder":51,"MemAddr":"6b9e977956c8eb9a4f40f8972ca0f0a1","type":null},"44835":{"ID":44835,"NumAwarded":40,"NumAwardedHardcore":18,"Title":"Super Complier V (Rock Downfall)","Description":"Collect 50 additional capsules in Area 5 while not losing a life","Points":10,"TrueRatio":81,"Author":"Salsa","DateModified":"2021-10-07 20:43:26","DateCreated":"2017-02-07 20:42:41","BadgeName":"45819","DisplayOrder":52,"MemAddr":"362fa619ce5288a2b0f6909f57834aac","type":null},"44836":{"ID":44836,"NumAwarded":53,"NumAwardedHardcore":32,"Title":"Super Complier VI (Labyrinth 2)","Description":"Collect 20 additional capsules in Area 6 while not losing a life","Points":10,"TrueRatio":48,"Author":"Salsa","DateModified":"2021-10-07 20:43:26","DateCreated":"2017-02-07 20:42:45","BadgeName":"45822","DisplayOrder":53,"MemAddr":"226005cb4380ad0547ce77355091cd81","type":null},"44837":{"ID":44837,"NumAwarded":134,"NumAwardedHardcore":86,"Title":"Super Complier VII (Asteroid Belt)","Description":"Collect 70 additional capsules in Area 7 while not losing a life","Points":10,"TrueRatio":21,"Author":"Salsa","DateModified":"2021-10-07 20:43:26","DateCreated":"2017-02-07 20:42:48","BadgeName":"45823","DisplayOrder":54,"MemAddr":"d4b224959e1cafef96f0a986db3f11a1","type":null},"44838":{"ID":44838,"NumAwarded":59,"NumAwardedHardcore":35,"Title":"Super Complier VIII (Space Cruiser)","Description":"Collect 30 additional capsules in Area 8 while not losing a life","Points":10,"TrueRatio":44,"Author":"Salsa","DateModified":"2021-10-07 20:43:27","DateCreated":"2017-02-07 20:42:53","BadgeName":"45824","DisplayOrder":55,"MemAddr":"d4cedcda4cd679ebaf80dfa10eacd1f8","type":null},"44839":{"ID":44839,"NumAwarded":66,"NumAwardedHardcore":42,"Title":"Super Complier IX (Labyrinth 3)","Description":"Collect 20 additional capsules in Area 9 while not losing a life","Points":10,"TrueRatio":38,"Author":"Salsa","DateModified":"2021-10-07 20:43:27","DateCreated":"2017-02-07 20:44:42","BadgeName":"45825","DisplayOrder":56,"MemAddr":"34e0967b9fe1e8829123985030072b4e","type":null},"44840":{"ID":44840,"NumAwarded":47,"NumAwardedHardcore":28,"Title":"Super Complier X (Sky City)","Description":"Collect 60 additional capsules in Area 10 while not losing a life","Points":10,"TrueRatio":54,"Author":"Salsa","DateModified":"2021-10-07 20:43:28","DateCreated":"2017-02-07 20:44:46","BadgeName":"45826","DisplayOrder":57,"MemAddr":"e7b346a4eacf80cb4b0675a13d26c6ed","type":null},"44841":{"ID":44841,"NumAwarded":28,"NumAwardedHardcore":14,"Title":"Super Complier XI (Data Highway)","Description":"Collect 25 additional capsules in Area 11 while not losing a life","Points":10,"TrueRatio":102,"Author":"Salsa","DateModified":"2021-10-07 20:43:28","DateCreated":"2017-02-07 20:44:50","BadgeName":"45827","DisplayOrder":58,"MemAddr":"0d9c8a1c3856b3ceaa2daa22c3668884","type":null},"44842":{"ID":44842,"NumAwarded":78,"NumAwardedHardcore":46,"Title":"Super Complier XII (Organic Life)","Description":"Collect 30 additional capsules in Area 12 while not losing a life","Points":10,"TrueRatio":35,"Author":"Salsa","DateModified":"2021-10-07 20:43:28","DateCreated":"2017-02-07 20:44:54","BadgeName":"45828","DisplayOrder":59,"MemAddr":"df0e29721097a3c393661dab4c40db35","type":null},"44843":{"ID":44843,"NumAwarded":116,"NumAwardedHardcore":81,"Title":"Bullet Rain","Description":"Increase the score 2500 times in one session using only Multi Shot","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2021-10-07 20:43:29","DateCreated":"2017-02-07 20:45:02","BadgeName":"45623","DisplayOrder":60,"MemAddr":"798946ca8fb195eefb2dd774eeab4ecb","type":null},"44844":{"ID":44844,"NumAwarded":140,"NumAwardedHardcore":104,"Title":"Light Force","Description":"Increase the score 2500 times in one session using only Laser","Points":10,"TrueRatio":19,"Author":"Salsa","DateModified":"2021-10-07 20:43:29","DateCreated":"2017-02-07 20:45:06","BadgeName":"45624","DisplayOrder":61,"MemAddr":"cbc1ba36b65526ef009789a0e8eb5df9","type":null},"44845":{"ID":44845,"NumAwarded":120,"NumAwardedHardcore":76,"Title":"Plasma Juggernaut","Description":"Increase your score 2500 times in one session using only Circle","Points":10,"TrueRatio":23,"Author":"Salsa","DateModified":"2021-10-07 20:43:29","DateCreated":"2017-02-07 20:45:11","BadgeName":"45625","DisplayOrder":62,"MemAddr":"bd7e6868227c2c07070afe3f6d7e2d7d","type":null},"44846":{"ID":44846,"NumAwarded":122,"NumAwardedHardcore":83,"Title":"Missile Commando","Description":"Increase the score 2500 times in one session using only Missile","Points":10,"TrueRatio":22,"Author":"Salsa","DateModified":"2021-10-07 20:43:30","DateCreated":"2017-02-07 20:45:52","BadgeName":"45626","DisplayOrder":63,"MemAddr":"473e6874439019b5af1517862dfa26ce","type":null},"44847":{"ID":44847,"NumAwarded":80,"NumAwardedHardcore":55,"Title":"Phase Sniper","Description":"Increase the score 2500 times in one session using only All Range Shot","Points":10,"TrueRatio":30,"Author":"Salsa","DateModified":"2021-10-07 20:43:30","DateCreated":"2017-02-07 20:45:56","BadgeName":"45627","DisplayOrder":64,"MemAddr":"bb6a4f923d361005e38db54c42d1b604","type":null},"44848":{"ID":44848,"NumAwarded":76,"NumAwardedHardcore":51,"Title":"Burst Mania","Description":"Increase the score 2500 times in one session using only Charge Gun","Points":10,"TrueRatio":32,"Author":"Salsa","DateModified":"2021-10-07 20:43:30","DateCreated":"2017-02-07 20:46:00","BadgeName":"45629","DisplayOrder":65,"MemAddr":"ae1544f8d0589b33e4abe5b75ee671d1","type":null},"44849":{"ID":44849,"NumAwarded":93,"NumAwardedHardcore":66,"Title":"Squadron Operation","Description":"Increase the score 2500 times in one session using only Sprite","Points":10,"TrueRatio":26,"Author":"Salsa","DateModified":"2021-10-07 20:43:31","DateCreated":"2017-02-07 20:46:06","BadgeName":"45630","DisplayOrder":66,"MemAddr":"a00a209db36b3832d4b1e9fb146ad57f","type":null},"44850":{"ID":44850,"NumAwarded":86,"NumAwardedHardcore":55,"Title":"Splash Fusillade","Description":"Increase the score 2500 times in one session using only Cracker","Points":10,"TrueRatio":30,"Author":"Salsa","DateModified":"2021-10-07 20:43:31","DateCreated":"2017-02-07 20:46:13","BadgeName":"45631","DisplayOrder":67,"MemAddr":"2e780345aa78e63563fbf269fedfb36b","type":null},"44851":{"ID":44851,"NumAwarded":58,"NumAwardedHardcore":40,"Title":"The Trial of Burden","Description":"Fly through 2500 miles in one session at minimum speed","Points":10,"TrueRatio":39,"Author":"Salsa","DateModified":"2021-10-07 20:43:31","DateCreated":"2017-02-07 20:46:19","BadgeName":"45632","DisplayOrder":68,"MemAddr":"c26911c0e4dd2c3e745795a7e86699af","type":null},"44853":{"ID":44853,"NumAwarded":60,"NumAwardedHardcore":43,"Title":"The Trial of Simplicity","Description":"Fly through 2500 miles in one session using only unupgraded weapons","Points":10,"TrueRatio":37,"Author":"Salsa","DateModified":"2021-10-07 20:43:32","DateCreated":"2017-02-07 20:46:34","BadgeName":"45635","DisplayOrder":70,"MemAddr":"5ef3b13bc2dbd9df53a513d613aa2e91","type":null},"44854":{"ID":44854,"NumAwarded":367,"NumAwardedHardcore":230,"Title":"Enemy Eraser","Description":"Pick up the Enemy Eraser","Points":5,"TrueRatio":5,"Author":"Salsa","DateModified":"2020-06-27 20:44:32","DateCreated":"2017-02-07 20:46:42","BadgeName":"45636","DisplayOrder":71,"MemAddr":"1b0207035af3dd21d3602aff3b85e9b5","type":null},"44855":{"ID":44855,"NumAwarded":59,"NumAwardedHardcore":26,"Title":"Hard Life","Description":"Clear Main Game on Hard mode","Points":25,"TrueRatio":145,"Author":"Salsa","DateModified":"2020-06-27 20:44:50","DateCreated":"2017-02-07 20:47:10","BadgeName":"45637","DisplayOrder":85,"MemAddr":"76607d848c651b9f0979f94e58e2a8aa","type":null},"44856":{"ID":44856,"NumAwarded":47,"NumAwardedHardcore":18,"Title":"Hyper Life","Description":"Clear Main Game on Hyper mode","Points":25,"TrueRatio":203,"Author":"Salsa","DateModified":"2020-06-27 20:44:51","DateCreated":"2017-02-07 20:47:15","BadgeName":"45638","DisplayOrder":86,"MemAddr":"ea4bdb37d2c07a5c6dc55df1a305300c","type":null},"44857":{"ID":44857,"NumAwarded":38,"NumAwardedHardcore":17,"Title":"Tricky Life","Description":"Clear the Main Game on Tricky mode","Points":25,"TrueRatio":214,"Author":"Salsa","DateModified":"2020-06-27 20:44:52","DateCreated":"2017-02-07 20:47:20","BadgeName":"45639","DisplayOrder":87,"MemAddr":"1f58b6648beb99cbc3c91cee6078a496","type":null},"44858":{"ID":44858,"NumAwarded":33,"NumAwardedHardcore":13,"Title":"Lunatic Life","Description":"Clear the game on Lunatic mode","Points":50,"TrueRatio":551,"Author":"Salsa","DateModified":"2021-03-18 23:43:52","DateCreated":"2017-02-07 20:48:11","BadgeName":"45640","DisplayOrder":88,"MemAddr":"e20900de19697dfca5acbd2eb020b42c","type":null},"44859":{"ID":44859,"NumAwarded":119,"NumAwardedHardcore":64,"Title":"Stellar Kitty","Description":"Have 9 lives","Points":10,"TrueRatio":27,"Author":"Salsa","DateModified":"2020-06-27 20:44:33","DateCreated":"2017-02-07 20:48:16","BadgeName":"45830","DisplayOrder":72,"MemAddr":"9b6350d0aebf3cbd554449ee040a5a70","type":null},"44860":{"ID":44860,"NumAwarded":82,"NumAwardedHardcore":46,"Title":"Shiny Gold Stellar Kitty","Description":"Have 9 golden lives","Points":25,"TrueRatio":88,"Author":"Salsa","DateModified":"2020-06-27 20:44:35","DateCreated":"2017-02-07 20:48:20","BadgeName":"45642","DisplayOrder":73,"MemAddr":"186ed33adf88a911deb2ba01db6672ab","type":null},"44861":{"ID":44861,"NumAwarded":505,"NumAwardedHardcore":305,"Title":"Super Aleste","Description":"Upgrade ship to the max","Points":5,"TrueRatio":5,"Author":"Salsa","DateModified":"2020-06-27 20:44:37","DateCreated":"2017-02-07 20:48:25","BadgeName":"45648","DisplayOrder":74,"MemAddr":"1954f77cadf488b94c15df484004c3b9","type":null},"44862":{"ID":44862,"NumAwarded":110,"NumAwardedHardcore":67,"Title":"Doomsday Device","Description":"Obtain the maximum number of bombs","Points":10,"TrueRatio":26,"Author":"Salsa","DateModified":"2020-06-27 20:44:38","DateCreated":"2017-02-07 20:49:20","BadgeName":"45831","DisplayOrder":75,"MemAddr":"35bf779d9f751d77c907b2b3dc01d630","type":null},"44863":{"ID":44863,"NumAwarded":302,"NumAwardedHardcore":192,"Title":"Interceptor Rank","Description":"Score 1000000 points","Points":5,"TrueRatio":6,"Author":"Salsa","DateModified":"2021-11-15 05:54:15","DateCreated":"2017-02-07 20:49:24","BadgeName":"45645","DisplayOrder":76,"MemAddr":"1dd15cb073575b2c1ede19794177e18a","type":null},"44864":{"ID":44864,"NumAwarded":163,"NumAwardedHardcore":89,"Title":"Strike Fighter Rank","Description":"Score 3000000 points","Points":10,"TrueRatio":21,"Author":"Salsa","DateModified":"2021-11-15 05:54:16","DateCreated":"2017-02-07 20:50:06","BadgeName":"45646","DisplayOrder":77,"MemAddr":"aa652a9b43c0aea0b77214eeb5bb280a","type":null},"44865":{"ID":44865,"NumAwarded":92,"NumAwardedHardcore":53,"Title":"Air Superiority Rank","Description":"Score 6000000 points","Points":10,"TrueRatio":31,"Author":"Salsa","DateModified":"2021-11-15 05:54:16","DateCreated":"2017-02-07 20:50:10","BadgeName":"45647","DisplayOrder":78,"MemAddr":"b5d97efeccb11cb7c29a9e7a99a28348","type":null},"44866":{"ID":44866,"NumAwarded":63,"NumAwardedHardcore":46,"Title":"Simulator Victor","Description":"Score 1500000 points in Short Game","Points":25,"TrueRatio":88,"Author":"Salsa","DateModified":"2022-12-09 00:50:29","DateCreated":"2017-02-07 20:50:15","BadgeName":"45670","DisplayOrder":79,"MemAddr":"931e0b849d242c2896f0f55349a54e1a","type":null},"44867":{"ID":44867,"NumAwarded":125,"NumAwardedHardcore":89,"Title":"Simulator Graduate","Description":"Complete Short Game","Points":10,"TrueRatio":21,"Author":"Salsa","DateModified":"2020-06-27 20:44:43","DateCreated":"2017-02-07 20:50:20","BadgeName":"45643","DisplayOrder":80,"MemAddr":"1acd7e21058d9175a18515767c3eed24","type":null},"44868":{"ID":44868,"NumAwarded":60,"NumAwardedHardcore":36,"Title":"Simulator Wizard","Description":"Complete Short Game on Hyper or Lunatic mode","Points":25,"TrueRatio":109,"Author":"Salsa","DateModified":"2021-11-16 14:45:27","DateCreated":"2017-02-07 20:50:24","BadgeName":"45652","DisplayOrder":81,"MemAddr":"076931725c7dd22bf613364c7fa13306","type":null},"44869":{"ID":44869,"NumAwarded":97,"NumAwardedHardcore":68,"Title":"Simulator Master","Description":"Complete Short Game without being shot down","Points":10,"TrueRatio":25,"Author":"Salsa","DateModified":"2022-12-09 00:49:17","DateCreated":"2017-02-07 20:50:28","BadgeName":"46295","DisplayOrder":82,"MemAddr":"d9c264f93b427834498a7b14fd1e9a66","type":null},"44870":{"ID":44870,"NumAwarded":74,"NumAwardedHardcore":53,"Title":"Simulator Expert","Description":"Complete Short Game using only Multiple Shot","Points":10,"TrueRatio":31,"Author":"Salsa","DateModified":"2022-05-14 02:06:47","DateCreated":"2017-02-07 20:50:32","BadgeName":"45652","DisplayOrder":83,"MemAddr":"1d98d58dafa32ffac3e1281b12aa03c5","type":null},"44871":{"ID":44871,"NumAwarded":46,"NumAwardedHardcore":27,"Title":"Simulator Super Complier","Description":"After fully upgrading your weapon, collect 70 additional capsules in Short Game","Points":25,"TrueRatio":140,"Author":"Salsa","DateModified":"2023-06-03 23:20:47","DateCreated":"2017-02-07 20:50:36","BadgeName":"45653","DisplayOrder":84,"MemAddr":"cc9902adac4f3310e40e9c8fc5231a65","type":null}},"Claims":[{"User":"Salsa","SetType":0,"GameID":244,"ClaimType":0,"Created":"2017-02-07 00:00:00","Expiration":"2017-02-07 00:00:00"}],"NumDistinctPlayersCasual":562,"NumDistinctPlayersHardcore":562}
\ No newline at end of file
diff --git a/cache/retroachievements/dd1818f8c085ff272162d2398845ddeb.json b/cache/retroachievements/dd1818f8c085ff272162d2398845ddeb.json
new file mode 100644
index 0000000..83f2d87
--- /dev/null
+++ b/cache/retroachievements/dd1818f8c085ff272162d2398845ddeb.json
@@ -0,0 +1 @@
+{"Title":"Super Mario All-Stars","ID":253,"ConsoleID":3,"ConsoleName":"SNES\/Super Famicom","ImageIcon":"https:\/\/retroachievements.org\/Images\/066498.png","NumAchievements":106,"NumLeaderboards":1,"Points":919,"DateModified":"2025-01-19 16:18:27","ForumTopicID":616,"Flags":null,"ImageTitle":"https:\/\/retroachievements.org\/Images\/000145.png","ImageIngame":"https:\/\/retroachievements.org\/Images\/000147.png","ImageBoxArt":"https:\/\/retroachievements.org\/Images\/026426.png","Publisher":"Nintendo","Developer":"","Genre":"2D Platforming, Compilation","Released":"1993-07-14","ReleasedAtGranularity":"day","IsFinal":false,"RichPresencePatch":"cb9bcf7e7164d2177d2b60bf6a4aee03","GuideURL":"","Updated":"2025-02-27T00:40:34.000000Z","ParentGameID":null,"NumDistinctPlayers":22577,"Achievements":{"26905":{"ID":26905,"NumAwarded":7551,"NumAwardedHardcore":4770,"Title":"Welcome to the Mushroom Kingdom!","Description":"[SMB1] Complete World 1","Points":5,"TrueRatio":7,"Author":"Brian","DateModified":"2024-05-08 15:28:47","DateCreated":"2015-08-03 12:06:36","BadgeName":"384447","DisplayOrder":0,"MemAddr":"ead8aeee69b58fa353635060ad7ace8c","type":null},"26906":{"ID":26906,"NumAwarded":6423,"NumAwardedHardcore":4136,"Title":"Across the Pond","Description":"[SMB1] Complete World 2","Points":5,"TrueRatio":8,"Author":"Brian","DateModified":"2024-05-08 15:28:57","DateCreated":"2015-08-03 12:06:38","BadgeName":"384448","DisplayOrder":1,"MemAddr":"efa6c42e7b5816e52312bfc2440ac67e","type":null},"26907":{"ID":26907,"NumAwarded":5652,"NumAwardedHardcore":3652,"Title":"Northern Lights","Description":"[SMB1] Complete World 3","Points":5,"TrueRatio":9,"Author":"Brian","DateModified":"2024-05-08 15:29:07","DateCreated":"2015-08-03 12:06:41","BadgeName":"384449","DisplayOrder":2,"MemAddr":"134695847f2e0b51d4287e41bec14a95","type":null},"26908":{"ID":26908,"NumAwarded":4435,"NumAwardedHardcore":2968,"Title":"Scary 'Shrooms","Description":"[SMB1] Complete World 4","Points":5,"TrueRatio":10,"Author":"Brian","DateModified":"2024-05-08 15:29:16","DateCreated":"2015-08-03 12:06:42","BadgeName":"384450","DisplayOrder":3,"MemAddr":"3c4bb9d97db0aa1c1d63416218d1082f","type":null},"26909":{"ID":26909,"NumAwarded":4635,"NumAwardedHardcore":2779,"Title":"Bite the Bullet","Description":"[SMB1] Complete World 5","Points":5,"TrueRatio":11,"Author":"Brian","DateModified":"2024-05-08 15:29:26","DateCreated":"2015-08-03 12:06:44","BadgeName":"384451","DisplayOrder":4,"MemAddr":"741263da3fc0b276931e1b30fd79259b","type":null},"26910":{"ID":26910,"NumAwarded":4108,"NumAwardedHardcore":2466,"Title":"Piranha Pipe Plaza","Description":"[SMB1] Complete World 6","Points":5,"TrueRatio":12,"Author":"Brian","DateModified":"2024-05-08 15:29:37","DateCreated":"2015-08-03 12:06:45","BadgeName":"384452","DisplayOrder":5,"MemAddr":"043ee1e8ae16536762cefe792e6c27b3","type":null},"26911":{"ID":26911,"NumAwarded":3741,"NumAwardedHardcore":2233,"Title":"Familiar Territory","Description":"[SMB1] Complete World 7","Points":5,"TrueRatio":13,"Author":"Brian","DateModified":"2024-05-08 15:29:47","DateCreated":"2015-08-03 12:06:47","BadgeName":"384453","DisplayOrder":6,"MemAddr":"15a02df3f143f3b84a83e72cda387d41","type":null},"26912":{"ID":26912,"NumAwarded":3532,"NumAwardedHardcore":1774,"Title":"We Present You a New Quest...","Description":"[SMB1] Complete World 8 and save Princess Toadstool","Points":10,"TrueRatio":31,"Author":"Brian","DateModified":"2024-05-08 15:29:56","DateCreated":"2015-08-03 12:06:49","BadgeName":"384454","DisplayOrder":7,"MemAddr":"11aca428c7a0064c5eaa4eddef8f311a","type":"progression"},"26913":{"ID":26913,"NumAwarded":2115,"NumAwardedHardcore":1431,"Title":"Welcome to the Mushroom Kingdom! - Second Quest","Description":"[SMB1] Complete World 1 on the Second Quest","Points":5,"TrueRatio":18,"Author":"Brian","DateModified":"2024-05-08 15:30:24","DateCreated":"2015-08-03 12:06:51","BadgeName":"384455","DisplayOrder":8,"MemAddr":"ab66a314c233550f1084000f2efc0009","type":null},"26914":{"ID":26914,"NumAwarded":1969,"NumAwardedHardcore":1337,"Title":"Across the Pond - Second Quest","Description":"[SMB1] Complete World 2 on the Second Quest","Points":5,"TrueRatio":19,"Author":"Brian","DateModified":"2024-05-08 15:30:33","DateCreated":"2015-08-03 12:06:52","BadgeName":"384456","DisplayOrder":9,"MemAddr":"42f3d4750c73876d9b00e3bd162f9b8a","type":null},"26915":{"ID":26915,"NumAwarded":1919,"NumAwardedHardcore":1310,"Title":"Northern Lights - Second Quest","Description":"[SMB1] Complete World 3 on the Second Quest","Points":5,"TrueRatio":20,"Author":"Brian","DateModified":"2024-05-08 15:30:40","DateCreated":"2015-08-03 12:06:54","BadgeName":"384457","DisplayOrder":10,"MemAddr":"db8ee8ced239400b2dc48413ba4e2672","type":null},"26916":{"ID":26916,"NumAwarded":1875,"NumAwardedHardcore":1285,"Title":"Scary 'Shrooms - Second Quest","Description":"[SMB1] Complete World 4 on the Second Quest","Points":5,"TrueRatio":20,"Author":"Brian","DateModified":"2024-05-08 15:30:48","DateCreated":"2015-08-03 12:06:56","BadgeName":"384458","DisplayOrder":11,"MemAddr":"2c55414588eea5bb5433fbe8282de48c","type":null},"26917":{"ID":26917,"NumAwarded":1882,"NumAwardedHardcore":1271,"Title":"Bite the Bullet - Second Quest","Description":"[SMB1] Complete World 5 on the Second Quest","Points":10,"TrueRatio":41,"Author":"Brian","DateModified":"2024-05-08 15:30:56","DateCreated":"2015-08-03 12:06:57","BadgeName":"384459","DisplayOrder":12,"MemAddr":"0be6b805a7e9eac3d5c0f317ca4e03af","type":null},"26918":{"ID":26918,"NumAwarded":1848,"NumAwardedHardcore":1248,"Title":"Piranha Pipe Plaza - Second Quest","Description":"[SMB1] Complete World 6 on the Second Quest","Points":10,"TrueRatio":42,"Author":"Brian","DateModified":"2024-05-08 15:31:06","DateCreated":"2015-08-03 12:06:59","BadgeName":"384460","DisplayOrder":13,"MemAddr":"79bbc257359b13a20746856e5c813e70","type":null},"26919":{"ID":26919,"NumAwarded":1822,"NumAwardedHardcore":1228,"Title":"Familiar Territory - Second Quest","Description":"[SMB1] Complete World 7 on the Second Quest","Points":10,"TrueRatio":42,"Author":"Brian","DateModified":"2024-05-08 15:31:14","DateCreated":"2015-08-03 12:07:01","BadgeName":"384461","DisplayOrder":14,"MemAddr":"73a64fef99df0b2e55660533d35372ee","type":null},"26920":{"ID":26920,"NumAwarded":1946,"NumAwardedHardcore":1237,"Title":"Your Quest Is Over!","Description":"[SMB1] Complete World 8 on the Second Quest and save Princess Toadstool again","Points":10,"TrueRatio":42,"Author":"Brian","DateModified":"2024-05-08 15:31:22","DateCreated":"2015-08-03 12:07:03","BadgeName":"384462","DisplayOrder":15,"MemAddr":"2fd94de13b4299ce33ef760d1411bc1e","type":null},"26921":{"ID":26921,"NumAwarded":1876,"NumAwardedHardcore":1174,"Title":"Super Speedrun Bros.","Description":"[SMB1] Beat the game in one session using the shortest possible route","Points":10,"TrueRatio":44,"Author":"Brian","DateModified":"2024-05-08 15:31:44","DateCreated":"2015-08-03 12:07:16","BadgeName":"384463","DisplayOrder":16,"MemAddr":"d0e5c8cf70219ba929ea0f7ff5f83c3c","type":null},"26922":{"ID":26922,"NumAwarded":1680,"NumAwardedHardcore":872,"Title":"Steadfast Platformer","Description":"[SMB1] Beat the game in one session without losing a life","Points":25,"TrueRatio":144,"Author":"Brian","DateModified":"2024-05-08 15:31:54","DateCreated":"2015-08-03 12:07:19","BadgeName":"384464","DisplayOrder":17,"MemAddr":"e2ce9e4254145e43b52e62f70d4a349d","type":null},"26923":{"ID":26923,"NumAwarded":11738,"NumAwardedHardcore":6493,"Title":"A Warp Welcome","Description":"[SMB1] Find a Warp Zone","Points":1,"TrueRatio":1,"Author":"Brian","DateModified":"2024-05-08 15:32:21","DateCreated":"2015-08-03 12:07:26","BadgeName":"384465","DisplayOrder":18,"MemAddr":"6c7f20e466c9225ddf62c911edb12836","type":null},"26924":{"ID":26924,"NumAwarded":14461,"NumAwardedHardcore":7860,"Title":"Hidden Riches","Description":"[SMB1] Find a bonus area","Points":1,"TrueRatio":1,"Author":"Brian","DateModified":"2024-05-08 15:32:34","DateCreated":"2015-08-03 12:07:37","BadgeName":"384466","DisplayOrder":19,"MemAddr":"a0786d82725a4c15ef1c6065d91ab5ef","type":null},"26925":{"ID":26925,"NumAwarded":2132,"NumAwardedHardcore":1405,"Title":"Lucky Lifesaver I","Description":"[SMB1] Earn 15 lives","Points":10,"TrueRatio":38,"Author":"Brian","DateModified":"2024-05-08 15:32:48","DateCreated":"2015-08-03 12:07:39","BadgeName":"384467","DisplayOrder":20,"MemAddr":"4698776f90eb419b78e16acd718924a1","type":null},"26926":{"ID":26926,"NumAwarded":3017,"NumAwardedHardcore":1980,"Title":"For Super Players!","Description":"[SMBTLL] Complete World 1","Points":5,"TrueRatio":14,"Author":"Brian","DateModified":"2024-05-08 15:42:26","DateCreated":"2015-08-03 12:07:58","BadgeName":"384468","DisplayOrder":21,"MemAddr":"6da9db15e15e940360ba230b38b8b9d1","type":null},"26927":{"ID":26927,"NumAwarded":2195,"NumAwardedHardcore":1377,"Title":"Designer's Block","Description":"[SMBTLL] Complete World 2","Points":5,"TrueRatio":19,"Author":"Brian","DateModified":"2024-05-08 15:42:35","DateCreated":"2015-08-03 12:08:04","BadgeName":"384469","DisplayOrder":22,"MemAddr":"f7c5883b098bf1a13af5d47f5c291596","type":null},"26928":{"ID":26928,"NumAwarded":1918,"NumAwardedHardcore":1242,"Title":"Cold-Hearted","Description":"[SMBTLL] Complete World 3","Points":5,"TrueRatio":21,"Author":"Brian","DateModified":"2024-05-08 15:42:44","DateCreated":"2015-08-03 12:08:05","BadgeName":"384470","DisplayOrder":23,"MemAddr":"1f8f2ab89f39e6ac81cbb1507b337e95","type":null},"26929":{"ID":26929,"NumAwarded":1799,"NumAwardedHardcore":1154,"Title":"Fierce Fields","Description":"[SMBTLL] Complete World 4","Points":5,"TrueRatio":22,"Author":"Brian","DateModified":"2024-05-08 15:42:53","DateCreated":"2015-08-03 12:08:07","BadgeName":"384471","DisplayOrder":24,"MemAddr":"5369e02d23d58eecf524761e90b58425","type":null},"26930":{"ID":26930,"NumAwarded":1497,"NumAwardedHardcore":988,"Title":"Blow Me Away!","Description":"[SMBTLL] Complete World 5","Points":10,"TrueRatio":51,"Author":"Brian","DateModified":"2024-05-08 15:43:01","DateCreated":"2015-08-03 12:08:08","BadgeName":"384472","DisplayOrder":25,"MemAddr":"fc5ffe237bed1a8401cb8f7fb0f461ac","type":null},"26931":{"ID":26931,"NumAwarded":1482,"NumAwardedHardcore":963,"Title":"Bridge over Troubling Waters","Description":"[SMBTLL] Complete World 6","Points":10,"TrueRatio":53,"Author":"Brian","DateModified":"2024-05-08 15:43:10","DateCreated":"2015-08-03 12:08:10","BadgeName":"384473","DisplayOrder":26,"MemAddr":"877765ba29a5ae837c9cdeb63f780bbe","type":null},"26932":{"ID":26932,"NumAwarded":1487,"NumAwardedHardcore":941,"Title":"Mind the Gaps!","Description":"[SMBTLL] Complete World 7","Points":10,"TrueRatio":54,"Author":"Brian","DateModified":"2024-05-08 15:43:18","DateCreated":"2015-08-03 12:08:11","BadgeName":"384474","DisplayOrder":27,"MemAddr":"64563e90293c9ef7ae96baab49aa7ec9","type":null},"26933":{"ID":26933,"NumAwarded":1418,"NumAwardedHardcore":883,"Title":"Brothers in Arms","Description":"[SMBTLL] Complete World 8 and save Princess Toadstool","Points":10,"TrueRatio":57,"Author":"Brian","DateModified":"2024-05-08 15:43:31","DateCreated":"2015-08-03 12:08:13","BadgeName":"384475","DisplayOrder":28,"MemAddr":"49e802498ac1c1b7e092e20cdec1fb0d","type":"progression"},"26934":{"ID":26934,"NumAwarded":1186,"NumAwardedHardcore":804,"Title":"A is for Amazing","Description":"[SMBTLL] Complete World A","Points":10,"TrueRatio":62,"Author":"Brian","DateModified":"2024-05-08 15:43:50","DateCreated":"2015-08-03 12:08:15","BadgeName":"384477","DisplayOrder":30,"MemAddr":"d48a061f1305eb0616149598920096e2","type":null},"26935":{"ID":26935,"NumAwarded":1175,"NumAwardedHardcore":792,"Title":"B is for Brave","Description":"[SMBTLL] Complete World B","Points":10,"TrueRatio":63,"Author":"Brian","DateModified":"2024-05-08 15:43:59","DateCreated":"2015-08-03 12:08:16","BadgeName":"384478","DisplayOrder":31,"MemAddr":"d424703b91efe8a4e529cd5cb001440d","type":null},"26936":{"ID":26936,"NumAwarded":1148,"NumAwardedHardcore":778,"Title":"C is for Champion","Description":"[SMBTLL] Complete World C","Points":10,"TrueRatio":64,"Author":"Brian","DateModified":"2024-05-08 15:44:08","DateCreated":"2015-08-03 12:08:17","BadgeName":"384479","DisplayOrder":32,"MemAddr":"2d7acaec7f19347cb957050e562c556b","type":null},"26937":{"ID":26937,"NumAwarded":1132,"NumAwardedHardcore":763,"Title":"D is for In-D-structible!","Description":"[SMBTLL] Complete World D and rescue Princess Toadstool again","Points":25,"TrueRatio":163,"Author":"Brian","DateModified":"2024-05-08 15:45:15","DateCreated":"2015-08-03 12:08:19","BadgeName":"384480","DisplayOrder":33,"MemAddr":"189ede2b5cf50feb872ffb7600ac2063","type":null},"26938":{"ID":26938,"NumAwarded":742,"NumAwardedHardcore":593,"Title":"Super Speedrun Bros.: The Lost Levels","Description":"[SMBTLL] Complete the game in one session using the shortest possible route","Points":25,"TrueRatio":205,"Author":"Brian","DateModified":"2024-05-08 15:45:37","DateCreated":"2015-08-03 12:08:20","BadgeName":"384481","DisplayOrder":34,"MemAddr":"d21d74fb4b0024f2ba28c43e2c38e449","type":null},"26939":{"ID":26939,"NumAwarded":1052,"NumAwardedHardcore":808,"Title":"Lucky Lifesaver II","Description":"[SMBTLL] Earn 15 lives","Points":10,"TrueRatio":62,"Author":"Brian","DateModified":"2024-05-08 15:45:53","DateCreated":"2015-08-03 12:08:25","BadgeName":"384482","DisplayOrder":35,"MemAddr":"d2ccc13d4f9920a42f7bfab5a64eacb6","type":null},"26940":{"ID":26940,"NumAwarded":2889,"NumAwardedHardcore":1838,"Title":"Lost and Found","Description":"[SMBTLL] Find a bonus area","Points":2,"TrueRatio":6,"Author":"Brian","DateModified":"2024-05-08 15:46:02","DateCreated":"2015-08-03 12:08:54","BadgeName":"384483","DisplayOrder":36,"MemAddr":"f1d880eebc4125c945d8bf71abf66d60","type":null},"26941":{"ID":26941,"NumAwarded":5913,"NumAwardedHardcore":3489,"Title":"Twinkle, Twinkle","Description":"[SMB2] Collect a Starman","Points":1,"TrueRatio":1,"Author":"Brian","DateModified":"2024-05-08 15:49:08","DateCreated":"2015-08-03 12:09:28","BadgeName":"384484","DisplayOrder":37,"MemAddr":"cc9b7458aa736c893016da5216755b4d","type":null},"26942":{"ID":26942,"NumAwarded":4741,"NumAwardedHardcore":2887,"Title":"Put in Time-Out","Description":"[SMB2] Collect a Stop Watch","Points":1,"TrueRatio":2,"Author":"Brian","DateModified":"2024-05-08 15:49:20","DateCreated":"2015-08-03 12:09:30","BadgeName":"384485","DisplayOrder":38,"MemAddr":"a6905730d46f20114489d4a8e0c00ab7","type":null},"26943":{"ID":26943,"NumAwarded":6951,"NumAwardedHardcore":3970,"Title":"On the Flip Side","Description":"[SMB2] Enter Subspace","Points":1,"TrueRatio":1,"Author":"Brian","DateModified":"2024-05-08 15:49:31","DateCreated":"2015-08-03 12:09:31","BadgeName":"384486","DisplayOrder":39,"MemAddr":"e22d49b588ceda690889fca678b01edf","type":null},"26944":{"ID":26944,"NumAwarded":3601,"NumAwardedHardcore":2254,"Title":"Big Bucks","Description":"[SMB2] Match all three slots in the Bonus Chance","Points":4,"TrueRatio":10,"Author":"Brian","DateModified":"2024-05-08 15:49:58","DateCreated":"2015-08-03 12:09:32","BadgeName":"384487","DisplayOrder":40,"MemAddr":"aca8033cc134969cbdf016d8905f5c4a","type":null},"26945":{"ID":26945,"NumAwarded":1939,"NumAwardedHardcore":1366,"Title":"Amazing Vase","Description":"[SMB2] Find a hidden warp","Points":4,"TrueRatio":15,"Author":"Brian","DateModified":"2024-05-08 15:50:10","DateCreated":"2015-08-03 12:09:34","BadgeName":"384488","DisplayOrder":41,"MemAddr":"2fd799e83a1b1701cb52dae95d96868b","type":null},"26946":{"ID":26946,"NumAwarded":1668,"NumAwardedHardcore":1284,"Title":"Golden Gardener","Description":"[SMB2] Collect 10 coins in a single stage","Points":5,"TrueRatio":20,"Author":"Brian","DateModified":"2024-05-08 15:50:23","DateCreated":"2015-08-03 12:09:42","BadgeName":"384489","DisplayOrder":42,"MemAddr":"a4309f63523b6f8521fa6aae3e261cbf","type":null},"26947":{"ID":26947,"NumAwarded":1392,"NumAwardedHardcore":901,"Title":"Lucky Lifesaver III","Description":"[SMB2] Earn 20 lives","Points":10,"TrueRatio":56,"Author":"Brian","DateModified":"2024-05-08 15:50:37","DateCreated":"2015-08-03 12:09:49","BadgeName":"384490","DisplayOrder":43,"MemAddr":"0d0c1bcafa150e632a344cb44b8cf822","type":null},"26948":{"ID":26948,"NumAwarded":4180,"NumAwardedHardcore":2653,"Title":"Capping Out","Description":"[SMB2] Max out your health at 4 units","Points":4,"TrueRatio":9,"Author":"Brian","DateModified":"2024-05-08 15:50:54","DateCreated":"2015-08-03 12:09:50","BadgeName":"384491","DisplayOrder":44,"MemAddr":"81de13f73d9601be574a5a478dc557c0","type":null},"26949":{"ID":26949,"NumAwarded":5242,"NumAwardedHardcore":3224,"Title":"I'll Remember This!","Description":"[SMB2] Defeat Birdo in World 1-1 without taking damage","Points":5,"TrueRatio":10,"Author":"Brian","DateModified":"2024-05-08 15:53:33","DateCreated":"2015-08-03 12:10:09","BadgeName":"384492","DisplayOrder":45,"MemAddr":"70f288b3e5f968882ad200d4e5d17e01","type":null},"26950":{"ID":26950,"NumAwarded":1747,"NumAwardedHardcore":1242,"Title":"Hydra-phobia - Perfect","Description":"[SMB2] Defeat Tryclyde in World 2 without taking damage","Points":10,"TrueRatio":42,"Author":"Brian","DateModified":"2024-05-08 15:54:11","DateCreated":"2015-08-03 12:10:16","BadgeName":"384496","DisplayOrder":49,"MemAddr":"af178fdc97365eb962f1c39d6b3ca8da","type":null},"26951":{"ID":26951,"NumAwarded":2198,"NumAwardedHardcore":1525,"Title":"The Pipsqueak Bomber - Perfect","Description":"[SMB2] Defeat Mouser in World 1 without taking damage","Points":10,"TrueRatio":35,"Author":"Brian","DateModified":"2024-05-08 15:53:51","DateCreated":"2015-08-03 12:10:35","BadgeName":"384494","DisplayOrder":47,"MemAddr":"cf9fc9ba91649b8c5342131de32d34c7","type":null},"26952":{"ID":26952,"NumAwarded":1423,"NumAwardedHardcore":1022,"Title":"Return of the Pipsqueak Bomber - Perfect","Description":"[SMB2] Defeat Mouser in World 3 without taking damage","Points":10,"TrueRatio":50,"Author":"Brian","DateModified":"2024-05-08 15:54:32","DateCreated":"2015-08-03 12:10:37","BadgeName":"384498","DisplayOrder":51,"MemAddr":"39c79105d13c532b9adf340d5729c281","type":null},"26953":{"ID":26953,"NumAwarded":1151,"NumAwardedHardcore":840,"Title":"Fireball Brawl - Perfect","Description":"[SMB2] Defeat Fryguy in World 4 without taking damage","Points":10,"TrueRatio":59,"Author":"Brian","DateModified":"2024-05-08 15:54:52","DateCreated":"2015-08-03 12:10:38","BadgeName":"384500","DisplayOrder":53,"MemAddr":"256a20765c37e55348573bd8d832d983","type":null},"26954":{"ID":26954,"NumAwarded":1115,"NumAwardedHardcore":795,"Title":"Chaotic Crustacean - Perfect","Description":"[SMB2] Defeat Clawgrip in World 5 without taking damage","Points":10,"TrueRatio":62,"Author":"Brian","DateModified":"2024-05-08 15:55:08","DateCreated":"2015-08-03 12:10:40","BadgeName":"384502","DisplayOrder":55,"MemAddr":"2ba32eb17c6f47c64c1dd873ac3b47a5","type":null},"26955":{"ID":26955,"NumAwarded":1247,"NumAwardedHardcore":882,"Title":"Return of Hydra-phobia - Perfect","Description":"[SMB2] Defeat Tryclyde in World 6 without taking damage","Points":10,"TrueRatio":57,"Author":"Brian","DateModified":"2024-05-08 15:55:30","DateCreated":"2015-08-03 12:10:42","BadgeName":"384504","DisplayOrder":57,"MemAddr":"35af42af6fd1b78d6cec02f71b5498e0","type":null},"26956":{"ID":26956,"NumAwarded":1257,"NumAwardedHardcore":881,"Title":"Unpleasant Surprise - Perfect","Description":"[SMB2] Defeat the evil Mask Gate in World 7 without taking damage","Points":10,"TrueRatio":57,"Author":"Brian","DateModified":"2024-05-08 15:57:20","DateCreated":"2015-08-03 12:10:44","BadgeName":"384506","DisplayOrder":59,"MemAddr":"44c787412afb9fdca1fb1c1e3c0c1fde","type":null},"26957":{"ID":26957,"NumAwarded":2360,"NumAwardedHardcore":1617,"Title":"Hydra-phobia","Description":"[SMB2] Defeat Tryclyde in World 2","Points":5,"TrueRatio":17,"Author":"Brian","DateModified":"2024-05-08 15:54:02","DateCreated":"2015-08-03 12:10:54","BadgeName":"384495","DisplayOrder":48,"MemAddr":"ea588fc65c7e702486443ac533e0ad81","type":null},"26958":{"ID":26958,"NumAwarded":1635,"NumAwardedHardcore":1125,"Title":"Fireball Brawl","Description":"[SMB2] Defeat Fryguy in World 4","Points":5,"TrueRatio":23,"Author":"Brian","DateModified":"2024-05-08 15:54:43","DateCreated":"2015-08-03 12:10:55","BadgeName":"384499","DisplayOrder":52,"MemAddr":"a2aa13c6d28c69df273ec7958192675d","type":null},"26959":{"ID":26959,"NumAwarded":1412,"NumAwardedHardcore":956,"Title":"Chaotic Crustacean","Description":"[SMB2] Defeat Clawgrip in World 5","Points":5,"TrueRatio":26,"Author":"Brian","DateModified":"2024-05-08 15:55:00","DateCreated":"2015-08-03 12:10:57","BadgeName":"384501","DisplayOrder":54,"MemAddr":"fb14826b0b5b860de51c0c7dd328d17d","type":null},"26960":{"ID":26960,"NumAwarded":3107,"NumAwardedHardcore":2074,"Title":"The Pipsqueak Bomber","Description":"[SMB2] Defeat Mouser in World 1","Points":5,"TrueRatio":13,"Author":"Brian","DateModified":"2024-05-08 15:53:42","DateCreated":"2015-08-03 12:10:58","BadgeName":"384493","DisplayOrder":46,"MemAddr":"de68f04c9e51245ed6e0b10ebec31a53","type":null},"26961":{"ID":26961,"NumAwarded":1113,"NumAwardedHardcore":781,"Title":"Make Him Croak! - Perfect","Description":"[SMB2] Defeat Wart without taking damage","Points":10,"TrueRatio":63,"Author":"Brian","DateModified":"2024-05-08 15:58:10","DateCreated":"2015-08-03 12:11:00","BadgeName":"384508","DisplayOrder":61,"MemAddr":"0af006103a86d2df9caaf75525921c19","type":null},"26962":{"ID":26962,"NumAwarded":1765,"NumAwardedHardcore":1209,"Title":"Return of the Pipsqueak Bomber","Description":"[SMB2] Defeat Mouser in World 3","Points":5,"TrueRatio":21,"Author":"Brian","DateModified":"2024-05-08 15:54:21","DateCreated":"2015-08-03 12:11:05","BadgeName":"384497","DisplayOrder":50,"MemAddr":"c3cb76f017d9c5fb0d07b3627b7a52e6","type":null},"26963":{"ID":26963,"NumAwarded":1537,"NumAwardedHardcore":1031,"Title":"Return of Hydra-phobia","Description":"[SMB2] Defeat Tryclyde in World 6","Points":5,"TrueRatio":24,"Author":"Brian","DateModified":"2024-05-08 15:55:23","DateCreated":"2015-08-03 12:11:07","BadgeName":"384503","DisplayOrder":56,"MemAddr":"4cbc17047c449da948401839299ed5d4","type":null},"26964":{"ID":26964,"NumAwarded":1529,"NumAwardedHardcore":1029,"Title":"Unpleasant Surprise","Description":"[SMB2] Defeat the evil Mask Gate in World 7","Points":5,"TrueRatio":25,"Author":"Brian","DateModified":"2024-05-08 15:57:11","DateCreated":"2015-08-03 12:11:08","BadgeName":"384505","DisplayOrder":58,"MemAddr":"eb96025b898b719bcc07835fd2f76ab7","type":null},"26965":{"ID":26965,"NumAwarded":1500,"NumAwardedHardcore":1006,"Title":"Make Him Croak!","Description":"[SMB2] Defeat Wart and restore peace to Subcon","Points":10,"TrueRatio":51,"Author":"Brian","DateModified":"2024-05-08 15:57:45","DateCreated":"2015-08-03 12:11:14","BadgeName":"384507","DisplayOrder":60,"MemAddr":"aeaa1780a4be57971c6eedb1e17b6233","type":"progression"},"26966":{"ID":26966,"NumAwarded":1587,"NumAwardedHardcore":972,"Title":"Nightmare-Free Journey","Description":"[SMB2] Complete a world without losing a life","Points":10,"TrueRatio":52,"Author":"Brian","DateModified":"2024-05-08 15:59:01","DateCreated":"2015-08-03 12:11:17","BadgeName":"384509","DisplayOrder":62,"MemAddr":"de4a106f45fe6a202384641f90dbfbc9","type":null},"26967":{"ID":26967,"NumAwarded":821,"NumAwardedHardcore":624,"Title":"Sightseeing in Subcon M","Description":"[SMB2] Beat the game using only Mario without using warps in one session","Points":25,"TrueRatio":196,"Author":"Brian","DateModified":"2025-01-19 16:18:27","DateCreated":"2015-08-03 12:11:33","BadgeName":"384510","DisplayOrder":63,"MemAddr":"b370bc41c557ff07b81bb13e4dfeb368","type":null},"26968":{"ID":26968,"NumAwarded":781,"NumAwardedHardcore":627,"Title":"Sightseeing in Subcon P","Description":"[SMB2] Beat the game using only Princess Toadstool without using warps in one session","Points":25,"TrueRatio":195,"Author":"Brian","DateModified":"2025-01-19 16:18:19","DateCreated":"2015-08-03 12:11:36","BadgeName":"384512","DisplayOrder":65,"MemAddr":"56bef15799e62a85dbba1485f9812299","type":null},"26969":{"ID":26969,"NumAwarded":664,"NumAwardedHardcore":552,"Title":"Sightseeing in Subcon T","Description":"[SMB2] Beat the game using only Toad without using warps in one session","Points":25,"TrueRatio":220,"Author":"Brian","DateModified":"2025-01-19 16:18:22","DateCreated":"2015-08-03 12:11:37","BadgeName":"384513","DisplayOrder":66,"MemAddr":"9d161af185a36ad7357f8f64ef89d607","type":null},"26970":{"ID":26970,"NumAwarded":699,"NumAwardedHardcore":575,"Title":"Sightseeing in Subcon L","Description":"[SMB2] Beat the game using only Luigi without using warps in one session","Points":25,"TrueRatio":211,"Author":"Brian","DateModified":"2025-01-19 16:18:24","DateCreated":"2015-08-03 12:11:39","BadgeName":"384511","DisplayOrder":64,"MemAddr":"84666310a99a6be885a36ca9409773ec","type":null},"26971":{"ID":26971,"NumAwarded":807,"NumAwardedHardcore":643,"Title":"Super Speedrun Bros. 2","Description":"[SMB2] Beat the game in one session using the shortest possible route","Points":10,"TrueRatio":76,"Author":"Brian","DateModified":"2024-05-08 16:01:08","DateCreated":"2015-08-03 12:11:44","BadgeName":"384514","DisplayOrder":67,"MemAddr":"d85117deaa2a45d3890c26cc01144be4","type":null},"26972":{"ID":26972,"NumAwarded":682,"NumAwardedHardcore":481,"Title":"Sweet Dreams","Description":"[SMB2] Beat the game in a single session without losing a life","Points":50,"TrueRatio":500,"Author":"Brian","DateModified":"2024-05-08 16:01:22","DateCreated":"2015-08-03 12:11:46","BadgeName":"384515","DisplayOrder":68,"MemAddr":"fb46ad589f9d70b806762158d2bdf1b2","type":null},"26973":{"ID":26973,"NumAwarded":7455,"NumAwardedHardcore":4288,"Title":"Walk Like an Egyptian","Description":"[SMB3] Reach World 2 by completing Grass Land","Points":5,"TrueRatio":8,"Author":"Brian","DateModified":"2024-05-08 17:28:31","DateCreated":"2015-08-03 12:12:02","BadgeName":"384516","DisplayOrder":69,"MemAddr":"9e74ee15c1f31ad49c2fbacbe860f9ad","type":null},"26974":{"ID":26974,"NumAwarded":4631,"NumAwardedHardcore":2812,"Title":"Tropic Topics","Description":"[SMB3] Reach World 3 by completing Desert Hill","Points":5,"TrueRatio":11,"Author":"Brian","DateModified":"2024-05-08 17:28:41","DateCreated":"2015-08-03 12:12:09","BadgeName":"384517","DisplayOrder":70,"MemAddr":"9bead0c71efa1808afc1bdfd84199a8d","type":null},"26975":{"ID":26975,"NumAwarded":3537,"NumAwardedHardcore":2151,"Title":"Large and in Charge","Description":"[SMB3] Reach World 4 by completing Sea Side","Points":5,"TrueRatio":13,"Author":"Brian","DateModified":"2024-10-20 19:58:16","DateCreated":"2015-08-03 12:12:11","BadgeName":"384518","DisplayOrder":71,"MemAddr":"ac701c665d518db54b503889a16095ea","type":null},"26976":{"ID":26976,"NumAwarded":2998,"NumAwardedHardcore":1839,"Title":"Head in the Clouds","Description":"[SMB3] Reach World 5 by completing Big Island","Points":5,"TrueRatio":15,"Author":"Brian","DateModified":"2024-05-08 17:29:00","DateCreated":"2015-08-03 12:12:13","BadgeName":"384519","DisplayOrder":72,"MemAddr":"249d129fcde78245729d0482ee45a4e4","type":null},"26977":{"ID":26977,"NumAwarded":2621,"NumAwardedHardcore":1614,"Title":"A Chilly Reception","Description":"[SMB3] Reach World 6 by completing The Sky","Points":5,"TrueRatio":17,"Author":"Brian","DateModified":"2024-05-08 17:29:09","DateCreated":"2015-08-03 12:12:14","BadgeName":"384520","DisplayOrder":73,"MemAddr":"3b74295188a018e02c0b50697f2ef2f3","type":null},"26978":{"ID":26978,"NumAwarded":2795,"NumAwardedHardcore":1739,"Title":"Pipe Dream","Description":"[SMB3] Reach World 7 by completing Iced Land","Points":5,"TrueRatio":16,"Author":"Brian","DateModified":"2024-05-08 17:29:23","DateCreated":"2015-08-03 12:12:15","BadgeName":"384521","DisplayOrder":74,"MemAddr":"df76bc4f9e6a8b2fc1529700b092ae6a","type":null},"26979":{"ID":26979,"NumAwarded":2874,"NumAwardedHardcore":1816,"Title":"Blazing Battleground","Description":"[SMB3] Reach World 8 by completing Pipe Maze","Points":5,"TrueRatio":15,"Author":"Brian","DateModified":"2024-10-20 20:03:39","DateCreated":"2015-08-03 12:12:17","BadgeName":"384522","DisplayOrder":75,"MemAddr":"1d9869290581fed14c1705d0f4f1997a","type":null},"26980":{"ID":26980,"NumAwarded":5354,"NumAwardedHardcore":3305,"Title":"Grass Land Completionist","Description":"[SMB3] Complete all stages and minigames in World 1","Points":10,"TrueRatio":19,"Author":"Brian","DateModified":"2024-05-08 17:31:07","DateCreated":"2015-08-03 12:12:19","BadgeName":"384524","DisplayOrder":77,"MemAddr":"050255aa17786cb607bf683dc5464f45","type":null},"26981":{"ID":26981,"NumAwarded":3108,"NumAwardedHardcore":2091,"Title":"Desert Hill Completionist","Description":"[SMB3] Complete all stages and minigames in World 2","Points":10,"TrueRatio":27,"Author":"Brian","DateModified":"2024-05-08 17:31:16","DateCreated":"2015-08-03 12:12:20","BadgeName":"384525","DisplayOrder":78,"MemAddr":"bd3d1f61f0c0a310c68f5a0904fc1201","type":null},"26982":{"ID":26982,"NumAwarded":1231,"NumAwardedHardcore":939,"Title":"Sea Side Completionist","Description":"[SMB3] Complete all stages and minigames in World 3","Points":10,"TrueRatio":54,"Author":"Brian","DateModified":"2024-05-08 17:31:25","DateCreated":"2015-08-03 12:12:22","BadgeName":"384526","DisplayOrder":79,"MemAddr":"0a9f05ce9bb35ea327a66289acb39ea1","type":null},"26983":{"ID":26983,"NumAwarded":916,"NumAwardedHardcore":763,"Title":"Big Island Completionist","Description":"[SMB3] Complete all stages and minigames in World 4","Points":10,"TrueRatio":65,"Author":"Brian","DateModified":"2024-05-08 17:31:35","DateCreated":"2015-08-03 12:12:23","BadgeName":"384527","DisplayOrder":80,"MemAddr":"d9184ab8666a554994ef3ae8fca42c4d","type":null},"26984":{"ID":26984,"NumAwarded":1673,"NumAwardedHardcore":1168,"Title":"The Sky Completionist","Description":"[SMB3] Complete all stages and minigames in World 5","Points":10,"TrueRatio":44,"Author":"Brian","DateModified":"2024-05-08 17:31:43","DateCreated":"2015-08-03 12:12:24","BadgeName":"384528","DisplayOrder":81,"MemAddr":"19e4e689ede9f542bdd71c1f85deca90","type":null},"26985":{"ID":26985,"NumAwarded":1502,"NumAwardedHardcore":1040,"Title":"Iced Land Completionist","Description":"[SMB3] Complete all stages and minigames in World 6","Points":10,"TrueRatio":49,"Author":"Brian","DateModified":"2024-05-08 17:31:53","DateCreated":"2015-08-03 12:12:25","BadgeName":"384529","DisplayOrder":82,"MemAddr":"06ec2db268c7a9723c5abf3524228ee5","type":null},"26986":{"ID":26986,"NumAwarded":1212,"NumAwardedHardcore":890,"Title":"Pipe Maze Completionist","Description":"[SMB3] Complete all stages and minigames in World 7","Points":10,"TrueRatio":56,"Author":"Brian","DateModified":"2024-05-08 17:32:02","DateCreated":"2015-08-03 12:12:27","BadgeName":"384530","DisplayOrder":83,"MemAddr":"4e67da1611958faccd81944badd34a48","type":null},"26987":{"ID":26987,"NumAwarded":1290,"NumAwardedHardcore":901,"Title":"Castle of Koopa Completionist","Description":"[SMB3] Complete all stages in World 8","Points":10,"TrueRatio":56,"Author":"Brian","DateModified":"2024-05-08 17:32:13","DateCreated":"2015-08-03 12:12:28","BadgeName":"384531","DisplayOrder":84,"MemAddr":"4502f074b418eae8b64ad8e5ec81fd4a","type":null},"26988":{"ID":26988,"NumAwarded":1920,"NumAwardedHardcore":1172,"Title":"See Ya Next Fall, Bowser!","Description":"[SMB3] Complete World 8: Castle of Koopa and save Princess Toadstool","Points":10,"TrueRatio":44,"Author":"Brian","DateModified":"2024-05-08 17:29:47","DateCreated":"2015-08-03 12:12:39","BadgeName":"384523","DisplayOrder":76,"MemAddr":"00b30ee8528bc6e4c840d72c07ccd9e3","type":"progression"},"26989":{"ID":26989,"NumAwarded":3548,"NumAwardedHardcore":2331,"Title":"A Faraway Land","Description":"[SMB3] Find World 9: Warp Zone","Points":1,"TrueRatio":2,"Author":"Brian","DateModified":"2024-05-08 17:34:32","DateCreated":"2015-08-03 12:12:46","BadgeName":"384532","DisplayOrder":85,"MemAddr":"a3ff02624519407afdac6add3adf6eed","type":null},"26990":{"ID":26990,"NumAwarded":2846,"NumAwardedHardcore":1848,"Title":"Lulla-bye","Description":"[SMB3] Use a Music Box","Points":1,"TrueRatio":3,"Author":"Brian","DateModified":"2024-05-08 17:34:47","DateCreated":"2015-08-03 12:12:51","BadgeName":"384533","DisplayOrder":86,"MemAddr":"e37a4def7eeb691f365102662b891163","type":null},"26991":{"ID":26991,"NumAwarded":5882,"NumAwardedHardcore":3574,"Title":"Backstage Pass","Description":"[SMB3] Go behind the scenery","Points":1,"TrueRatio":1,"Author":"Brian","DateModified":"2024-05-08 17:35:01","DateCreated":"2015-08-03 12:12:52","BadgeName":"384534","DisplayOrder":87,"MemAddr":"8ebba21c65538173bd629ab9cd98a92d","type":null},"26992":{"ID":26992,"NumAwarded":6216,"NumAwardedHardcore":3494,"Title":"Royal Flush","Description":"[SMB3] Match 3 cards from the goal roulette","Points":3,"TrueRatio":5,"Author":"Brian","DateModified":"2024-05-08 17:35:18","DateCreated":"2015-08-03 12:12:53","BadgeName":"384535","DisplayOrder":88,"MemAddr":"7f87caea1eb8369480240f31ab9084ae","type":null},"26993":{"ID":26993,"NumAwarded":4799,"NumAwardedHardcore":2770,"Title":"Pack Rat","Description":"[SMB3] Store 8 items in your inventory","Points":2,"TrueRatio":4,"Author":"Brian","DateModified":"2024-05-08 17:36:10","DateCreated":"2015-08-03 12:12:56","BadgeName":"384536","DisplayOrder":89,"MemAddr":"525d5bca0dff4eb3e1cb6f2aab1a47b3","type":null},"26994":{"ID":26994,"NumAwarded":2276,"NumAwardedHardcore":1245,"Title":"When the Stars Align","Description":"[SMB3] Assemble a Starman in the Spade Panel minigame","Points":5,"TrueRatio":21,"Author":"Brian","DateModified":"2024-05-08 17:36:29","DateCreated":"2015-08-03 12:12:58","BadgeName":"384537","DisplayOrder":90,"MemAddr":"258fcb160255fb675c184681a7a97312","type":null},"26995":{"ID":26995,"NumAwarded":1544,"NumAwardedHardcore":1210,"Title":"Goomba Stompin'","Description":"[SMB3] Earn a 1-Up from stomping Goombas in World 1-2","Points":5,"TrueRatio":21,"Author":"Brian","DateModified":"2024-05-08 17:36:49","DateCreated":"2015-08-03 12:13:00","BadgeName":"384538","DisplayOrder":91,"MemAddr":"cd8084f9e4d6e6def0bfac3a18d384c3","type":null},"26996":{"ID":26996,"NumAwarded":965,"NumAwardedHardcore":823,"Title":"Them Bones","Description":"[SMB3] Earn 10 1-Ups in a row from stomping Dry Bones in World 2-Fortress","Points":5,"TrueRatio":30,"Author":"Brian","DateModified":"2024-05-08 17:37:03","DateCreated":"2015-08-03 12:13:02","BadgeName":"384539","DisplayOrder":92,"MemAddr":"9249d49d5ac42d085a7638be0bbcce2d","type":null},"26997":{"ID":26997,"NumAwarded":1077,"NumAwardedHardcore":874,"Title":"Flight Cancellation","Description":"[SMB3] Use an Anchor","Points":5,"TrueRatio":28,"Author":"Brian","DateModified":"2024-05-08 17:37:28","DateCreated":"2015-08-03 12:13:04","BadgeName":"384540","DisplayOrder":93,"MemAddr":"1e592da7de02f086b9e23014c207f444","type":null},"26998":{"ID":26998,"NumAwarded":3731,"NumAwardedHardcore":2395,"Title":"Hammer Time!","Description":"[SMB3] Destroy a boulder using a Hammer","Points":2,"TrueRatio":4,"Author":"Brian","DateModified":"2024-05-08 17:37:51","DateCreated":"2015-08-03 12:13:09","BadgeName":"384541","DisplayOrder":94,"MemAddr":"dec2567fdb99a3c5d39e9ff388a51a37","type":null},"26999":{"ID":26999,"NumAwarded":3548,"NumAwardedHardcore":2035,"Title":"Lucky Lifesaver IV","Description":"[SMB3] Earn 20 lives","Points":5,"TrueRatio":14,"Author":"Brian","DateModified":"2024-05-08 17:38:08","DateCreated":"2015-08-03 12:13:11","BadgeName":"384542","DisplayOrder":95,"MemAddr":"e23d60533ccd9d7dc4f159d3c4860375","type":null},"27000":{"ID":27000,"NumAwarded":1275,"NumAwardedHardcore":861,"Title":"Dressed like Royalty","Description":"[SMB3] Save a King while wearing a Frog, Tanooki, or Hammer Suit","Points":10,"TrueRatio":58,"Author":"Brian","DateModified":"2024-05-08 17:38:38","DateCreated":"2015-08-03 12:13:12","BadgeName":"384543","DisplayOrder":96,"MemAddr":"f642e454356b9f34bb38aa59d9151a33","type":null},"27001":{"ID":27001,"NumAwarded":1359,"NumAwardedHardcore":1081,"Title":"Strange and Wonderful Secrets I","Description":"[SMB3] Summon the Blue Mushroom House in World 1","Points":5,"TrueRatio":23,"Author":"Brian","DateModified":"2024-05-08 17:38:52","DateCreated":"2015-08-03 12:13:15","BadgeName":"384544","DisplayOrder":97,"MemAddr":"363ab980fb6373455e92fe468adc3cf7","type":null},"27002":{"ID":27002,"NumAwarded":1208,"NumAwardedHardcore":972,"Title":"Strange and Wonderful Secrets II","Description":"[SMB3] Summon the Blue Mushroom House in World 2","Points":5,"TrueRatio":26,"Author":"Brian","DateModified":"2024-05-08 17:39:05","DateCreated":"2015-08-03 12:13:16","BadgeName":"384545","DisplayOrder":98,"MemAddr":"146ea5637fae67b1f5c37587408d6f16","type":null},"27003":{"ID":27003,"NumAwarded":921,"NumAwardedHardcore":753,"Title":"Strange and Wonderful Secrets III","Description":"[SMB3] Summon the Blue Mushroom House in World 3","Points":10,"TrueRatio":66,"Author":"Brian","DateModified":"2024-05-08 17:39:15","DateCreated":"2015-08-03 12:13:18","BadgeName":"384546","DisplayOrder":99,"MemAddr":"0d441969053c644a98bab86c1bfb579a","type":null},"27004":{"ID":27004,"NumAwarded":862,"NumAwardedHardcore":717,"Title":"Strange and Wonderful Secrets IV","Description":"[SMB3] Summon the Blue Mushroom House in World 4","Points":10,"TrueRatio":69,"Author":"Brian","DateModified":"2024-05-08 17:39:27","DateCreated":"2015-08-03 12:13:19","BadgeName":"384547","DisplayOrder":100,"MemAddr":"fa0c6b2329d73a0410c391349279baed","type":null},"27005":{"ID":27005,"NumAwarded":800,"NumAwardedHardcore":668,"Title":"Strange and Wonderful Secrets V","Description":"[SMB3] Summon the Blue Mushroom House in World 5","Points":10,"TrueRatio":73,"Author":"Brian","DateModified":"2024-05-08 17:39:39","DateCreated":"2015-08-03 12:13:20","BadgeName":"384548","DisplayOrder":101,"MemAddr":"a3be043f7745bd37b4ae38ee033b07bb","type":null},"27006":{"ID":27006,"NumAwarded":775,"NumAwardedHardcore":638,"Title":"Strange and Wonderful Secrets VI","Description":"[SMB3] Summon the Blue Mushroom House in World 6","Points":10,"TrueRatio":76,"Author":"Brian","DateModified":"2024-05-08 17:40:11","DateCreated":"2015-08-03 12:13:21","BadgeName":"384549","DisplayOrder":102,"MemAddr":"eb70fc70bcdaace0245e4db08018e532","type":null},"27007":{"ID":27007,"NumAwarded":723,"NumAwardedHardcore":608,"Title":"Strange and Wonderful Secrets VII","Description":"[SMB3] Summon the Blue Mushroom House in World 7","Points":10,"TrueRatio":80,"Author":"Brian","DateModified":"2024-05-08 17:40:26","DateCreated":"2015-08-03 12:13:23","BadgeName":"384550","DisplayOrder":103,"MemAddr":"219586d7e01840138aa8e2119a4c2a17","type":null},"27008":{"ID":27008,"NumAwarded":1883,"NumAwardedHardcore":1261,"Title":"A Boatload of Cash","Description":"[SMB3] Summon a Treasure Ship","Points":5,"TrueRatio":20,"Author":"Brian","DateModified":"2024-05-08 17:40:40","DateCreated":"2015-08-03 12:13:24","BadgeName":"384551","DisplayOrder":104,"MemAddr":"764538707755342baa43a5b6640d580a","type":null},"27009":{"ID":27009,"NumAwarded":873,"NumAwardedHardcore":714,"Title":"Super Speedrun Bros. 3","Description":"[SMB3] Complete the game in one session using the shortest possible route","Points":25,"TrueRatio":173,"Author":"Brian","DateModified":"2024-05-08 17:40:50","DateCreated":"2015-08-03 12:13:25","BadgeName":"384552","DisplayOrder":105,"MemAddr":"74c952097bcef58cb1e2f9bf5bed8d4a","type":null},"28306":{"ID":28306,"NumAwarded":1148,"NumAwardedHardcore":784,"Title":"Certified Mario Maniac!","Description":"[SMBTLL] Complete World 9","Points":25,"TrueRatio":159,"Author":"Brian","DateModified":"2024-05-08 15:43:40","DateCreated":"2015-09-02 20:11:14","BadgeName":"384476","DisplayOrder":29,"MemAddr":"f91b97ee9bd27fc070deff0da6923176","type":null}},"Claims":[{"User":"Brian","SetType":0,"GameID":253,"ClaimType":0,"Created":"2015-08-03 00:00:00","Expiration":"2015-08-03 00:00:00"}],"NumDistinctPlayersCasual":22577,"NumDistinctPlayersHardcore":22577}
\ No newline at end of file
diff --git a/cache/retroachievements/f6a91b8e7816be0562017961488ab9a9.json b/cache/retroachievements/f6a91b8e7816be0562017961488ab9a9.json
new file mode 100644
index 0000000..e02f234
--- /dev/null
+++ b/cache/retroachievements/f6a91b8e7816be0562017961488ab9a9.json
@@ -0,0 +1 @@
+{"Title":"Shin Megami Tensei","ID":819,"ConsoleID":3,"ConsoleName":"SNES\/Super Famicom","ImageIcon":"https:\/\/retroachievements.org\/Images\/025232.png","NumAchievements":69,"NumLeaderboards":0,"Points":600,"DateModified":"2023-05-29 16:53:30","ForumTopicID":22799,"Flags":null,"ImageTitle":"https:\/\/retroachievements.org\/Images\/002584.png","ImageIngame":"https:\/\/retroachievements.org\/Images\/002585.png","ImageBoxArt":"https:\/\/retroachievements.org\/Images\/002587.png","Publisher":"Atlus","Developer":"Atlus","Genre":"Dungeon Crawl, Turn-based RPG","Released":"1992-10-30","ReleasedAtGranularity":"day","IsFinal":false,"RichPresencePatch":"2890acd2283d7394d6979e2e7d20e309","GuideURL":"","Updated":"2025-02-26T06:53:21.000000Z","ParentGameID":null,"NumDistinctPlayers":1238,"Achievements":{"17848":{"ID":17848,"NumAwarded":1128,"NumAwardedHardcore":716,"Title":"Demon Invasion","Description":"Witness the first demon attack","Points":1,"TrueRatio":1,"Author":"MeCKooLL","DateModified":"2021-08-24 02:55:39","DateCreated":"2014-11-25 05:54:02","BadgeName":"13391","DisplayOrder":1,"MemAddr":"661d57dd296d3a576ad3569ee2a71e3a","type":"progression"},"17850":{"ID":17850,"NumAwarded":816,"NumAwardedHardcore":547,"Title":"Innocent Until Caught","Description":"Recruit the Law Hero while in jail","Points":2,"TrueRatio":2,"Author":"MeCKooLL","DateModified":"2021-08-24 04:31:17","DateCreated":"2014-11-25 05:54:28","BadgeName":"17273","DisplayOrder":2,"MemAddr":"e6540063c7f69197cadd17e34884c95d","type":"progression"},"17851":{"ID":17851,"NumAwarded":815,"NumAwardedHardcore":545,"Title":"Opening the Portal","Description":"The man in a wheelchair","Points":2,"TrueRatio":2,"Author":"MeCKooLL","DateModified":"2021-08-24 04:40:16","DateCreated":"2014-11-25 05:54:35","BadgeName":"17272","DisplayOrder":3,"MemAddr":"4ee296b03b6d822c6cdadfb304048332","type":"progression"},"17891":{"ID":17891,"NumAwarded":753,"NumAwardedHardcore":510,"Title":"Doctor Death","Description":"Defeat Hospital Director","Points":3,"TrueRatio":3,"Author":"Altomar","DateModified":"2023-05-29 16:24:36","DateCreated":"2014-11-27 06:54:05","BadgeName":"17031","DisplayOrder":4,"MemAddr":"a84343c88634c85ae11cfb19c6d61baf","type":"progression"},"17892":{"ID":17892,"NumAwarded":708,"NumAwardedHardcore":475,"Title":"Chaotic Alliance","Description":"Recruit the Chaos Hero","Points":3,"TrueRatio":3,"Author":"Altomar","DateModified":"2021-08-24 04:51:57","DateCreated":"2014-11-27 06:54:10","BadgeName":"17032","DisplayOrder":5,"MemAddr":"ab44ada107f91ab76bbd89af34d9ae97","type":"progression"},"17893":{"ID":17893,"NumAwarded":695,"NumAwardedHardcore":471,"Title":"Orphaned","Description":"Defeat the Jaki Ama no Sakugami","Points":4,"TrueRatio":4,"Author":"Altomar","DateModified":"2021-08-24 04:55:59","DateCreated":"2014-11-27 06:54:13","BadgeName":"17033","DisplayOrder":6,"MemAddr":"4069ed0c6683c0f9d9a1ddd61f7dc8f4","type":"progression"},"17894":{"ID":17894,"NumAwarded":613,"NumAwardedHardcore":414,"Title":"Devil Summoner","Description":"Defeat Douman in Echo Building","Points":5,"TrueRatio":6,"Author":"Altomar","DateModified":"2023-05-29 16:25:54","DateCreated":"2014-11-27 06:54:16","BadgeName":"17034","DisplayOrder":7,"MemAddr":"ae9352b53e77dbdf5f8b86ba1e5bc729","type":"progression"},"17895":{"ID":17895,"NumAwarded":371,"NumAwardedHardcore":256,"Title":"Damsel in Distress","Description":"Find and rescue the Heroine from Yuriko","Points":5,"TrueRatio":8,"Author":"Altomar","DateModified":"2023-05-29 16:29:15","DateCreated":"2014-11-27 06:54:21","BadgeName":"17218","DisplayOrder":8,"MemAddr":"978f85b3cfea2633a2c01d80d4758c6d","type":"progression"},"17896":{"ID":17896,"NumAwarded":364,"NumAwardedHardcore":247,"Title":"The Girl of My Dreams","Description":"Have the Heroine join your party","Points":5,"TrueRatio":9,"Author":"Altomar","DateModified":"2023-05-29 16:30:01","DateCreated":"2014-11-27 06:54:34","BadgeName":"17222","DisplayOrder":9,"MemAddr":"1bdbb8c74e1aca9e72d38f500c394d6b","type":"progression"},"17897":{"ID":17897,"NumAwarded":286,"NumAwardedHardcore":200,"Title":"Road to the Heavens","Description":"Defeat Commander Goutou at his headquarters","Points":5,"TrueRatio":10,"Author":"Altomar","DateModified":"2019-10-23 18:33:02","DateCreated":"2014-11-27 06:55:55","BadgeName":"17226","DisplayOrder":10,"MemAddr":"4ba07d7f29148df93f90df9d3a237168","type":null},"17898":{"ID":17898,"NumAwarded":278,"NumAwardedHardcore":194,"Title":"Road to the Abyss","Description":"Defeat Ambassador Thorman in American Embassy","Points":5,"TrueRatio":10,"Author":"Altomar","DateModified":"2015-01-14 08:34:45","DateCreated":"2014-11-27 06:55:59","BadgeName":"17254","DisplayOrder":11,"MemAddr":"511bfd81dcda862ffb0c89cbb1312b14","type":null},"17899":{"ID":17899,"NumAwarded":252,"NumAwardedHardcore":179,"Title":"I am the Master","Description":"Defeat both Ambassador Thorman and Commander Goutou","Points":5,"TrueRatio":11,"Author":"Altomar","DateModified":"2019-10-11 15:07:01","DateCreated":"2014-11-27 06:56:01","BadgeName":"17261","DisplayOrder":12,"MemAddr":"239eae719c2e3da3c6536fe59245dc7a","type":"missable"},"17900":{"ID":17900,"NumAwarded":279,"NumAwardedHardcore":190,"Title":"Land of the Dead","Description":"Help Ozuno in underworld","Points":5,"TrueRatio":10,"Author":"Altomar","DateModified":"2015-01-14 10:20:57","DateCreated":"2014-11-27 06:56:08","BadgeName":"17268","DisplayOrder":13,"MemAddr":"c4b01f84e086a48115eb67f64911e33b","type":"progression"},"17901":{"ID":17901,"NumAwarded":274,"NumAwardedHardcore":186,"Title":"Back to Earth","Description":"Defeat Ozuno's minions and return back to Earth","Points":5,"TrueRatio":11,"Author":"Altomar","DateModified":"2023-05-29 16:30:41","DateCreated":"2014-11-27 06:56:11","BadgeName":"17270","DisplayOrder":14,"MemAddr":"38c2f2aa8f2c3dcc0e87d6a6f0278a7d","type":"progression"},"17902":{"ID":17902,"NumAwarded":296,"NumAwardedHardcore":193,"Title":"Demonic Fusion","Description":"Have Chaos Hero fuse with a demon for the sake of a girl","Points":5,"TrueRatio":10,"Author":"Altomar","DateModified":"2023-05-29 16:31:27","DateCreated":"2014-11-27 06:56:13","BadgeName":"17274","DisplayOrder":15,"MemAddr":"3afccdb1ba8519155493879c80ab74c0","type":"progression"},"17903":{"ID":17903,"NumAwarded":240,"NumAwardedHardcore":167,"Title":"A Soft-Hearted Team","Description":"Defeat Kishin Takeminakata at Shinjuku Mall","Points":5,"TrueRatio":12,"Author":"Altomar","DateModified":"2014-11-27 06:57:10","DateCreated":"2014-11-27 06:56:19","BadgeName":"17275","DisplayOrder":16,"MemAddr":"de0e3d3294a589c4d9240036ebaf3a98","type":"progression"},"17904":{"ID":17904,"NumAwarded":225,"NumAwardedHardcore":155,"Title":"Femme Fatale","Description":"Defeat Femme Arachne in the mind of the Heroine","Points":5,"TrueRatio":12,"Author":"Altomar","DateModified":"2023-05-29 16:31:58","DateCreated":"2014-11-27 06:56:21","BadgeName":"17276","DisplayOrder":17,"MemAddr":"b62dae871116d4b67f4d6194b8941df3","type":"progression"},"17905":{"ID":17905,"NumAwarded":214,"NumAwardedHardcore":148,"Title":"Demon in a Jar","Description":"Obtain the Gushing Jar and use it to capture a demon at Roppongi","Points":5,"TrueRatio":13,"Author":"Altomar","DateModified":"2014-11-27 07:00:10","DateCreated":"2014-11-27 06:59:06","BadgeName":"17278","DisplayOrder":18,"MemAddr":"0d1ba236a91c071639744df7bd7e39e8","type":null},"17906":{"ID":17906,"NumAwarded":217,"NumAwardedHardcore":149,"Title":"Black Baron","Description":"Defeat the Fallen Nebiros at Roppongi","Points":5,"TrueRatio":13,"Author":"Altomar","DateModified":"2014-11-27 07:00:12","DateCreated":"2014-11-27 06:59:08","BadgeName":"17279","DisplayOrder":19,"MemAddr":"4d68d9140040f13d1ad861138c8ab4a9","type":"progression"},"17907":{"ID":17907,"NumAwarded":205,"NumAwardedHardcore":141,"Title":"The Mad Scientist","Description":"Defeat the Machine Defense System and obtain the memory board at the Police Station","Points":5,"TrueRatio":13,"Author":"Altomar","DateModified":"2023-05-29 16:40:16","DateCreated":"2014-11-27 06:59:13","BadgeName":"17280","DisplayOrder":20,"MemAddr":"ae8da4929d8110236cb9c1ff4feb56f1","type":"progression"},"17908":{"ID":17908,"NumAwarded":159,"NumAwardedHardcore":116,"Title":"Sentenced to Death","Description":"Be judged by Lord Yama and Sentenced to Death (Law - Neutral)","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2017-02-07 09:38:51","DateCreated":"2014-11-27 06:59:21","BadgeName":"17284","DisplayOrder":21,"MemAddr":"54a794fa78f3a4a31712841315c04d7f","type":null},"17909":{"ID":17909,"NumAwarded":121,"NumAwardedHardcore":91,"Title":"Doing the Devils Work","Description":"Agree to work for Lord Yama against the Cathedral (Chaos - Neutral)","Points":5,"TrueRatio":19,"Author":"Altomar","DateModified":"2017-02-07 09:38:53","DateCreated":"2014-11-27 06:59:26","BadgeName":"17284","DisplayOrder":22,"MemAddr":"bb7c3de323af2eaf4b4c0d540417fc52","type":null},"17910":{"ID":17910,"NumAwarded":150,"NumAwardedHardcore":112,"Title":"The Jailer","Description":"Defeat Kishin Nio while escaping from the Jail of Lord Yama (Law - Neutral)","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2023-05-29 16:38:24","DateCreated":"2014-11-27 06:59:32","BadgeName":"17285","DisplayOrder":23,"MemAddr":"e0223bd2d1d8ced58cffcf5fa402a16e","type":null},"17911":{"ID":17911,"NumAwarded":147,"NumAwardedHardcore":109,"Title":"Lord Yama Downfall","Description":"Defeat Lord Yama at Ikebukuro (Law - Neutral)","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2019-09-23 11:54:01","DateCreated":"2014-11-27 06:59:34","BadgeName":"17284","DisplayOrder":24,"MemAddr":"83cf3d3a1f66dfb16ac2d6f76a8a5bf3","type":null},"17912":{"ID":17912,"NumAwarded":161,"NumAwardedHardcore":114,"Title":"The Golden Apple","Description":"Defeat Drake Ladon and obtain the Golden Apple at Ueno","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2023-05-29 16:39:32","DateCreated":"2014-11-27 06:59:39","BadgeName":"17287","DisplayOrder":25,"MemAddr":"870d2d0263d760197530594e46eeb04c","type":"progression"},"17913":{"ID":17913,"NumAwarded":140,"NumAwardedHardcore":98,"Title":"The Nymph","Description":"Defeat Echidna at Tokyo Destiny Land (Law - Neutral)","Points":5,"TrueRatio":18,"Author":"Altomar","DateModified":"2017-02-07 09:32:05","DateCreated":"2014-11-27 06:59:45","BadgeName":"17289","DisplayOrder":26,"MemAddr":"729074e6b5df50e8aa6fc5b19acabef4","type":null},"17914":{"ID":17914,"NumAwarded":69,"NumAwardedHardcore":65,"Title":"The Messian","Description":"Complete the Baptism ritual at Shinagawa (Law)","Points":10,"TrueRatio":52,"Author":"Altomar","DateModified":"2020-06-24 13:53:25","DateCreated":"2014-11-27 07:00:52","BadgeName":"17290","DisplayOrder":27,"MemAddr":"7eb4646caf01775fb8467942e5ee802e","type":null},"17915":{"ID":17915,"NumAwarded":139,"NumAwardedHardcore":95,"Title":"The Archangel","Description":"Defeat Divine Haniel at Shinagawa (Chaos - Neutral)","Points":10,"TrueRatio":37,"Author":"Altomar","DateModified":"2023-01-13 15:15:49","DateCreated":"2014-11-27 07:00:55","BadgeName":"17292","DisplayOrder":29,"MemAddr":"569ed52aed639bf16577da1dfb00a7c8","type":null},"17916":{"ID":17916,"NumAwarded":67,"NumAwardedHardcore":60,"Title":"The Gaian","Description":"Complete the Baptism ritual at Ueno (Chaos)","Points":10,"TrueRatio":56,"Author":"Altomar","DateModified":"2020-06-24 13:53:22","DateCreated":"2014-11-27 07:00:57","BadgeName":"17293","DisplayOrder":30,"MemAddr":"b07b9a80d29095c4752e8debee796e1f","type":null},"17918":{"ID":17918,"NumAwarded":143,"NumAwardedHardcore":95,"Title":"Above Good and Evil","Description":"Defeat both Haniel and Echidna (Neutral)","Points":10,"TrueRatio":37,"Author":"Altomar","DateModified":"2017-02-07 09:32:59","DateCreated":"2014-11-27 07:01:05","BadgeName":"17295","DisplayOrder":32,"MemAddr":"3e9479ae1cf1ba231f80d23b0e100427","type":null},"17919":{"ID":17919,"NumAwarded":121,"NumAwardedHardcore":85,"Title":"True Neutral","Description":"Find a way into the Cathedral while both Haniel and Echidna are dead (Neutral)","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2020-06-24 13:53:20","DateCreated":"2014-11-27 07:01:07","BadgeName":"17296","DisplayOrder":33,"MemAddr":"826697abf5b14ed40ffbca5dcc898142","type":null},"17920":{"ID":17920,"NumAwarded":136,"NumAwardedHardcore":93,"Title":"Turtle Rider","Description":"Obtain the Turtle Shell (Chaos - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-24 00:42:23","DateCreated":"2014-11-27 07:01:11","BadgeName":"17298","DisplayOrder":34,"MemAddr":"b095f39cac7f685adb75745d094cdf73","type":null},"17921":{"ID":17921,"NumAwarded":95,"NumAwardedHardcore":77,"Title":"Octopus Rider","Description":"Obtain the Octopus Whistle (Law - Neutral)","Points":10,"TrueRatio":45,"Author":"Altomar","DateModified":"2023-05-24 00:42:32","DateCreated":"2014-11-27 07:01:13","BadgeName":"17299","DisplayOrder":35,"MemAddr":"e8739359d8b0e8a2a6b44971350dc027","type":null},"17922":{"ID":17922,"NumAwarded":126,"NumAwardedHardcore":88,"Title":"The Preserver","Description":"Defeat Deity Vishnu at Tokyo Government Office (Chaos - Neutral)","Points":10,"TrueRatio":40,"Author":"Altomar","DateModified":"2020-06-24 13:53:15","DateCreated":"2014-11-27 07:02:15","BadgeName":"17300","DisplayOrder":37,"MemAddr":"3b68a3809398370ee7873391800ea3e7","type":null},"17923":{"ID":17923,"NumAwarded":129,"NumAwardedHardcore":93,"Title":"The Demon King and His Son","Description":"Defeat Ravana and Indrajit at the Tokyo Government Office (Law - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-29 16:42:59","DateCreated":"2014-11-27 07:02:20","BadgeName":"17301","DisplayOrder":38,"MemAddr":"ac792f154c38cf909370e8cbea192955","type":null},"17924":{"ID":17924,"NumAwarded":133,"NumAwardedHardcore":90,"Title":"Total Annihilation","Description":"Defeat both Vishnu and Ravana at the Tokyo Government Office (Neutral)","Points":10,"TrueRatio":39,"Author":"Altomar","DateModified":"2023-05-29 16:44:20","DateCreated":"2014-11-27 07:02:22","BadgeName":"17295","DisplayOrder":39,"MemAddr":"77a66009b816c66ce855e69cd775f672","type":null},"17925":{"ID":17925,"NumAwarded":124,"NumAwardedHardcore":86,"Title":"The Flame of God","Description":"Defeat Uriel in the Cathedral (Chaos - Neutral)","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2023-05-29 16:44:55","DateCreated":"2014-11-27 07:02:25","BadgeName":"17305","DisplayOrder":40,"MemAddr":"39ff80ae3c67fa2ca3e379483ab1c18a","type":null},"17926":{"ID":17926,"NumAwarded":124,"NumAwardedHardcore":86,"Title":"The Left Hand of God","Description":"Defeat Gabriel in the Cathedral","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2023-05-29 16:45:28","DateCreated":"2014-11-27 07:02:29","BadgeName":"17306","DisplayOrder":41,"MemAddr":"1788c78926a71a8b0e2bd8304da539be","type":null},"17927":{"ID":17927,"NumAwarded":122,"NumAwardedHardcore":85,"Title":"The Guardian of the Tree of Life","Description":"Defeat Raphael in the Cathedral (Chaos - Neutral)","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2023-05-29 16:46:02","DateCreated":"2014-11-27 07:02:34","BadgeName":"17308","DisplayOrder":42,"MemAddr":"df7fe782ee794232641ad80e12a7b20a","type":null},"17928":{"ID":17928,"NumAwarded":140,"NumAwardedHardcore":92,"Title":"Commander of Messian's Army","Description":"Defeat Michael in the Cathedral (Chaos - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-29 16:46:38","DateCreated":"2014-11-27 07:02:36","BadgeName":"17309","DisplayOrder":43,"MemAddr":"b1f8932acdfd4d4c217b0e034d7c4890","type":null},"17929":{"ID":17929,"NumAwarded":125,"NumAwardedHardcore":92,"Title":"Ruler of Muspelheim","Description":"Defeat Tyrant Surt in the Cathedral (Law - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-29 16:47:28","DateCreated":"2014-11-27 07:02:44","BadgeName":"17314","DisplayOrder":44,"MemAddr":"69457739986d4f1c6447ca25c0513fbd","type":null},"17930":{"ID":17930,"NumAwarded":127,"NumAwardedHardcore":93,"Title":"Duke of Hell","Description":"Defeat Astaroth in the Cathedral (Law - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-29 16:48:17","DateCreated":"2014-11-27 07:02:49","BadgeName":"17315","DisplayOrder":45,"MemAddr":"153c2f4d1be2ecab2d9abe27423f7a7b","type":null},"17931":{"ID":17931,"NumAwarded":128,"NumAwardedHardcore":93,"Title":"The Fierce Lion","Description":"Defeat Arioch in the Cathedral (Law - Neutral)","Points":10,"TrueRatio":38,"Author":"Altomar","DateModified":"2023-05-29 16:48:45","DateCreated":"2014-11-27 07:04:00","BadgeName":"17316","DisplayOrder":46,"MemAddr":"a538484fdada1e46914f5c3f6c79c456","type":null},"17932":{"ID":17932,"NumAwarded":145,"NumAwardedHardcore":101,"Title":"Lord Asura","Description":"Defeat Lord Asura in the Cathedral (Law - Neutral)","Points":10,"TrueRatio":35,"Author":"Altomar","DateModified":"2023-05-29 16:49:28","DateCreated":"2014-11-27 07:04:02","BadgeName":"17317","DisplayOrder":47,"MemAddr":"81dff7f76e8df65de9f24d511c7ed457","type":null},"17933":{"ID":17933,"NumAwarded":123,"NumAwardedHardcore":85,"Title":"Mission Impossible","Description":"Defeat both Michael and Lord Asura in the Cathedral (Neutral)","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2023-05-29 16:49:52","DateCreated":"2014-11-27 07:04:05","BadgeName":"17319","DisplayOrder":48,"MemAddr":"7adcb71904ac223975c0834ba1a75e0d","type":null},"17934":{"ID":17934,"NumAwarded":68,"NumAwardedHardcore":63,"Title":"Lawful Good","Description":"Ending 1 - Lawful Path","Points":25,"TrueRatio":134,"Author":"Altomar","DateModified":"2020-06-24 13:53:00","DateCreated":"2014-11-27 07:04:14","BadgeName":"17320","DisplayOrder":49,"MemAddr":"ce7b3a0053fc79dc00b6bb0c5233c370","type":"win_condition"},"17935":{"ID":17935,"NumAwarded":63,"NumAwardedHardcore":55,"Title":"Chaotic Evil","Description":"Ending 2 - Chaotic Path","Points":25,"TrueRatio":152,"Author":"Altomar","DateModified":"2020-06-24 13:52:59","DateCreated":"2014-11-27 07:04:16","BadgeName":"17320","DisplayOrder":50,"MemAddr":"045a8e472ff972fa82bf910e74b92e7f","type":"win_condition"},"17936":{"ID":17936,"NumAwarded":115,"NumAwardedHardcore":83,"Title":"True Neutral","Description":"Ending 3 - Neutral Path","Points":25,"TrueRatio":105,"Author":"Altomar","DateModified":"2021-08-15 23:22:06","DateCreated":"2014-11-27 07:04:18","BadgeName":"17320","DisplayOrder":51,"MemAddr":"7313e7dedd105d53226ebf95c707a1a5","type":"win_condition"},"17937":{"ID":17937,"NumAwarded":578,"NumAwardedHardcore":391,"Title":"Memory Upgrade I","Description":"Obtain the first upgrade for your summoning program in the Lab","Points":5,"TrueRatio":6,"Author":"Altomar","DateModified":"2023-05-29 16:33:28","DateCreated":"2014-11-27 07:05:39","BadgeName":"16643","DisplayOrder":52,"MemAddr":"5dfdd0a59c6fdc0a232bdb84a98b3410","type":null},"17938":{"ID":17938,"NumAwarded":278,"NumAwardedHardcore":204,"Title":"The Evil Summoner","Description":"Confront Ozawa in 199x before the Chaos Hero leaves the party for the first time","Points":5,"TrueRatio":10,"Author":"Altomar","DateModified":"2023-05-29 16:34:21","DateCreated":"2014-11-27 07:05:42","BadgeName":"17220","DisplayOrder":53,"MemAddr":"80252a13b0e1eaf85f85649b115c7e42","type":null},"17939":{"ID":17939,"NumAwarded":352,"NumAwardedHardcore":234,"Title":"To the Rescue","Description":"Release every prisoner at Goutou's HQ","Points":5,"TrueRatio":9,"Author":"Altomar","DateModified":"2014-11-27 07:09:04","DateCreated":"2014-11-27 07:05:45","BadgeName":"17224","DisplayOrder":54,"MemAddr":"c203d0a9478daee2c5b4f5097762f1f5","type":"missable"},"17940":{"ID":17940,"NumAwarded":155,"NumAwardedHardcore":129,"Title":"Until We Meet Again My Love","Description":"Help the Law Hero's girlfriend move on to the afterlife","Points":5,"TrueRatio":14,"Author":"Altomar","DateModified":"2023-05-29 16:35:18","DateCreated":"2014-11-27 07:05:48","BadgeName":"17277","DisplayOrder":55,"MemAddr":"a84f007ccf82f84d1d14b3b13ea49648","type":null},"17941":{"ID":17941,"NumAwarded":214,"NumAwardedHardcore":150,"Title":"Memory Upgrade II","Description":"Obtain the 2nd upgrade for your summoning program in the Great Fork","Points":5,"TrueRatio":13,"Author":"Altomar","DateModified":"2023-05-24 00:15:47","DateCreated":"2014-11-27 07:05:50","BadgeName":"16688","DisplayOrder":56,"MemAddr":"990e98d94b68752eb4c54142da51075d","type":null},"17942":{"ID":17942,"NumAwarded":186,"NumAwardedHardcore":133,"Title":"Memory Upgrade III","Description":"Obtain the 3rd upgrade for your summoning program in Ginza","Points":10,"TrueRatio":28,"Author":"Altomar","DateModified":"2023-05-24 00:16:30","DateCreated":"2014-11-27 07:05:52","BadgeName":"16725","DisplayOrder":57,"MemAddr":"8537802596322dc53ac566386df9fbec","type":null},"17943":{"ID":17943,"NumAwarded":187,"NumAwardedHardcore":134,"Title":"Demon Summoner","Description":"Defeat the Demon Summoner at Ginza","Points":5,"TrueRatio":14,"Author":"Altomar","DateModified":"2023-05-29 16:51:01","DateCreated":"2014-11-27 07:05:57","BadgeName":"17281","DisplayOrder":58,"MemAddr":"4d6c270f296ff0ae0488df3a052218ee","type":null},"17944":{"ID":17944,"NumAwarded":159,"NumAwardedHardcore":113,"Title":"Grass-cutting Sword","Description":"Obtain the Kusanagi no Tsurugi at Shinagawa","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2014-11-27 07:09:13","DateCreated":"2014-11-27 07:06:03","BadgeName":"17282","DisplayOrder":59,"MemAddr":"b7f179fe05625bbe30a31e7c18c05532","type":null},"17945":{"ID":17945,"NumAwarded":170,"NumAwardedHardcore":121,"Title":"Demon Summoner II","Description":"Defeat the Demon Summoner at Shinagawa and obtain the Four-Door Gem","Points":5,"TrueRatio":15,"Author":"Altomar","DateModified":"2023-05-29 16:51:51","DateCreated":"2014-11-27 07:06:13","BadgeName":"17283","DisplayOrder":60,"MemAddr":"df4fb96ddf927ea0cdc7f2a9805bb497","type":null},"17946":{"ID":17946,"NumAwarded":162,"NumAwardedHardcore":113,"Title":"Demon Summoner III","Description":"Defeat the Demon Summoner at Ueno","Points":5,"TrueRatio":16,"Author":"Altomar","DateModified":"2023-05-29 16:52:13","DateCreated":"2014-11-27 07:06:15","BadgeName":"17286","DisplayOrder":61,"MemAddr":"d86f138df5d74d0cdb245910ac13f2a1","type":null},"17947":{"ID":17947,"NumAwarded":155,"NumAwardedHardcore":107,"Title":"Demon Summoner IV","Description":"Defeat the Demon Summoner at Tokyo Destiny Land","Points":10,"TrueRatio":34,"Author":"Altomar","DateModified":"2023-05-29 16:52:52","DateCreated":"2014-11-27 07:06:17","BadgeName":"17288","DisplayOrder":62,"MemAddr":"1912e79bf5d64c08aa9e88772555ce21","type":null},"17949":{"ID":17949,"NumAwarded":147,"NumAwardedHardcore":103,"Title":"The Four Heavenly Kings","Description":"Visit the mansions of Zouchouten, Komokuten, Jikokuten and Bishamonten","Points":10,"TrueRatio":35,"Author":"Altomar","DateModified":"2023-05-29 16:42:13","DateCreated":"2014-11-27 07:06:29","BadgeName":"17297","DisplayOrder":36,"MemAddr":"f3d4454b60e9b4c463a64f2002b7bdf6","type":null},"17950":{"ID":17950,"NumAwarded":107,"NumAwardedHardcore":85,"Title":"Tyrant Beelzebub","Description":"Defeat Beelzebub (Law - Neutral)","Points":10,"TrueRatio":41,"Author":"Altomar","DateModified":"2020-06-24 13:52:52","DateCreated":"2014-11-27 07:07:36","BadgeName":"17337","DisplayOrder":63,"MemAddr":"9c8850a0ac8ada7aa3fcc2eeffd91a2d","type":null},"17951":{"ID":17951,"NumAwarded":63,"NumAwardedHardcore":58,"Title":"Lord of Flies","Description":"Recruit Beelzebub (Chaos)","Points":10,"TrueRatio":58,"Author":"Altomar","DateModified":"2021-08-15 23:35:50","DateCreated":"2014-11-27 07:07:39","BadgeName":"17337","DisplayOrder":64,"MemAddr":"3c70486c1c322faf0a75f0d1e947701f","type":null},"17952":{"ID":17952,"NumAwarded":112,"NumAwardedHardcore":83,"Title":"Masakado's Katana","Description":"Obtain and equip Masakado's Katana (Neutral)","Points":25,"TrueRatio":105,"Author":"Altomar","DateModified":"2021-08-15 23:25:47","DateCreated":"2014-11-27 07:08:41","BadgeName":"17338","DisplayOrder":65,"MemAddr":"b9ea666d504bb7c93729503fc1bed621","type":null},"17953":{"ID":17953,"NumAwarded":63,"NumAwardedHardcore":60,"Title":"A Sword from Heavens","Description":"Obtain and equip Sword of Heaven (Law)","Points":25,"TrueRatio":140,"Author":"Altomar","DateModified":"2021-08-15 23:25:23","DateCreated":"2014-11-27 07:08:43","BadgeName":"17338","DisplayOrder":66,"MemAddr":"e6b37a4530cdb6e9a557469fdedcef23","type":null},"17954":{"ID":17954,"NumAwarded":60,"NumAwardedHardcore":55,"Title":"Kurikara's Blade","Description":"Obtain and equip Kurikara's Blade (Chaos)","Points":25,"TrueRatio":152,"Author":"Altomar","DateModified":"2021-08-15 23:24:04","DateCreated":"2014-11-27 07:08:46","BadgeName":"17338","DisplayOrder":67,"MemAddr":"3e796535c83cb063ed0898445a0dd649","type":null},"17955":{"ID":17955,"NumAwarded":704,"NumAwardedHardcore":458,"Title":"Junior Summoner","Description":"Reach level 10 with the protagonist","Points":5,"TrueRatio":6,"Author":"Altomar","DateModified":"2023-05-29 16:36:08","DateCreated":"2014-11-27 07:15:35","BadgeName":"17012","DisplayOrder":68,"MemAddr":"3a5e9ecb0c179546c87a4f5f9a58236d","type":null},"17956":{"ID":17956,"NumAwarded":318,"NumAwardedHardcore":207,"Title":"Advanced Summoner","Description":"Reach level 25 with the protagonist","Points":10,"TrueRatio":20,"Author":"Altomar","DateModified":"2023-05-29 16:36:31","DateCreated":"2014-11-27 07:15:37","BadgeName":"16496","DisplayOrder":69,"MemAddr":"1fa2e0d72de939cf321572952a4a7072","type":null},"17957":{"ID":17957,"NumAwarded":213,"NumAwardedHardcore":136,"Title":"High Summoner","Description":"Reach level 50 with the protagonist","Points":10,"TrueRatio":28,"Author":"Altomar","DateModified":"2023-05-29 16:53:23","DateCreated":"2014-11-27 07:15:38","BadgeName":"16497","DisplayOrder":70,"MemAddr":"4f88cbd5c367c339f5c873ee4013f117","type":null},"17958":{"ID":17958,"NumAwarded":141,"NumAwardedHardcore":90,"Title":"Master Summoner","Description":"Reach level 80 with the protagonist","Points":25,"TrueRatio":98,"Author":"Altomar","DateModified":"2023-05-29 16:53:30","DateCreated":"2014-11-27 07:15:40","BadgeName":"45542","DisplayOrder":71,"MemAddr":"600be23d04904c089d1e71fcc995745e","type":null}},"Claims":[{"User":"MeCKooLL","SetType":0,"GameID":819,"ClaimType":1,"Created":"2014-11-25 00:00:00","Expiration":"2014-11-25 00:00:00"},{"User":"Altomar","SetType":0,"GameID":819,"ClaimType":0,"Created":"2014-11-27 00:00:00","Expiration":"2014-11-27 00:00:00"}],"NumDistinctPlayersCasual":1238,"NumDistinctPlayersHardcore":1238}
\ No newline at end of file
diff --git a/config/retroachievements.json b/config/retroachievements.json
new file mode 100644
index 0000000..f786206
--- /dev/null
+++ b/config/retroachievements.json
@@ -0,0 +1,8 @@
+{
+ "enabled": true,
+ "override_local_images": false,
+ "mode": "direct",
+ "username": "YOUR USERNAME",
+ "api_key": "YOUR API KEY",
+ "proxy_url": "https:\/\/temporus.one\/backend\/raproxy.php"
+}
\ No newline at end of file
diff --git a/debug_ra.php b/debug_ra.php
new file mode 100644
index 0000000..4969a3d
--- /dev/null
+++ b/debug_ra.php
@@ -0,0 +1,489 @@
+ 1, 'f' => 'mario']) {
+ echo "
Testing Proxy Connection
";
+ echo "
Proxy URL: " . htmlspecialchars($proxyUrl) . "
";
+
+ try {
+ // Build request data
+ $data = [
+ 'endpoint' => $testEndpoint,
+ 'params' => $params
+ ];
+
+ // Make request to proxy
+ $curl = curl_init();
+ curl_setopt($curl, CURLOPT_URL, $proxyUrl);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_POST, true);
+ curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
+ curl_setopt($curl, CURLOPT_USERAGENT, 'RetroHub/1.0');
+ curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+ curl_setopt($curl, CURLOPT_VERBOSE, true);
+
+ // Create a stream for curl to write verbose information to
+ $verbose = fopen('php://temp', 'w+');
+ curl_setopt($curl, CURLOPT_STDERR, $verbose);
+
+ $response = curl_exec($curl);
+ $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $error = curl_error($curl);
+
+ // Get verbose information
+ rewind($verbose);
+ $verboseLog = stream_get_contents($verbose);
+
+ curl_close($curl);
+
+ // Display results
+ echo "
HTTP Status Code: " . $httpCode . "
";
+
+ if ($error) {
+ echo "
Error: " . htmlspecialchars($error) . "
";
+ }
+
+ echo "
Curl Verbose Log:
";
+ echo "
" . htmlspecialchars($verboseLog) . "
";
+
+ echo "
Response:
";
+ if ($response === false) {
+ echo "
No response received
";
+ return false;
+ } else {
+ // Attempt to parse JSON
+ $parsedResponse = json_decode($response, true);
+ if ($parsedResponse === null && json_last_error() !== JSON_ERROR_NONE) {
+ echo "
Invalid JSON response. JSON error: " . json_last_error_msg() . "
";
+ echo "
" . htmlspecialchars(substr($response, 0, 1000)) . "...
";
+ } else {
+ echo "
" . htmlspecialchars(print_r($parsedResponse, true)) . "
";
+ return $parsedResponse;
+ }
+ }
+ } catch (Exception $e) {
+ echo "
Exception: " . $e->getMessage() . "
";
+ }
+
+ return false;
+}
+
+// Function to test direct connection
+function testDirectConnection($username, $apiKey, $testEndpoint = 'API_GetGameList', $params = ['i' => 1, 'f' => 'mario']) {
+ echo "
Testing Direct Connection
";
+ echo "
Username: " . htmlspecialchars($username) . "
";
+ echo "
API Key: " . (empty($apiKey) ? "Not provided" : "Provided (hidden)") . "
";
+
+ try {
+ // Add authentication to params
+ $params['z'] = $username;
+ $params['y'] = $apiKey;
+
+ // Build URL
+ $url = 'https://retroachievements.org/API/' . $testEndpoint . '?' . http_build_query($params);
+ echo "
Request URL: " . htmlspecialchars($url) . "
";
+
+ // Make request
+ $curl = curl_init();
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
+ curl_setopt($curl, CURLOPT_USERAGENT, 'RetroHub/1.0');
+ curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+ curl_setopt($curl, CURLOPT_VERBOSE, true);
+
+ // Create a stream for curl to write verbose information to
+ $verbose = fopen('php://temp', 'w+');
+ curl_setopt($curl, CURLOPT_STDERR, $verbose);
+
+ $response = curl_exec($curl);
+ $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $error = curl_error($curl);
+
+ // Get verbose information
+ rewind($verbose);
+ $verboseLog = stream_get_contents($verbose);
+
+ curl_close($curl);
+
+ // Display results
+ echo "
HTTP Status Code: " . $httpCode . "
";
+
+ if ($error) {
+ echo "
Error: " . htmlspecialchars($error) . "
";
+ }
+
+ echo "
Curl Verbose Log:
";
+ echo "
" . htmlspecialchars($verboseLog) . "
";
+
+ echo "
Response:
";
+ if ($response === false) {
+ echo "
No response received
";
+ return false;
+ } else {
+ // Attempt to parse JSON
+ $parsedResponse = json_decode($response, true);
+ if ($parsedResponse === null && json_last_error() !== JSON_ERROR_NONE) {
+ echo "
Invalid JSON response. JSON error: " . json_last_error_msg() . "
";
+ echo "
" . htmlspecialchars(substr($response, 0, 1000)) . "...
";
+ } else {
+ echo "
" . htmlspecialchars(print_r($parsedResponse, true)) . "
";
+ return $parsedResponse;
+ }
+ }
+ } catch (Exception $e) {
+ echo "
Exception: " . $e->getMessage() . "
";
+ }
+
+ return false;
+}
+
+// Function to check file permissions
+function checkFilePermissions() {
+ echo "
File Permission Check
";
+
+ $directories = [
+ RA_CACHE_DIR,
+ RA_ICONS_CACHE_DIR,
+ RA_SCREENSHOTS_CACHE_DIR,
+ 'config/'
+ ];
+
+ echo "
";
+ echo "| Directory | Exists | Writable | Permissions |
";
+
+ foreach ($directories as $dir) {
+ $exists = is_dir($dir);
+ $writable = $exists && is_writable($dir);
+ $permissions = $exists ? substr(sprintf('%o', fileperms($dir)), -4) : 'N/A';
+
+ echo "";
+ echo "| " . htmlspecialchars($dir) . " | ";
+ echo "" . ($exists ? "Yes" : "No") . " | ";
+ echo "" . ($writable ? "Yes" : "No") . " | ";
+ echo "" . $permissions . " | ";
+ echo "
";
+
+ // Try to create directory if it doesn't exist
+ if (!$exists) {
+ $created = mkdir($dir, 0755, true);
+ echo "| Attempted to create directory: " . ($created ? "Success" : "Failed") . " |
";
+ }
+ }
+
+ echo "
";
+}
+
+// Function to test image download
+function testImageDownload($url, $destination) {
+ echo "
Testing Image Download
";
+ echo "
Source URL: " . htmlspecialchars($url) . "
";
+ echo "
Destination: " . htmlspecialchars($destination) . "
";
+
+ try {
+ // Handle full URLs or relative URLs
+ if (strpos($url, 'http') !== 0) {
+ $url = 'https://retroachievements.org' . $url;
+ echo "
Converted to full URL: " . htmlspecialchars($url) . "
";
+ }
+
+ // Download image
+ $curl = curl_init();
+ curl_setopt($curl, CURLOPT_URL, $url);
+ curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+ curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
+ curl_setopt($curl, CURLOPT_USERAGENT, 'RetroHub/1.0');
+ curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+
+ $image = curl_exec($curl);
+ $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+ $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
+ $error = curl_error($curl);
+
+ curl_close($curl);
+
+ // Display results
+ echo "
HTTP Status Code: " . $httpCode . "
";
+ echo "
Content Type: " . htmlspecialchars($contentType) . "
";
+ echo "
Content Size: " . strlen($image) . " bytes
";
+
+ if ($error) {
+ echo "
Error: " . htmlspecialchars($error) . "
";
+ return false;
+ }
+
+ if ($httpCode !== 200) {
+ echo "
Failed to download image (HTTP " . $httpCode . ")
";
+ return false;
+ }
+
+ // Ensure directory exists
+ $dir = dirname($destination);
+ if (!is_dir($dir)) {
+ $created = mkdir($dir, 0755, true);
+ echo "
Created directory " . htmlspecialchars($dir) . ": " . ($created ? "Success" : "Failed") . "
";
+
+ if (!$created) {
+ echo "
Error: Could not create directory for image
";
+ return false;
+ }
+ }
+
+ // Save image
+ $saved = file_put_contents($destination, $image);
+
+ if ($saved === false) {
+ echo "
Error: Could not save image to " . htmlspecialchars($destination) . "
";
+ return false;
+ }
+
+ echo "
Image saved successfully (" . $saved . " bytes)
";
+
+ // Display the image
+ echo "
Downloaded Image:
";
+ $base64 = base64_encode($image);
+ echo "

";
+
+ return true;
+ } catch (Exception $e) {
+ echo "
Exception: " . $e->getMessage() . "
";
+ }
+
+ return false;
+}
+
+// Get settings
+$raSettings = getRetroAchievementsSettings();
+
+// Output page structure
+?>
+
+
+
+
+
+
RetroAchievements Debug Tool
+
+
+
+
RetroAchievements Debug Tool
+
+
+
Current Configuration
+
+ | Setting | Value |
+ | Enabled | |
+ | Mode | |
+ | Username | |
+ | API Key | |
+ | Proxy URL | |
+ | Override Local Images | |
+
+
+
+
+
System Information
+
PHP Version:
+
cURL Enabled:
+ cURL Version: " . $curlVersion['version'] . "";
+ echo "
SSL Version: " . $curlVersion['ssl_version'] . "
";
+ }
+ ?>
+
allow_url_fopen:
+
+
+
+
File System Checks
+
+
+
+
+
API Connection Tests
+
+
+
+
+
Game Search Test
+
+
+ Searching for: " . htmlspecialchars($_POST['game_title']) . " on " . htmlspecialchars($_POST['console']) . "";
+
+ // Get game metadata
+ $gameMetadata = getGameMetadata($_POST['game_title'], $_POST['console']);
+
+ if ($gameMetadata) {
+ echo "
Game Metadata Found:
";
+ echo "
" . htmlspecialchars(print_r($gameMetadata, true)) . "
";
+
+ // Display images if available
+ echo "
Images:
";
+ echo "
";
+
+ if (isset($gameMetadata['icon']) && $gameMetadata['icon']) {
+ echo "
";
+ echo "
Icon:
";
+ echo "

";
+ echo "
";
+ }
+
+ if (isset($gameMetadata['screenshot_title']) && $gameMetadata['screenshot_title']) {
+ echo "
";
+ echo "
Title Screenshot:
";
+ echo "

";
+ echo "
";
+ }
+
+ if (isset($gameMetadata['screenshot_ingame']) && $gameMetadata['screenshot_ingame']) {
+ echo "
";
+ echo "
Ingame Screenshot:
";
+ echo "

";
+ echo "
";
+ }
+
+ if (isset($gameMetadata['screenshot_boxart']) && $gameMetadata['screenshot_boxart']) {
+ echo "
";
+ echo "
Box Art:
";
+ echo "

";
+ echo "
";
+ }
+
+ echo "
";
+ } else {
+ echo "
No metadata found. Let's see if we can get the raw API response:
";
+
+ // Try to get the raw data
+ if ($raSettings['mode'] === 'proxy') {
+ $consoleId = $RA_CONSOLE_IDS[$_POST['console']];
+ testProxyConnection($raSettings['proxy_url'], 'API_GetGameList', ['i' => $consoleId, 'f' => $_POST['game_title']]);
+ } else {
+ $consoleId = $RA_CONSOLE_IDS[$_POST['console']];
+ testDirectConnection($raSettings['username'], $raSettings['api_key'], 'API_GetGameList', ['i' => $consoleId, 'f' => $_POST['game_title']]);
+ }
+ }
+ }
+ ?>
+
+
+
+
Clear Cache
+
+
+ Cleared $deletedFiles out of $totalFiles cache files.";
+ }
+ ?>
+
+
+
\ No newline at end of file
diff --git a/delete_bios.php b/delete_bios.php
new file mode 100644
index 0000000..14485dd
--- /dev/null
+++ b/delete_bios.php
@@ -0,0 +1,52 @@
+$elem) {
- $content .= "[".$key."]\n";
- foreach ($elem as $key2=>$elem2) {
- if(is_array($elem2))
- {
- for($i=0;$i
$elem) {
- if(is_array($elem))
- {
- for($i=0;$i
diff --git a/functions.php b/functions.php
new file mode 100644
index 0000000..75c995f
--- /dev/null
+++ b/functions.php
@@ -0,0 +1,356 @@
+open("roms/".$name) === TRUE) {
+ $names = $zip->getNameIndex(0);
+ $ext0 = explode(".", $names);
+ $ext = strtolower(end($ext0));
+ $zip->close();
+ }
+ }
+
+ if (in_array($ext, $nes)) return 'nes';
+ if (in_array($ext, $snes)) return 'snes';
+ if (in_array($ext, $n64)) return 'n64';
+ if (in_array($ext, $gb)) return 'gb';
+ if (in_array($ext, $vb)) return 'vb';
+ if (in_array($ext, $gba)) return 'gba';
+ if (in_array($ext, $nds)) return 'nds';
+ if (in_array($ext, $sms)) return 'segaMS';
+ if (in_array($ext, $smd)) return 'segaMD';
+ if (in_array($ext, $gg)) return 'segaGG';
+ if (in_array($ext, $psx)) return 'psx';
+
+ return 'unknown';
+}
+
+/**
+ * Get friendly name for console
+ */
+function getConsoleFriendlyName($console) {
+ $names = [
+ 'nes' => 'Nintendo NES',
+ 'snes' => 'Super Nintendo',
+ 'n64' => 'Nintendo 64',
+ 'gb' => 'Game Boy',
+ 'gba' => 'Game Boy Advance',
+ 'nds' => 'Nintendo DS',
+ 'vb' => 'Virtual Boy',
+ 'segaMS' => 'Sega Master System',
+ 'segaMD' => 'Sega Mega Drive / Genesis',
+ 'segaGG' => 'Sega Game Gear',
+ 'psx' => 'PlayStation'
+ ];
+
+ return isset($names[$console]) ? $names[$console] : 'Unknown System';
+}
+
+/**
+ * Write INI file
+ */
+function write_ini_file($assoc_arr, $path, $has_sections=FALSE) {
+ $content = "";
+ if ($has_sections) {
+ foreach ($assoc_arr as $key=>$elem) {
+ $content .= "[".$key."]\n";
+ foreach ($elem as $key2=>$elem2) {
+ if(is_array($elem2))
+ {
+ for($i=0;$i$elem) {
+ if(is_array($elem))
+ {
+ for($i=0;$i $id,
+ 'name' => $name,
+ 'avatar' => $avatar,
+ 'created' => date('Y-m-d H:i:s')
+ ];
+
+ file_put_contents("profiles/$id.json", json_encode($profile));
+
+ return $id;
+}
+
+// Update profile
+function updateProfile($id, $data) {
+ $profile = getProfileById($id);
+
+ if (!$profile) {
+ return false;
+ }
+
+ // Update profile with new data
+ $profile = array_merge($profile, $data);
+
+ file_put_contents("profiles/$id.json", json_encode($profile));
+
+ return true;
+}
+
+// Delete profile
+function deleteProfile($id) {
+ $profileFile = "profiles/$id.json";
+
+ if (file_exists($profileFile)) {
+ return unlink($profileFile);
+ }
+
+ return false;
+}
+
+/**
+ * Save State Management
+ */
+
+// Get save states for a game and profile
+function getSaveStates($gameFile, $profileId) {
+ $saveDir = "saves/$profileId";
+
+ if (!is_dir($saveDir)) {
+ return [];
+ }
+
+ $saveStates = [];
+ $game = pathinfo($gameFile, PATHINFO_FILENAME);
+ $files = glob("$saveDir/{$game}_*.state");
+
+ foreach ($files as $file) {
+ $filename = basename($file);
+ preg_match('/(.+)_(\d+)\.state$/', $filename, $matches);
+
+ if (count($matches) === 3) {
+ $slot = $matches[2];
+ $timestamp = filemtime($file);
+
+ $saveStates[] = [
+ 'slot' => $slot,
+ 'timestamp' => $timestamp,
+ 'formatted_time' => date('Y-m-d H:i:s', $timestamp),
+ 'screenshot' => file_exists("img/saves/{$profileId}/{$game}_{$slot}.png")
+ ? "img/saves/{$profileId}/{$game}_{$slot}.png"
+ : null
+ ];
+ }
+ }
+
+ // Sort by newest first
+ usort($saveStates, function($a, $b) {
+ return $b['timestamp'] - $a['timestamp'];
+ });
+
+ return $saveStates;
+}
+
+// Save a game state for a specific profile
+function saveGameState($gameFile, $profileId, $slot, $stateData, $screenshotData) {
+ $saveDir = "saves/$profileId";
+ $screenshotDir = "img/saves/$profileId";
+
+ // Create directories if they don't exist
+ if (!is_dir($saveDir)) {
+ mkdir($saveDir, 0755, true);
+ }
+
+ if (!is_dir($screenshotDir)) {
+ mkdir($screenshotDir, 0755, true);
+ }
+
+ $game = pathinfo($gameFile, PATHINFO_FILENAME);
+ $stateFile = "$saveDir/{$game}_{$slot}.state";
+ $screenshotFile = "$screenshotDir/{$game}_{$slot}.png";
+
+ // Save state file
+ file_put_contents($stateFile, $stateData);
+
+ // Save screenshot
+ if ($screenshotData) {
+ file_put_contents($screenshotFile, $screenshotData);
+ }
+
+ return true;
+}
+
+/**
+ * BIOS Management
+ */
+
+// Get all installed BIOS files
+function getBiosFiles() {
+ if (!is_dir('bios')) {
+ mkdir('bios', 0755, true);
+ }
+
+ $biosFiles = [];
+ $files = glob('bios/*.{zip,bin}', GLOB_BRACE);
+
+ foreach ($files as $file) {
+ $filename = basename($file);
+ $filesize = filesize($file);
+ $console = pathinfo($filename, PATHINFO_FILENAME);
+
+ $biosFiles[] = [
+ 'filename' => $filename,
+ 'console' => $console,
+ 'friendly_name' => getConsoleFriendlyName($console),
+ 'size' => $filesize,
+ 'formatted_size' => formatFileSize($filesize),
+ 'upload_date' => filemtime($file),
+ 'formatted_date' => date('Y-m-d H:i:s', filemtime($file))
+ ];
+ }
+
+ return $biosFiles;
+}
+
+// Helper to format file size
+function formatFileSize($bytes) {
+ $units = ['B', 'KB', 'MB', 'GB', 'TB'];
+
+ $bytes = max($bytes, 0);
+ $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
+ $pow = min($pow, count($units) - 1);
+
+ $bytes /= pow(1024, $pow);
+
+ return round($bytes, 2) . ' ' . $units[$pow];
+}
\ No newline at end of file
diff --git a/get_state.php b/get_state.php
new file mode 100644
index 0000000..6b4d46e
--- /dev/null
+++ b/get_state.php
@@ -0,0 +1,49 @@
+w5~>lT%P~rkDkxQoM3f>R9i<3FMMOZPN{1j_S`PhyAR;9o1P%}g
zJ#?grfV2QoRa$@`LV%FGaNnK#X5PF%-o4+w*UX;TYwcN|S+nj
zK)_wv0H}+AkhZ_`GXO9&1SA0fV504D0(7($h&KKq>I`rPI0FKm&VP!If$mg{^z?KL
zU`8rAnVFban808bb`};^Hk!c9XCdrtXHVCshn$9=M$sl46PW4L1o~}
zw0(e{gMst%bxp?erjNlwo?LRTlk=H`Z&$T*n~m&<$UpH4XJ+By<>MC+y&@(qA*rCK
zq573JQygQ6;4xt7|Z|b=dlb#*WUe?w;OHef^_jU&kjVr>60XOUo|*c6VCpzYUAY99F2Kga*>uSs_X4^|1u{KVh+gBa#v7&za)O%gAMgA@os_A!e}
z@w^>4j&E~QB+aV|13?yb4cJ5=tl2e-?hN|MVtvD(JyufUhyFjN2Jbo8eYJQjwToBZ
z8qk?{43V8jnICETJ9JEox-^)#56gFtnCxTGzXM&oZAVasg|nznIkOLae
z#KO{iG)1U29LnRb)@{$5G!3p134N;jb6z~|L8p{f7g_9Bjxu#o^(00^A@^Y?_Safq
zah{i(;!O=R`-wfB@Alu8uH8!Z;zI-&4|)g={tB+df11UD8lKg_+W+MngCDT(Qev
z*1P;AI&ICPyLzJ<{{CxIF0x3+dmn>hN&bOSedXto(r7+0q_BW-KXUod4BzKF!K%w1
z`;hq}x&_Y8sBL&%8poj0^pvtx_<eSjWaGBZ&YHD*m3)8Tq0^vmzd&srnP56!l5}!{6p3C9~x-;`$
zYJb6~p{g;yVgq-dxJzq*#XNg}mDJZ0tyhUupttOgv&>IpXQuEya+AvS0ai``;rsd2
zFu>unvH;l<);l>!98LVgf!C3OkUzP;6B8{LdS)@(s(HL*$+g=e_du_#NgTvvKp~}H-@d~`jq_&$$rFP_h+=Z0D?L2
z1R${=KPR)3SdVY`^R`*q3-9z`zMYR_Exi)t{8E@QcGf9n>nhQsV{vYzhu`aZf+zW8
z6^glu?RLK~y{bgH?CD){SLpS&Xa=jZh=|)Q--YYypfKhIuUnN*pw+lH#qr*=&I?EM
z$yC6MAxPz=Q&NAvz$=MvOnJ`N%KkZmD_S-*b8Q6r*8lZI@KUqmz1!X638IQBI%%c5
zjaA{O&-0?XL!SyRct12K3edxiZsUjd%XYY6nBq+0d`GC1n}OBNc=-8zXP&XXpi2Ah
zmdlCLe~LU9K7Z)PnL8+ibdm5igGrF@FU=5wx|ApJX(@W8aAVP-F}W8`=~FdT_R~*{
zBrAIm(MPB@9CKgAhCoKHs{<=Ny`H3jd=5d&1Sc;j2%6&b04e@#6+HP+PBw9d#_+E~=2R+Pj26qw>EmkjCF%~%vGTRwu&bGl2YK3yTLB&FD#2Hvyei{q
zmyKk~P=lrIeLXBA#dx!{T!L8jv{Xnb6`=1qX?ca1>fDbQ{XO7Z{8lHoyROOs#~S3)
z<<3VTwK?9*0-OGcD1tJPDvgPgQ9g67dJRdx493v~&6wP?51tpAtah#!3Q#l^LY^tr
z8(oY?x%SDOtuk1m;Op-6m9BUa9GxsG@HJj^Qt^XGCvRRc|K1@p4q;V&vWLahrf)C_CxO;_s5A>*2B_n
z=eLH<+2{$Rl&@QG%n0+BmeDOClJZGz3$7>6mfbU-y={H5oSKm1b!+2w-u1(%PKX2F
zCT^9r)NidH8fceN2p+68sxDRFiuIaawF!NXN5&=?)@@rza9AxtkZHWWB2<6{nVG_L
zAWM=QZo|=a5*;*2O^bE!CQV3DrFuLK&)m9OaCy*liAJmbXx&tA-j$fgP1`(Td+u;j
zkW;0+^JaaFX;a*Utw(UFs6{AZ&H)~~_*2y^@|xE=LFQok(EZ>DI%zNDStySm>0Xwo
z@9;!!{kE+R*Vj9kSbLGZRt6K*P)4*1wSuTXN2ylhm;=e}kI5|`9QW1UX<_TCG?Af8
zysTexR+9T0cRJUg%%KC8jnK{z7TI$lNx$r|V{Xe|E8H}%+0K@`RDa3>2)+zqmjo64
zWy!p#!hJV?g9dt(fyi+#WMRzV9v!$x*k2P5T~PTNF$D(sSUKoE4t9&E@jZ
z>!Z|m-qg=Fjmt#Y&6_(vHo9y?w~$LJ!7$hTT-9Ah?7P{+NAyoq+3M|@m4#bEQ+sn*
z&87N1>Psd|O^3=#d*_Wa_!A=>J}U8>eePWI_9q$TcrGflf-x$nK=
z;yJB`?cerItH_8Y51-Uh0S6o;*p76v@D{@B`k*e9uc|J&eDB7~iErEXUqyoDQU;rz
z+?`NQSNp5qf_psxmYBD5&zSMsj7{HSC1i#q)_qZ+C47q~j`8)^-b)UGYh;)8a=Km3
zmGjYN+a#%srjlUD3A$N3U>U;VU+c5htSoquqcILIGPYHjVKtZGd?hjCp}X`fIEm5P
zfG=qQq`2=FMppPHOk!U++~#@EI=0w45;>YOI^gc^F~H<2oD%!yVjwxDL2*)py)tT1
z(t6L;&`2HK-J8K~oON7Dn90!ht1T)*V~i8TEtmOMxUUgCN{0s2zPV4=YhuZzD!Lhy
zMyhi+sela3l?p@{9&5P16C`qfRIJEcVm)-@6Z-z--L>j7T!E!8mg_GTPHs4n1sW%f
z7q{d4n{YL5D`V<4WYIi=7HA{N^bl!73Zk&U^GjkDKBtLj|3$(-Ot*weNp^DPjfat4
zw~?ev*zOC^>1;K4`0mWqkmr)#%2&84i}uVM6W0sx+*Yf*z8?XW6g`m)v7gocqbRee
z0R7oX`%1^dypS&I3duTyxPJVP@83OlXv9^B@g%chb
zSa`uNAV~C4AU&IM>gKsBvQ&M^7P_DXo5G*`H159mYNzD7|0U!dTT;1drH+pyCKVo7
zH4@on0I}y@Zni;qHyl2s0t}2NNV4X!0ojwJm;Xso3c*nMrZB>?5fdvNs9o+$v~8|#
zJv*XcV%JeVFYYaX%!&@KS%@JEa_5ucmk@8-Vry^xelCnn|F_S47=7x5qUd
zA9;Fh$Y*JfoDHJgKmk5=+>>1wQ(-I;dX|_rGA#0U!Cn0QC7F5k4=b3Le_7&LAu@6x
zP}$!4*nZm=$|X|BE6CXm0Yt2{Bmcu()pfO!hZOoqWG7nC{I6$RM5V3#>7C+OWDfYKYoLENPpK<9`BcviEANE7
zzYKGV6y$Mgmt?v%)E%lpmc7&f20kD5cQNO%^@AS%-la?ady^(LQSoOoB!HLzp-zRWqjRhi#dE({=)LM
zOc2uZE7U}4B`;2cvxS5x87d@&4>?vfL%5VVwFD+j5>_}q>*%j2xP6A)W)j=fM^%tQ
z2fB`ICv2k7Ex&U+2r10VoI1;umx$X0I4tie*Dpy|d+T1OBbe-`BN^xtvtun(A)s{N
zRn2c>+ydnXj$cEL3bgZUKuC4VW{o@BQ9ko*eWkjWoD~jHQH0!B$Dm+LvL*)E_;>mv
z-vt&@W)E!VwzI-KCtRs^={VQgn*Va9@tE}DBShpUrv|nKKa4EYQ~^XpL;&^c1h`rN
zaH#k?y#WApbO8JS0D$7U?GAwWx<+)J{!>@e0A;`pBBFo!zeG$*{7+;gB*diTWaQ-k
z3dK#Tn-mn36y)TTwFOtdjsoBh
z@FynX0NkJ>BBmp{>IAS~`$~FE^bhL4M0A6ggp};sB}%Gm1LW;%_lb#bTsuojLUL^#
zblnahp(DNXP*jQRuD&ffhx+!1|NI>gPvhG&yW4)t(9yMMe*
zdi&Ce>2;jg9X(7P5GH(>4PCO?YMl19t-9X_1Eh(wwq=lQo08w^*3}7yq}f%oj-Rng
z%62pF734COn+t)Qw+F8PISLaVkQw!X(Ha@aCxQBIeUhkY$#;tyM&}zGsJ;r~2e=0T
zp#xqPJ|W}JCE7e(im|`#(7qoqB7H=vE&uXiJO)(I@)hU%c#9pp~!2a>&@Nm`nD2+l^VKYP@N;76pWE^1eFM3NGOi%{~7ik8L$~
zH*r8Q9J%>f8_x9IZdE~dk8Xb`cw8!f5d@$JH=kk{p3zdF!WbUc_fjRsK3!~y
z3*UvedqV)`o2J#9CIl-)f4R0Polv{x`&zmFJq@;S
zUfyPR*iDt_x!Xvpq#9Svy;+;57#6Ge=N+*AzSY}mj8nN8cL%%)-PMj~O1`RuVPO-j
z>1cr+CBvf>fjS(KR^TMSLyZKR9w=Oy)wej90O8V31kILUJ_fbZ(7>24%H>9)n+q;r
z3&&1`EYH8-b8oLY{7OsS#8gsrN|<)#tkTNI$r=ZpD#)S@C
z4F>ma+}RM5o@!Z$*_l*7kQwkR#F0aVhPs))!OhtiE!c&nTuR)iGH52t_m{{&jbIIs
zU>KPNSjt1?>v9OSXRhP8%=(aK3ZvHK?52+3dCK8wWN&SsHSGk_=5}BZ9J7s)^&UMq
z206r_$e!ED%>B9oXfGC>Shf@{;tVF%x)`P=V%wJnD--ml9&Wam-UzlI?YY=ZFCs~U3)PFm4L`!F76D_4O?pxe!4he-Y5d>SqPJxZ!h|ZzqdDWwlY;SggtDoA^mx
zLrXd8wxqEepK)?@-qG8Y{-06RA%ZrZ@NKsKW7gDpbzU9IXVrO1BF;y`|)7;4D$P$eO
zCsttxrdXn43}1e_0^sO!RHy@TMd8xG=9_Hc<>Z#j-f@c>c0NW(xV>SR=SN{#R>x?9
zPsPA~n#><({#49hq2xjIxFoPf(;W`3HVN9PpRIJCPF~gfBvLMCn7`2{5t;SM?8~Fm
z*CbN!WDj>h7HZ*TUZnQbCJrudGywZtge$=N#oU@mYzING%MkN{{?BhFUf_jBxgH2V
zKA1->)rebgd!pEsh{t6sonjSeZ$KF%8YfA=3BjhcU}Du^1iI
z*@IaNG)FI&KD(%ztOrG#LbEdx9qxK~a&TIXQm=eYp*=72(Ek`WQY}Zdu$jq0Rlj{t
zd94fi@?s%6BU`uCVl>ES?!~XI<+^yDzxPUF%`f$TnI?j01r?mv9riq&^3rCv(^ru#
zu(j{mLYX;Q2#&Ue86_kB63`O>H7SdkiFc^uQfB-Wpy=)u;O|B+Hu%wcgH0%MK-r?X
zYWU!RI0k+`;D_4UT*7&+qEX;+z6(^3T}SPS73J
zOegx^tY@s&T}v#T@6whs&b70j;_@QO^u)lN3P0?GMbxFg;tp|?jiL*QX1$!&qm^XQG=;$ys#a>tgNE@0
zfhcxnb0w&sBdqATTH5f`MV8^Q=4oaekYatn$65jp`COyN!)hdp2qFjKx8Ak^BxU~ryUB>9xdSS
z$9W$nA9p>KZ~dKQcRzV5aJM~D)WP5gECf6=c=l8B=y
z8RmN#>}U64ZHEoH(QuEUv=Gf*95$c%qL|AC$aAabUB@R94;o#SV2y637(rE$N#m$Y
zZi-2(qI#4-y~p&|E^dbr++Tl*UC&&^TY}HoM0UjF!6_th5EVZ;7m^_u_TBSu->xA(NQS$R@<(&|7|D9OZgJ1ZLsHiYT;!E@5V};ybru?&(j`g%{TuLyFz1wozcex{5k>d@w0+|hd
zkJBI5A55&7qa?OyUMoP1iWgEZY7ND%ZcIR{(Wvxw{jcoHo~q5JE=%
zEf>DC0o&TNMc>eNn!@M{u`Gh=O#;LyS_FlmTXwCZVpYZdAdUm_~)Jwwx1kSl!g-{
zjmB#PtbEvoH@M_*FIMD0F~LAs4uegI%j7!Kk;L%*wwB8#oqTHF0(X3@ttaM}Tz07k_d5lc5+`ufTGX^KT#nuK)f8aC
zv0;@)YIN+@nuhfv$~euaM9EeMZx)z8;0{qR1i)|5j6+gSw}K@`S~xZn1otGd;ae+)
zM~qy?4HNk!wmx^0KC;?Z0uG-L$C;c!b_HJI^TWnhV#*U-%ri;`U|OP`^k(xh*3y3E=3h10)<<&YJwfMihj!_
z&4@6alll&IT*upLmksGzY`&2^OW&d&mOLQ|mz|y0&JavktG;2%RX*Yoq_bOTvzQc(0=)`oZ^qySNK%d=Oqm@$5U$E+&RjP<#+%J>YzkBcE+?aG}C^+{Ij>{C8
zHb#USbKmOsao3MiCtCL1{o?)Mv4V;%rY5=#O7pxdwZoP3P|%u+mZAYZ>Fks;RuSE)
zMym%sF}G@kt9jp#aH9`woqYsZAc?+Yo119bTUig|fZL?)<>KvU{r%}%@SZn+Z%_
z+yjB+@9H)IMnTaha*EHit~ZtG#f5M@jCPynwt
z*m)FGK*-vf^l`ZY(DfDyYQqSJ*-Pwq(DM~kv(5%e+-%K;HjY_m2B
z5dmCt!A+SV>?obVE)4g6e-morn)hPz@p-bDfvq_w8ixp;
z^N9xzcdVhVcan1?w>sED!fh-Grs07u4T)_qmcx2$hBJ}Ra?K`lLg&vVJ{gnOo2a~&
z=eF3AyL+bd)*84QgG3xalM4o<7>ra^m*YL_US%Bb*a&o*QJdH%zD%Z}DHQwEhbevp#XV__9Q#>3lh23*LKAnRZPK)eVELW>{rH{u+_WPQwvQr1bD#sW!?#O#g
zxbowP0by_^VGhsj7A2cpe5~h?5`J1^BIl#pyQu)n=x&k401w!V@Qtb~fEUtpj_gnz
zuXvO+dVbc+F?^8fwqqJgPohftTJ$(gBdLB35c?S1v%tpEWm_eNh}NakC@iRj?N0gI
zeBbx@IhaM$R3f1I7T_NgAX7^qQjQ
zp`K#C_Ypg-Equk{(;n4d&%KhY>!XdGWK9F#l(bMg>K&(H=oKKybYpl?kme3$EGbX&
zaRYX>d@lP>uus)J_@C3kQSF}u(~LmJAMn0K`sfV{smnp-yRnZ=oT%uwrFqwF4Ax&veueA#B!A%7a9KGwn5bxNER%_4_V$Chkg+60i3-1KcEOueUqK<&gI|Y3Q!HJ{
zE%$e0<6z!m`I+IL4?t11ydT3PDS)YGfckTRkrti?G(Klg?h;=kb8~Hn$m1JK{1h8<
z{%#j|+zAPPx*AUHq2=ez==+QME1R@AfDMO&oKu!wVwmMSZEkz>v2-?|KigFgzZy-!
zVTIng81uYN;Nx9peX>XRkcTz7FH&qMTpAIE&?((4uhk-)#r1kd{~3iO*nYPaK#=7|a9>u0CWT!(_H*EgH5z*@ot
zOk6$k{50CmAVzzU@vV{d=;R#y@~}Ru7KdF9Ad->nIfv}ZXLl-ovM9(5;7Z2mzlmI+
z;X;0;c)M&kne?7>_J;y@@GlEk2aI;Qzf$3QnX~Te%2E9ziLJ*}vYtP8*^`iGHiDcUh5}jMa-wRdnblaGpYn&j
z6j1E8fIIzwwd*XfSc$9P$om0!0#9M^wmLG{HNXvPPqHP@whrDB`1a&On!t8&Eo
zE>z#gJt|;t-76d1$acg@YxukGR=6wQ>EGJZO_Ysnwz`dZTj@HK0a^)~GoO7J=_`C&
zgS8}pUd}Y-ajRf+3r6AKp-hWix)`In)PJf?86pww%W6LVQ}Rxq|54l
zcNWv=p;kZ~2T*fL_Difw=>xA@HAh^Im=TlU`Inuk8^?C-g~Aq;@y@Z@?uzs2A^z+U}I5<~&t)oymX>`Vp`)i$En8Ih}W|
z35aor_HNog53c71d4UOu7?Yzl4P?T%eP(t2C|JM)PaEEhAV-m0-PT5vyOTy*X~J0K
z;s|V4+Hr8Acq?hdz-D$PaAJ)G?=M@_q}-r0=jd%Cc!Y*w6;sO-J47uo1Q(a8=Cb4$
zs%1o`o}KRr8Qw<&wtp3GyU5uUAU;**W-(aLA1T_vhGtST(mw5On7ru`(ip36>wSpIt@3Yp@ublm&Oep?XJ2f&V?Mq(Fo}G4ZhXjO?HXOGV=L;FEoQQ2>h20{
zFmam^t{5Zun-7Z9eKHe#0dk&53GfPrr9Tar;Vw^;uO1*zp8gyKKvnfTh}^#d#4z)p
zpp?g&n4tVQzMl=Zpd~u>$@cF29irB%_?uQ6WJ;WGWuZ_5-wvHvj=8sD?(wB8cY-ra
z6VEj!MC2S7&jfDqbnhFDe{Tpi%o^#u$@`-wq~kRDCcxoC5y?sv@Y{UkL2kqm-tVEI_zge}0Q83*eXa>L0JBW@$qFe2UlbG)
zuVa-jCo#7#pV#gL!n})}61k)*1uS1+;HAmL58kV-p(RHJF{tVzgY=h>w5h$B!`eBq
z;*})MXx~F!h2etwn&$LI(^>4_z+CA_P#2qIVyEG%`nIs~H=ENHCzfnJz_Dfhp%ZiC
zb!^VnDu-RgArerm80}1s)U)H)Pifr>4=Wz;t`wdd`uk3Y0vl92eic!w%_|iKWv>oZ
zNFLC0GK_2mr~U2f=5tB#G{*~F0V24Cpb~JAw{6qR7xxPn{f8gIFmpEMnmCd2WS>MM?-PZ4lrh-%
zP<;qC3{61m9*&*M;`3MXN)q}tMOQR1+3ii^-sw?M>aNRKjvuH`-K*hM%gZ<*nLi$+
zz&LgumAdOb+p047;}Ir0Nxhh7+GzvTYCRV+9^UmFq39qVq~~;!T>u*RuI5!$Qq5*Y
zqpJ#L?@%Be@domnIa(>2+<#=Eem?7y@FAa;#DA@bH_ob$*9I7<2%nX@_3m>G@x{Wi
z=iz!b!Y_K3scBRQx6PBqV$zfVr^pW~pVp;f!w@a4KET@~J4kG3-4diKTgPNfjSvu{
z!^PaW{u%<#2fU;@n8a_ZOOG0ZO9!Vv6`%2(Flglhn`=>d=)^dRvo{hu?prdWk-Pn2e`u0FKNhRl%s>p
zYkmbyq|EoJcS4jg9-Rj
zTdQpX7zrFb!~F3T0L8I0sj1=B_(lw^
zOPezL5t5&7v)sxM2*z{HTejRDdsDZ2kvYB^zg&~-UTtY3LA9=X(tdBUchnFp2
zZ3;86GDPM21d`#P_b%XrJl@91H>Le{mq+PqH{;(cBWB%(ta0i1^^l!)lf;f>|E+}D
z=A8Ak=FV3n4RtkRF+Q-ndggEE}(~<1zovlgf_UV-g{z??#eP
zjoI|OD&!3IQX!o^i4{&b_+=j947XWsF8vG1i?)>vYQ}
zWnO?#E61t+TLOzB^zBoYuB(rT@>C{QA8(xCrn8;5n^dKH3smzYM|2ShV~@!F2(N$8
zMj{T1BB%2aKaTe}oER^;9t~k76BdO$2#X5{7uK0OM6p
zDjakr{%~pv2?rgTxaszKOmB4`PrukQAT;K~HW-a%HC|5C68H>dRT_m
zJ_NN56>Z4{kDZUZ^+q%k^OAT~^m%H3%G6eyc&js7iV~|Wtw|iw!dfAJ5lYOAjZ5O)
z#J5|G#}0wgKZ7}Tzx-ff`16BWG*;zdD;at%dOU7R$Nz{da!ChO=On(5`P{70+w)2d
z@y@5AYc<0i;_VJVt1kBY&a>RZM}WVDZ6(by1zNlZ%E0q$O@PKld0?&fl^
z-1TQ!!|}p>q3T<>4Kz=#A7kHf`aZ(>75>ME7;Tjtf~piO@Xy@hi(CuMk*qAOL+H~X
z98N?BauA>=rMJ`X;kh|SFcLd|{%Wo%cIL|w-{@hv7{SB{^0k35L4PpRxFfx0s2Bb&
z@wlXrcUGtO0=K?bl_WGi2kbzy{{E-DxgTk7x0ADw0@yZ%Xd+YJprEct)
z+?JE6)j(oidqJXp8+&Wx~nf^H|>ATLrX(QHGw^cpFyW9sB`KZ{_
zTM?GOT$j?@TeuRIRN;)TM5`>n@Vum;M1&
literal 0
HcmV?d00001
diff --git a/img/avatars/avatar3.png b/img/avatars/avatar3.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3266bcc9ae105dbd1df9a0cc9b0adbcf61ceb7d
GIT binary patch
literal 14486
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