{"id":8528,"date":"2026-02-19T16:10:22","date_gmt":"2026-02-19T23:10:22","guid":{"rendered":"https:\/\/rec0m88.com\/?page_id=8528"},"modified":"2026-05-26T17:41:38","modified_gmt":"2026-05-26T23:41:38","slug":"rec0m88-changelog","status":"publish","type":"page","link":"https:\/\/rec0m88.com\/es\/rec0m88-changelog\/","title":{"rendered":"Rec0m88 Changelog"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Rec0m88 Development History &#8211; Full Changelogs<\/title>\n<style>\n    \/* 1. STICKY HEADER FIXES *\/\n    header, .site-header, #masthead, .header-main {\n        position: sticky !important;\n        top: 0 !important;\n        z-index: 9999 !important;\n        background-color: #0a0a0a !important; \n    }\n\n    \/* 2. BRANDING VARIABLES *\/\n    :root {\n        --neon-cyan: #00f3ff;\n        --neon-pink: #B805A1;\n        --bg-dark: #0a0a0a;\n        --bg-card: #111111;\n        --text-primary: #ffffff;\n        --text-secondary: #b0b0b0;\n        --border-subtle: #222;\n    }\n\n    body {\n        background-color: var(--bg-dark);\n        color: var(--text-primary);\n        font-family: 'Inter', sans-serif;\n        line-height: 1.7;\n        padding: 0;\n        margin: 0;\n    }\n\n    \/* 3. LAYOUT *\/\n    .container { \n        max-width: 900px; \n        margin: 0 auto; \n        padding: 40px 20px;\n    }\n\n    h1 { font-size: 2.5rem; color: var(--neon-cyan); text-align: center; margin-bottom: 40px; }\n    \n    .intro-text {\n        background: var(--bg-card);\n        padding: 30px;\n        border-radius: 16px;\n        border: 1px solid var(--border-subtle);\n        margin-bottom: 50px;\n        color: var(--text-secondary);\n    }\n\n    \/* 4. CHANGELOG STYLES *\/\n    .changelog-list {\n        list-style: none;\n        padding: 0;\n        margin: 0;\n    }\n\n    .changelog-item {\n        background: var(--bg-card);\n        border: 1px solid var(--border-subtle);\n        border-radius: 12px;\n        padding: 25px;\n        margin-bottom: 20px;\n        position: relative;\n        z-index: 1; \n    }\n\n    .changelog-version { \n        color: var(--neon-cyan); \n        font-weight: bold; \n        font-size: 1.2rem; \n        margin-bottom: 10px; \n    }\n\n    .date { color: var(--text-secondary); font-size: 0.9rem; font-weight: normal; margin-left: 8px;}\n\n    .changelog-details { list-style: none; padding: 0; margin-top: 15px; }\n    \n    .changelog-details li { \n        padding-left: 25px; \n        position: relative; \n        margin-bottom: 12px; \n    }\n\n    \/* The pink bullet point *\/\n    .changelog-details li::before { \n        content: '\u2022'; \n        color: var(--neon-pink); \n        position: absolute; \n        left: 0; \n        font-weight: bold;\n    }\n\n    \/* NEW: Formatting for subheadings like \"## BUG FIX:\" *\/\n    .changelog-details li.subheading {\n        color: var(--neon-cyan);\n        font-weight: bold;\n        padding-left: 0;\n        margin-top: 20px;\n        margin-bottom: 8px;\n        font-size: 1.05rem;\n        text-transform: uppercase;\n    }\n    \n    \/* Remove the pink bullet point from subheadings *\/\n    .changelog-details li.subheading::before {\n        content: none;\n    }\n\n    a { color: var(--neon-cyan); text-decoration: none; }\n    a:hover { text-decoration: underline; }\n\n<\/style>\n\n<div class=\"container\">\n    <h1>Development Roadmap &amp; History<\/h1>\n\n    <div class=\"intro-text\">\n        <p>The development of Rec0m88 is a continuous effort to bridge the gap between classic gaming and modern technology&#8230;<\/p>\n        <p>Our commitment to software transparency means documenting every step of the journey&#8230;<\/p>\n        <p>Behind every version number lies hours of debugging and community feedback&#8230;<\/p>\n        <p>By maintaining a detailed changelog, we help users troubleshoot potential issues&#8230;<\/p>\n    <\/div>\n\n    <ul class=\"changelog-list\" id=\"changelog-container\">\n        <!-- The Javascript at the bottom will automatically fetch and insert remote notes HERE -->\n\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v4.1.1 <span class=\"date\">(5\/03\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Advanced Game Matching &#8211; No more needing the exact same file name for netplay<\/li>\n                <li>Netplay Client Performance Enhancements &#8211; Blazing fast netplay!<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v4.0.0 <span class=\"date\">(4\/27\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Feature Update: Added Retro Achievements!!.<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.4.4 <span class=\"date\">(4\/02\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Feature Update: Added full support and app package for Xbox Series X|S Dev Mode.<\/li>\n                <li>Feature Update: Full Cross-Platform Netplay activated between PC, Mac, Linux, and Xbox.<\/li>\n                <li>Bug Fix: Resolved an issue that may have caused guest not to have audio in netplay.<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.4.3 <span class=\"date\">(4\/01\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Bug Fix: Resolved an issue that may have caused a black screen in netplay<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.4.2 <span class=\"date\">(3\/29\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Improvememnts: More Mac compatibility and performance fixes<\/li>\n                <li>Mac installer is now universal<\/li>\n                <li>General backend performance enhancements<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.4.1 <span class=\"date\">(3\/21\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Bug Fix: Resolved an issue that may have caused games not to load on MacOS<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.4.0 <span class=\"date\">(2\/23\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Bug Fix: Resolved issue where game library platform selector may have been cutoff<\/li>\n                <li>Backend performance enhancements<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.3.1 <span class=\"date\">(2\/23\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Bug Fix: Resolved issue where game library platform selector may have been cutoff<\/li>\n                <li>Backend performance enhancements<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.3.0 <span class=\"date\">(2\/20\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Bug Fix: Fixed an issue that may have caused load states to freeze the emulator<\/li>\n                <li>Bug Fix: Fixed an issue that may have caused dynamic cheats menu to not populate<\/li>\n                <li>UI Enhancements and performance optimizations<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.2.0 <span class=\"date\">(2\/17\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li><strong>UI Enhancements &amp; Netplay Lobby Integration<\/strong><\/li>\n                <li><strong>NEW:<\/strong> Netplay Lobby on the idle screen \u2014 browse and join active multiplayer sessions without leaving the app<\/li>\n                <li><strong>NEW:<\/strong> See live game, platform, and host info for every active session<\/li>\n                <li><strong>NEW:<\/strong> Web-to-app launch \u2014 visit the <a href=\"https:\/\/rec0m88.com\/netplay-lobby\/\">Netplay Lobby<\/a><\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.1.0 <span class=\"date\">(2\/13\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li><strong>UI Enhancements<\/strong><\/li>\n                <li><strong>NEW:<\/strong> Recently Played Games Strip \u2014 Shows last 5 games with thumbnails<\/li>\n                <li><strong>NEW:<\/strong> Now Playing Status Bar \u2014 Shows game title, platform badge, and live play timer<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v3.0.0 <span class=\"date\">(2\/11\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li><strong>NEW:<\/strong> Game Library Manager<\/li>\n                <li>Manage your ROM library right inside Rec0m88!<\/li>\n                <li>Featuring game covers and details!<\/li>\n                <li>Get started with our <a href=\"https:\/\/rec0m88.com\/game-library-organizer\/\">ROM Library Organizer<\/a><\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v2.1.0 <span class=\"date\">(2\/2\/2026)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>MASSIVE netplay restructure for supreme netplay!<\/li>\n                <li><strong>NEW:<\/strong> Added netplay messaging!<\/li>\n                <li>Netplay guest audio fix<\/li>\n                <li>MASSIVE cheats file update with working codes<\/li>\n            <\/ul>\n        <\/li>\n        <li class=\"changelog-item\">\n            <div class=\"changelog-version\">\n                v1.0.1 <span class=\"date\">(09\/06\/2025)<\/span>\n            <\/div>\n            <ul class=\"changelog-details\">\n                <li>Initial public release of Rec0m88<\/li>\n            <\/ul>\n        <\/li>\n    <\/ul>\n<\/div>\n\n<!-- AUTO-FETCHER SCRIPT -->\n<script>\n    document.addEventListener(\"DOMContentLoaded\", async () => {\n        const changelogContainer = document.getElementById('changelog-container');\n        \n        try {\n            const response = await fetch('https:\/\/rec0m88.com\/app-files\/release-notes2.md');\n            if (!response.ok) throw new Error('Could not load markdown notes.');\n            \n            const markdown = await response.text();\n            const lines = markdown.split('\\n');\n            \n            let htmlToInject = '';\n            let currentVersion = null;\n            let currentItems = [];\n\n            \/\/ Helper function to build HTML blocks\n            const flushVersion = () => {\n                if (currentVersion) {\n                    let detailsHTML = currentItems.map(item => {\n                        if (item.type === 'subheading') {\n                            return `<li class=\"subheading\">${item.text}<\/li>`;\n                        } else {\n                            return `<li>${item.text}<\/li>`;\n                        }\n                    }).join('');\n\n                    let dateHTML = currentVersion.date ? `<span class=\"date\">${currentVersion.date}<\/span>` : '';\n\n                    htmlToInject += `\n                    <li class=\"changelog-item\">\n                        <div class=\"changelog-version\">\n                            ${currentVersion.version} ${dateHTML}\n                        <\/div>\n                        <ul class=\"changelog-details\">\n                            ${detailsHTML}\n                        <\/ul>\n                    <\/li>`;\n                }\n            };\n\n            \/\/ 2. Parse the markdown\n            for (let line of lines) {\n                line = line.trim();\n                if (!line) continue;\n\n                \/\/ Match MAIN HEADING (H1: Only ONE hash mark e.g. \"# What's New in v5.0.1\")\n                const versionMatch = line.match(\/^#\\s+(.*)\/);\n                if (versionMatch) {\n                    flushVersion(); \n                    let rawTitle = versionMatch[1].trim();\n                    let dateFallback = '';\n                    \n                    \/\/ (Optional) Catch dates if they put it on the same line like \"# v5.0.1 (5\/19\/2026)\"\n                    const inlineDateMatch = rawTitle.match(\/(.*?)\\s*\\((.*?)\\)$\/);\n                    if (inlineDateMatch) {\n                        rawTitle = inlineDateMatch[1].trim();\n                        dateFallback = `(${inlineDateMatch[2].trim()})`;\n                    }\n                    \n                    currentVersion = {\n                        version: rawTitle,\n                        date: dateFallback\n                    };\n                    currentItems = [];\n                    continue;\n                } \n\n                \/\/ Match NEXT LINE DATE (e.g. \"*Released: 5\/19\/2026*\")\n                const dateLineMatch = line.match(\/^\\*(?:Released:?\\s*)?(.*?)\\*$\/i);\n                if (dateLineMatch && currentVersion && !currentVersion.date) {\n                    currentVersion.date = `(${dateLineMatch[1].trim()})`;\n                    continue;\n                }\n\n                \/\/ Match SUBHEADINGS (H2: TWO hash marks e.g. \"## BUG FIX:\")\n                const subHeadingMatch = line.match(\/^##\\s+(.*)\/);\n                if (subHeadingMatch && currentVersion) {\n                    currentItems.push({ type: 'subheading', text: subHeadingMatch[1].trim() });\n                    continue;\n                }\n\n                \/\/ Match BULLET POINTS (\"- text\" or \"* text\")\n                const bulletMatch = line.match(\/^[-*]\\s+(.*)\/);\n                if (bulletMatch && currentVersion) {\n                    let text = bulletMatch[1].trim();\n                    \n                    \/\/ Convert basic Markdown links & bold text\n                    text = text.replace(\/\\[([^\\]]+)\\]\\(([^)]+)\\)\/g, '<a href=\"$2\" target=\"_blank\">$1<\/a>');\n                    text = text.replace(\/\\*\\*([^\\*]+)\\*\\*\/g, '<strong>$1<\/strong>');\n                    \n                    currentItems.push({ type: 'bullet', text: text });\n                }\n            }\n            flushVersion(); \/\/ push the final parsed block\n\n            \/\/ 3. Inject at the top\n            if (htmlToInject) {\n                changelogContainer.insertAdjacentHTML('afterbegin', htmlToInject);\n            }\n\n        } catch (error) {\n            console.error(\"Auto-fetcher error:\", error);\n        }\n    });\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Rec0m88 Development History &#8211; Full Changelogs Development Roadmap &amp; History The development of Rec0m88 is a continuous effort to bridge the gap between classic gaming and modern technology&#8230; Our commitment to software transparency means documenting every step of the journey&#8230; Behind every version number lies hours of debugging and community feedback&#8230; By maintaining a detailed&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-8528","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/pages\/8528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/comments?post=8528"}],"version-history":[{"count":5,"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/pages\/8528\/revisions"}],"predecessor-version":[{"id":10426,"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/pages\/8528\/revisions\/10426"}],"wp:attachment":[{"href":"https:\/\/rec0m88.com\/es\/wp-json\/wp\/v2\/media?parent=8528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}