The R36S has become one of the default answers whenever someone asks how to get into retro handheld gaming without spending real money. It is cheap, it is everywhere on Amazon and AliExpress, and out of the box its stock firmware is barely usable. The fix almost everyone recommends is the same: wipe the stock software and flash ArkOS or one of its actively maintained forks, the Linux-based emulation frontend lineage that turns the R36S into something closer to a proper handheld. That recommendation shifted in 2025 and 2026, though — the R36S community ArkOS build was officially archived on June 9, 2026, with Techtactician’s coverage pointing flashers toward dArkOSRE-R36 and ArkOS4Clone instead. This tutorial walks through that process end to end — picking the right firmware build among the currently maintained options, flashing it correctly, loading ROMs without breaking the EmulationStation front end, adding PortMaster, and fixing the problems that trip up most first-time flashers. Expect to spend roughly 90 minutes if this is your first time, less if you have flashed a Raspberry Pi or Steam Deck image before.
Don't miss new tech stories on Google
Add Tech Insider once in the Google app and our stories appear in your news suggestions.
What Is the R36S, and Why Flash Custom Firmware?
The R36S is a budget clamshell-style retro handheld built around the Rockchip RK3326, a quad-core ARM Cortex-A35 chip clocked up to roughly 1.5GHz paired with a Mali-G31 GPU and 1GB of DDR3L RAM. It ships with a 3.5-inch IPS display at 640×480 resolution in a 4:3 aspect ratio, which matches the native output of most pre-PS2-era consoles almost pixel for pixel. Two microSD slots handle storage — conventionally labeled TF1 for the operating system and TF2 for game data — and a removable battery, commonly cited in the 3,000mAh to 3,500mAh range depending on the specific manufacturing batch, gets most users somewhere between four and six hours of play per charge.
Because the R36S is sold under dozens of different storefront names by dozens of different factories, it is really a hardware reference design rather than a single branded product. That is exactly why custom firmware matters so much here: the stock software varies wildly in quality between units, while ArkOS and its derivatives are built and maintained against the shared RK3326 hardware, not against any one factory’s skin. Flashing custom firmware standardizes the experience, adds proper save states, RetroAchievements support, and PortMaster, and generally makes the device several times more pleasant to use than whatever shipped on the included card.
One quirk worth knowing before you start: most R36S units have no built-in Wi-Fi or Bluetooth. Any step involving wireless networking depends on plugging in a compatible USB OTG Wi-Fi adapter, not toggling a setting that magically works out of the box. Keep that in mind when you get to the networking step below, because it is the single most common point of confusion in ArkOS setup guides.
How ArkOS Compares to Stock Firmware
The stock firmware that ships on most R36S units is a lightweight Android-adjacent or bare-bones Linux menu wrapped around a handful of pre-loaded emulator binaries. It works, technically, but it is usually missing consistent save states, has no unified controller configuration across systems, and frequently ships with a small, oddly-curated set of demo ROMs baked in rather than a clean, empty library ready for your own files. ArkOS replaces that entire stack with EmulationStation as the front end and RetroArch as the emulation core, which is the same combination used across dozens of other handhelds, meaning the skills and troubleshooting knowledge you build here transfer directly if you ever pick up an Anbernic, Retroid, or other RK-chip device down the line.
The practical difference shows up immediately in day-to-day use: proper per-game save states instead of a single overwritten slot, consistent hotkeys across every emulated system instead of a different scheme per core, a real settings menu for brightness and volume, and access to community tools like PortMaster and RetroAchievements that stock firmware simply does not include. For a device this inexpensive, that gap between stock and flashed is larger than on almost any other handheld category.
Prerequisites: Hardware, Software, and Versions You Need
Gather everything below before you start. Flashing goes faster when you are not stopping halfway through to order a part.
| Item | Recommendation | Notes |
|---|---|---|
| R36S handheld | Any RK3326-based unit | Confirm genuine RK3326 board before flashing (Step 1) |
| microSD card (OS) | 32GB–64GB, Class 10 / U1 or better | A reputable brand matters more here than raw capacity — cheap fake-capacity cards are a leading cause of corrupted installs |
| microSD card (games) | 128GB–256GB, exFAT-formatted | Optional if you use a single-card setup; recommended for larger ROM libraries |
| Card reader | USB-A or USB-C, UHS-I compatible | Built-in laptop SD slots often work but are frequently slower |
| Imaging tool | balenaEtcher, Win32 Disk Imager, Rufus, or Raspberry Pi Imager | All are free; write time runs roughly 5–15 minutes regardless of which one you pick |
| Firmware image | ArkOS, dArkOSRE, or ROCKNIX | Pick per Step 2 below — download the RG351MP build for R36S hardware |
| USB OTG Wi-Fi adapter | RTL8188-chipset dongles are the most widely reported to work | Only needed if you want online updates, RetroAchievements, or netplay |
| PC or Mac | Any modern machine with a card reader | Used only for flashing and file transfers |
You will also want your own legally-owned ROM files ready to copy over later, and roughly 90 minutes of uninterrupted time for the full setup — longer if you are also sorting a large ROM collection into per-system folders.
On the microSD card choice specifically: this is the part of the shopping list people cut corners on, and it is also the part most likely to ruin the entire setup. Retro handheld communities have flagged counterfeit-capacity cards as a recurring problem on marketplaces where the R36S itself is commonly sold, so buy your cards from a retailer with real return policies rather than the cheapest listing you can find. A genuine 64GB card from a known brand will outperform a fake 256GB card every time, because the fake card silently starts overwriting old data once you pass its real, much smaller capacity — and by the time you notice, your save files are already corrupted.
Step 1: Confirm Your R36S Is Genuine Before You Flash Anything
Because the R36S is manufactured by multiple third-party factories and resold under different names, board revisions and panel variants differ between units, even when the outer shell looks identical. Before flashing, open a community hardware reference such as the R36S wiki pages maintained by the ArkOS community and compare your unit’s motherboard markings, screen ribbon connector, and button layout against the documented variants. This step matters because some firmware builds target a specific panel revision, and flashing the wrong variant can leave you with a black screen or inverted colors after first boot, which is frequently a device tree blob (DTB) mismatch rather than the wrong firmware entirely — more on that in Step 4.
If you bought your unit from a marketplace listing rather than a known retailer, it is worth cracking open the case (most R36S shells use standard Phillips screws) just to photograph the board before you flash anything. That photo becomes your reference if you need to ask the community which firmware branch matches your hardware. Skipping this step is the number one reason first-time flashers end up with a bricked-looking device that is actually fine — it just got the wrong display driver.
Checking Board Revision Without Opening the Case
If you would rather not open the shell before your first flash, there is a lower-risk option: boot the stock firmware once, note anything the boot splash or settings menu reveals about the board, and check the stock software’s version string if one is shown. Community hardware wikis maintain running lists of which stock software builds correspond to which board revisions, so cross-referencing that string can save you from opening the case entirely. It is not foolproof — factories do change internals without updating the splash screen — but it catches the majority of cases and is worth trying first if you are hesitant to void a fresh unit’s seal.
Step 2: Choose Your Firmware — ArkOS vs dArkOSRE vs ROCKNIX
There is no single “correct” firmware for the R36S anymore, and the roster of actively maintained branches has gotten shorter since the original R36S community ArkOS build was archived on June 9, 2026 — what is left is a handful of forks still receiving updates, each with tradeoffs.
| Firmware | Base | Best for | Tradeoff |
|---|---|---|---|
| ArkOS | Original RK3326 community build, distributed as the RG351MP image for R36S hardware | Users who want the most widely documented setup with the largest volume of existing guides | Update cadence depends on volunteer maintainers |
| dArkOSRE | Community fork of dArkOS, maintained on GitHub under southoz/dArkOSRE-R36 | Users hitting compatibility issues on a specific R36S board/panel revision | Smaller community, fewer third-party theme packs |
| ROCKNIX | Broader multi-device Linux distribution covering many RK-series handhelds | Users who own more than one RK-chip handheld and want a consistent interface across devices | Slightly steeper learning curve than ArkOS’s EmulationStation-first design |
| muOS | Actively expanding RK-device distribution | Users specifically chasing muOS’s interface and performance tuning | Check the current muOS device compatibility list before flashing — RK3326/R36S support has varied by release, so confirm your exact board is listed first |
For a first build, ArkOS used to be the safest default simply because it had the largest body of community documentation, but that calculus changed on June 9, 2026, when the R36S community ArkOS build was officially archived. Techtactician’s June 2026 reporting confirmed that ArkOS-R3XS is no longer maintained and now directs flashers toward dArkOSRE-R36 and ArkOS4Clone as the two actively developed successors. If you hit a black-screen or panel-mismatch issue tied to your specific board revision on either fork, dArkOSRE-R36 is the most common pick, since its maintainers actively track per-motherboard compatibility. If you are also running other RK-chip handhelds like the Anbernic RG35XX line, ROCKNIX’s shared interface across devices can be worth the extra setup complexity. Whichever you pick, always download from the project’s official GitHub releases page or a well-established community maintainer that current guides specifically name, rather than an unverified reupload — random mirrors are a common source of tampered or corrupted builds.
Why ArkOS Has No Dedicated R36S Build
One detail trips up first-time flashers in 2026: none of these firmware projects publish a release file named specifically for the R36S. The R36S shares its RK3326 chipset closely enough with the Anbernic RG351MP that ArkOS and its forks reuse the RG351MP build as the base image, rather than maintaining a separate R36S-branded release. Current guides point to that RG351MP image on the official ArkOS releases page, though the community-maintained release under the AeolusUX GitHub account is no longer being updated — AeolusUX archived its R36S-clone ArkOS project in August 2025, with ArkOS 2.0, dated August 11, 2025, standing as its final listed release for K36 and R36S clones. A file search for “R36S” will come up empty, and that is expected — RG351MP is the file you want, and Step 4 covers the one R36S-specific swap it still needs.
Step 3: Download and Verify the Firmware Image
Download the latest release for your chosen firmware from its official repository. Do not grab the first .img file you find on a video description or forum post — go to the source repository directly. Once downloaded, verify the file’s SHA-256 checksum against the value published on the release page before you flash it. A mismatched checksum almost always means a corrupted download, not a bad card, and catching it here saves you from debugging a “successful” flash that was broken from the start.
# macOS / Linux
shasum -a 256 arkos-r36s-latest.img.gz
# Windows PowerShell
Get-FileHash .\arkos-r36s-latest.img.gz -Algorithm SHA256
# Compare the output against the checksum published on the
# firmware project's GitHub release page. If they don't match,
# delete the file and re-download it.
If your download comes as a .zip or .gz archive, extract it now so you have a raw .img file ready for the imaging tool in the next step.
Matching the RG351MP Build to Your R36S
Because you are downloading an RG351MP-labeled image rather than an R36S-specific one, confirm RG351MP is the correct selection on whichever release page you use — official ArkOS, or the archived AeolusUX community release, whose build never moved past the ArkOS 2.0 image it shipped in August 2025. The SHA-256 process itself does not change based on source; what changes is which file and hash you are comparing, so copy the checksum from that same release page rather than an older bookmark.
Step 4: Flash the Image to microSD
Insert your OS microSD card into your reader and open balenaEtcher or Win32 Disk Imager. This is the step where mistakes are hardest to undo, so slow down and double-check the target drive letter or volume name before clicking anything that writes data — imaging software cannot tell the difference between your R36S card and your PC’s internal drive, and it will happily overwrite whatever you point it at.
# balenaEtcher workflow (GUI, cross-platform)
1. Open balenaEtcher
2. Click "Flash from file" and select your .img file
3. Click "Select target" and confirm it shows your microSD card's
correct size (e.g. 32GB) -- NOT your internal PC drive
4. Click "Flash!" and wait for the verify pass to complete
5. Safely eject the card when Etcher confirms success
Etcher’s built-in verification pass re-reads the card after writing and compares it against the source image, which catches most bad-card and bad-reader failures automatically. If verification fails, try a different USB port, a different card reader, or a different physical card before assuming the firmware download itself is at fault.
Rufus and Raspberry Pi Imager as Etcher Alternatives
balenaEtcher is not the only option. Current R36S flashing guides just as often point to Rufus (Windows-only) or the Raspberry Pi Imager (Windows, macOS, and Linux) instead. All three write the raw .img file to the card and verify it afterward, so the choice mostly comes down to interface preference. Across any of them, actual write time typically runs 5 to 15 minutes, depending on image size and how fast your card and reader combination sustains writes.
Swapping the DTB File Before First Boot
This is the step most first-time flashers skip, and it is the single most common cause of the black-screen problem referenced in Step 1 and in the troubleshooting section below. Because the image you just flashed targets the RG351MP rather than the R36S specifically, its boot partition ships with a device tree blob tuned for the wrong panel. Before powering the card on for the first time, mount the freshly-flashed card’s boot partition on your PC and replace the device tree blob with the R36S-specific file, rk3326-rg351mp-linux.dtb, which current ArkOS and AeolusUX release packages include alongside the main image. Skip this swap and you will very likely get a black screen on first boot, even though the flash itself completed and verified successfully.
Step 5: Decide Between a One-Card and Two-Card Setup
ArkOS and its forks support running the entire system, EmulationStation, and ROM library off a single microSD card, or splitting the OS onto the TF1 slot and games onto a separate TF2 card. A single-card setup is simpler to manage and is fine for smaller libraries under roughly 30GB. A two-card setup keeps your OS install isolated from your game data, which matters more than it sounds: if you ever need to re-flash the OS after a bad update, a two-card setup means your ROMs, save files, and box art stay untouched on the second card the entire time.
If you are building a library that spans multiple console generations — NES through PS1, for instance — the two-card approach is worth the extra ten minutes of setup. Use a 32GB or 64GB card for TF1 and a 128GB or larger exFAT-formatted card for TF2.
Step 6: First Boot and Initial ArkOS Configuration
Insert the freshly-flashed card into the R36S (TF1 slot if using a two-card setup) and power on the device. First boot takes longer than subsequent boots because the firmware is expanding its filesystem to fill the card — do not interrupt this process or pull the battery, even if the screen appears to hang for a minute or two.
Once EmulationStation loads, you will be walked through a controller-mapping wizard that binds each physical button to its EmulationStation function. Go through it carefully rather than skipping it, since a rushed mapping here is a common reason people later report that a specific button does not respond correctly inside individual emulator cores. After mapping is complete, check the on-screen battery indicator, screen brightness setting, and audio output before doing anything else — these are the three most commonly misconfigured defaults on fresh installs.
What Normal First-Boot Behavior Looks Like
Filesystem expansion and an actual DTB-related black screen look similar for the first few seconds, so it helps to know what normal looks like: a boot logo, then roughly one to two minutes with the screen static or showing a progress indicator, then a drop into the controller-mapping wizard. A backlight with zero image, or a boot logo that never advances after several minutes, points back to the DTB swap in Step 4 rather than a filesystem still expanding.
Step 7: Add a USB Wi-Fi Adapter and Update ArkOS
Since the R36S has no integrated wireless hardware, plug a compatible USB OTG Wi-Fi adapter into the device’s USB-C port (using an OTG adapter cable if your unit doesn’t expose a full-size USB port directly). RTL8188-chipset dongles are the ones most frequently reported as working out of the box across ArkOS, dArkOSRE, and ROCKNIX, since Linux ships driver support for that chipset by default.
# From the ArkOS main menu:
1. Navigate to Wi-Fi settings
2. Select your network from the scanned list
3. Enter your password using the on-screen or physical controls
4. Confirm the connection status shows "Connected" before continuing
5. Open the Updater / Update ArkOS menu entry
6. Apply any available update and reboot when prompted
If the network list stays empty after multiple scans, the dongle’s chipset likely lacks driver support in your specific firmware build — this is a hardware compatibility issue, not a settings problem, and swapping to a known-working RTL8188 dongle resolves it in the overwhelming majority of reported cases.
Step 8: Load ROMs Through the EASYROMS Partition
ArkOS exposes a dedicated EASYROMS partition specifically so you can drag and drop game files from your PC without needing SSH or command-line tools. Connect the R36S to your computer via USB cable, and when prompted on the handheld’s screen, select the USB storage / EASYROMS mode. The card will mount on your PC as a normal removable drive with per-console folders already created.
EASYROMS/
├── gb/ # Game Boy
├── gba/ # Game Boy Advance
├── gbc/ # Game Boy Color
├── genesis/ # Sega Genesis / Mega Drive
├── n64/ # Nintendo 64
├── nes/ # NES
├── psx/ # PlayStation
├── snes/ # SNES
└── ... # additional folders per supported system
Drop your own legally-owned ROM files into the matching folder for each system, then safely eject the drive from your PC before disconnecting the cable. Back on the handheld, EmulationStation needs a rescan to pick up new files — either reboot, or use the in-menu “Update Gamelists” option if your build includes one. For large PS1 or Sega CD libraries, converting bin/cue files to a single compressed CHD file first keeps your card space in check; that conversion workflow is covered in our chdman ROM-to-CHD conversion guide.
BIOS Files Most Emulated Systems Still Require
ROMs alone are not enough for every system. PS1 emulation in particular needs BIOS files that ArkOS cannot legally ship on your behalf, so EASYROMS creates a dedicated bios folder for them — drop your own legally-obtained files there using the exact filenames RetroArch’s core documentation specifies, since a renamed file tends to fail silently rather than throwing a clear error. Most other pre-PS2 systems run BIOS-free, so this is really a PS1 concern rather than something to repeat per console.
Step 9: Map Controls and Configure RetroArch Cores Per System
ArkOS runs most emulation through RetroArch cores under the hood, even though EmulationStation is the front end you interact with day to day. Each console gets its own core, and the defaults are tuned conservatively so that weaker systems like N64 and PS1 run acceptably on the RK3326’s limited horsepower rather than chasing accuracy at the cost of frame rate.
Press the dedicated hotkey button for your build (labeling varies between ArkOS, dArkOSRE, and ROCKNIX, so check your specific firmware’s hotkey sheet) combined with Start to bring up the in-game RetroArch quick menu. From there you can swap cores per system, adjust save-state slots, and toggle features like rewind, which is convenient but does consume extra RAM on a device that only has 1GB to work with. If a specific N64 or PS1 title runs poorly, the RetroArch core options menu is where you adjust things like frameskip and resolution scaling before assuming the game simply will not run.
Picking the Right Core When More Than One Option Exists
For several older systems, ArkOS ships more than one usable core, and the default is not always the fastest option for the R36S’s specific hardware ceiling. NES and SNES generally have headroom to spare, so accuracy-focused cores are the better default there. PS1 and N64, by contrast, are where core choice actually matters: a lighter, performance-focused core will keep more titles at a playable frame rate than an accuracy-focused one, even if it sacrifices a small amount of visual fidelity. If a game stutters on the default core, checking the RetroArch core options menu for an alternate core assigned to that system is worth trying before adjusting any other setting.
Step 10: Install PortMaster for Native Ports
PortMaster is a community project that packages native Linux ports of open-source and indie engine remakes — games like Doom-engine ports, DevilutionX, and other homebrew-friendly titles — specifically for handhelds like the R36S. Unlike emulation, these run as native binaries, which means better performance and battery life for the games it supports.
1. Download the PortMaster installer script from portmaster.games
2. Copy PortMaster.zip into the "ports" folder on your ROMs card
3. Boot the R36S and launch PortMaster from the Ports section
in EmulationStation
4. Browse the in-app catalog and select a port to install
5. PortMaster will download and configure the port automatically;
launch it from the Ports menu once installation finishes
Because PortMaster ships as a self-updating tool once installed, re-running it periodically pulls in new supported titles without requiring a fresh firmware flash. This is one of the more reliable ways to add real playtime to the device beyond emulation.
Step 11: Set Up Save States, Backups, and Cloud Sync
Save states live in per-system folders alongside your ROMs, which means they are just as vulnerable to a corrupted card or accidental format as anything else on the device. Back them up regularly, ideally to a second location off the handheld entirely. If you have a home NAS or a cloud-sync tool already set up, an rclone or rsync job that mirrors your saves folder on a schedule is worth the ten minutes it takes to configure.
# Example: mirror save files from a mounted R36S card to a NAS folder
# (run from your PC after connecting the R36S via EASYROMS mode)
rsync -av --progress \
/Volumes/EASYROMS/saves/ \
/Volumes/NAS/r36s-backups/saves/
# Or with rclone, to sync to a cloud remote:
rclone sync /Volumes/EASYROMS/saves/ remote:r36s-backups/saves/ \
--progress
Run this after any extended play session, and definitely before attempting a firmware update or a switch between ArkOS, dArkOSRE, and ROCKNIX — save file formats and folder structures are not guaranteed to be compatible across firmware branches, so a backup you can restore from manually is your safety net if a switch goes badly.
It is also worth keeping a dated folder structure for your backups rather than overwriting the same destination every time, since a save file backed up after a corrupted state is still a corrupted save. Something as simple as appending the date to the destination folder name in the rsync command above gives you a rollback point if a bad save slips through before you notice.
Step 12: Tune Battery Life, Quick Resume, and Performance
With a roughly 3,000mAh to 3,500mAh battery and a power-hungry 1.5GHz quad-core chip, screen brightness is the single biggest lever you have over runtime. Dropping brightness from maximum to around 60–70% is usually the difference between four and six hours of play. If your build supports CPU governor settings, switching from “performance” to “ondemand” or “conservative” for lighter 8-bit and 16-bit systems extends battery life further without a noticeable hit to gameplay smoothness.
Quick-resume or sleep functionality (closing the device mid-game and picking back up later) works reliably on ArkOS for most systems up through SNES-era emulation, but can be inconsistent on N64 and PS1 cores depending on the specific title’s memory footprint. If a game refuses to resume cleanly from sleep, save a manual save state before closing the lid as a fallback.
Matching Governor Settings to What You’re Actually Playing
The right governor setting depends on what you are emulating in a given session, not just one global preference. For NES, SNES, Game Boy, and other 8-bit or 16-bit systems, “conservative” or “ondemand” rarely costs a noticeable frame. PS1 and N64 are the exception: if you are chasing a stable frame rate there, switching back to “performance” for that session trades battery life for smoothness, then switch back afterward rather than leaving performance on by default.
Step 13: Customize Themes and Bezels (Optional Polish)
Once the functional setup is done, EmulationStation themes and per-console bezel overlays are the easiest way to make your build feel finished. Most themes install by dropping a folder into the themes directory over USB, the same way you loaded ROMs in Step 8, then selecting the new theme from the UI Settings menu. Bezels — decorative frames that surround the 4:3 game image with console-appropriate artwork — are configured per system inside RetroArch’s video settings and are purely cosmetic, so feel free to skip this step entirely if you would rather spend the time playing.
5 Common Pitfalls When Setting Up ArkOS on the R36S
- Flashing without verifying the checksum. A silently corrupted download produces symptoms that look exactly like a bad flash or a defective card, sending people down the wrong troubleshooting path entirely. It takes thirty seconds to check and can save an entire evening of unnecessary re-flashing.
- Using a counterfeit-capacity microSD card. Cheap cards that report 128GB but physically hold far less will appear to work at first, then silently corrupt data once you exceed the real capacity. Buy from a brand you trust, and if a card’s price looks too good to be true relative to its advertised capacity, it almost certainly is.
- Pulling the card or battery during first boot. The filesystem-expansion process on first boot can take several minutes and looks like a freeze. Interrupting it is one of the most common causes of a card that needs to be completely re-flashed from scratch, wasting the time you already spent downloading and verifying the image.
- Assuming Wi-Fi is built in. Since the R36S has no integrated wireless hardware, skipping the USB OTG dongle step means online updates, RetroAchievements, and netplay simply will not work, and it is easy to mistake this for a software bug rather than a missing piece of hardware.
- Mixing firmware-specific save folders after switching branches. Copying a dArkOSRE save folder structure directly into an ArkOS install (or the reverse) can cause EmulationStation to misread save slots. Always back up saves before switching firmware branches, and import them deliberately rather than dragging the whole folder over.
- Overloading a single card with every ROM you own on day one. Loading a massive, unsorted ROM library before you have confirmed the basic setup works makes it much harder to isolate problems. Add a handful of games per system first, confirm everything boots and saves correctly, then bulk-load the rest.
Troubleshooting: 9 R36S and ArkOS Problems, Solved
1. Black screen after flashing. Check the device tree blob first: confirm the boot partition uses the R36S-specific rk3326-rg351mp-linux.dtb file from Step 4, since a missing or wrong DTB is the most common cause of this symptom. If that file is correct, the next suspect is a panel-driver mismatch — re-flash using a build documented as matching your R36S display variant, referencing the hardware wiki from Step 1. A backlight glow with no image points more toward a driver or DTB issue than dead hardware.
2. Device won’t power on at all. Confirm the battery has charge by leaving it plugged in for at least 30 minutes before trying again; some units ship with a battery too depleted to boot immediately out of the box. If the charging LED never lights up, try a different USB cable before assuming the port or battery has failed.
3. No audio in games. Check the volume level in the RetroArch quick menu separately from the system volume — the two are set independently, and RetroArch’s per-core audio can be muted even when the system-level volume is up. Some cores also default to a specific audio driver that does not match the R36S hardware; switching the audio driver in RetroArch’s settings resolves this for a small number of stubborn systems.
4. Wi-Fi network list stays empty. Your USB dongle’s chipset likely isn’t supported by the firmware’s built-in drivers. Switch to an RTL8188-based adapter, which has the broadest driver support across ArkOS, dArkOSRE, and ROCKNIX. If the dongle worked previously and suddenly stopped scanning, try re-seating it in the OTG adapter, since loose connections are common on cheap OTG cables.
5. N64 games run slowly or stutter. This is largely a hardware ceiling on the RK3326 rather than a misconfiguration. Try a lighter-weight RetroArch core, lower the internal resolution in core options, and expect that only lighter N64 titles will run consistently well. Titles with heavy geometry or high-resolution texture packs are simply outside what a 1.5GHz Cortex-A35 chip can push at a playable frame rate.
6. ROMs don’t show up after copying them over. EmulationStation needs a gamelist rescan. Reboot the device, or use the “Update Gamelists” menu option if your build exposes one, rather than assuming the files failed to copy. Also double-check the file extension matches what the system folder expects — a ROM with an unrecognized extension will sit in the folder invisibly without throwing an obvious error.
7. SD card errors or random corruption. Almost always traced back to a counterfeit-capacity card or a failing card reader used during the original flash. Re-flash onto a known-good, name-brand card and see whether the problem persists before troubleshooting anything else. If corruption keeps recurring even on a trusted card, suspect the card reader itself rather than repeatedly blaming the card.
8. Controller buttons feel swapped or unresponsive in specific cores. Redo the controller-mapping wizard from Step 6 rather than trying to fix it per-core, since a bad initial mapping propagates into every system’s default control scheme. If only one specific core misbehaves after a clean remap, check that core’s individual input settings, since a handful of RetroArch cores maintain their own override on top of the global mapping.
9. EmulationStation crashes or restarts unexpectedly. This is most often triggered by a corrupted gamelist.xml file after an interrupted rescan. Deleting the affected system’s gamelist.xml (EmulationStation will regenerate it) usually resolves the crash without losing your actual ROM files or save states.
Advanced Tips: Overclocking, RetroAchievements, and Multi-Console Builds
Once the core setup is stable, a few advanced tweaks are worth exploring. Some ArkOS and ROCKNIX builds expose a CPU overclocking option in the system settings menu, which can meaningfully improve N64 and PS1 frame rates at the cost of extra heat and reduced battery life — treat any overclock as experimental and watch for thermal throttling or instability rather than assuming it is safe long-term. RetroAchievements integration, when enabled and logged in through the network settings, adds a layer of unlockable goals to supported ROMs and is one of the better reasons to keep the USB Wi-Fi dongle handy beyond just downloading firmware updates.
If you own more than one RK3326-family handheld, standardizing on ROCKNIX across devices means your controller mappings, themes, and save-file structure stay consistent, which matters more than it sounds once you are juggling saves between two or three handhelds. For anyone building a library that spans dozens of systems, our EmuDeck vs RetroDECK vs Lakka comparison is a useful reference if you also run emulation on a more powerful PC or Steam Deck alongside the R36S, since ROM libraries and save conventions often need to move between the two.
Keeping Multiple R36S Units in Sync
If you are setting up more than one R36S — a common scenario for households buying a couple of units for kids, or anyone testing different firmware branches side by side — keep one card as a known-good master image after you finish configuring themes, cores, and controller mapping. Cloning that master card to additional cards with the same imaging tool used in Step 4 saves you from repeating the full configuration process on every unit, and it guarantees every device in the house behaves identically, which cuts down on troubleshooting confusion later when someone reports a bug that turns out to be specific to just one card’s settings.
A Complete Working Project: Automate Your R36S Build With One Script
Rather than repeating the checksum-verify-and-flash sequence manually every time you rebuild a card (useful when testing multiple firmware branches, or setting up several R36S units for a family), the script below wraps Steps 3 and 4 into a single repeatable command on macOS or Linux. It downloads a firmware image, verifies its checksum against a value you supply, and only proceeds to flash if the verification passes.
#!/usr/bin/env bash
# r36s-flash.sh — download, verify, and flash an R36S firmware image
# Usage: ./r36s-flash.sh
# Example: ./r36s-flash.sh https://example.com/arkos.img.gz \
# abc123... /dev/disk4
set -euo pipefail
IMAGE_URL="$1"
EXPECTED_SHA="$2"
TARGET_DEVICE="$3"
IMAGE_FILE="firmware-download.img.gz"
echo "Downloading firmware image..."
curl -L -o "$IMAGE_FILE" "$IMAGE_URL"
echo "Verifying checksum..."
ACTUAL_SHA=$(shasum -a 256 "$IMAGE_FILE" | awk '{print $1}')
if [ "$ACTUAL_SHA" != "$EXPECTED_SHA" ]; then
echo "ERROR: Checksum mismatch. Refusing to flash a corrupted image."
echo "Expected: $EXPECTED_SHA"
echo "Actual: $ACTUAL_SHA"
exit 1
fi
echo "Checksum verified. Extracting image..."
gunzip -k "$IMAGE_FILE"
echo "About to flash to $TARGET_DEVICE"
read -p "Confirm target device is correct and NOT your system disk. Type YES to continue: " CONFIRM
if [ "$CONFIRM" != "YES" ]; then
echo "Aborted by user."
exit 1
fi
echo "Flashing..."
sudo dd if="${IMAGE_FILE%.gz}" of="$TARGET_DEVICE" bs=4M status=progress conv=fsync
echo "Done. Safely eject the card before removing it."
This is intentionally conservative: it refuses to proceed on a checksum mismatch, and it forces an explicit typed confirmation before writing to any device, which is the single biggest safety gap in manual flashing. Treat the target device path as the most important variable in the entire tutorial — run diskutil list on macOS or lsblk on Linux beforehand to confirm exactly which device corresponds to your microSD card before running the script.
R36S vs Anbernic RG35XX vs Retroid Pocket Mini: How the Setup Compares
The R36S sits at the entry-level end of the retro handheld market, and the ArkOS-style flashing workflow described here is broadly similar across other RK-chip devices, though not identical.
| Device | Chipset | Firmware approach | Setup complexity |
|---|---|---|---|
| R36S (this guide) | Rockchip RK3326 | ArkOS / dArkOSRE / ROCKNIX via manual microSD flash | Moderate — manual flash and EASYROMS transfer required |
| Anbernic RG35XX family | Various Rockchip SoCs depending on model | Stock firmware is more polished out of the box; ROCKNIX still a popular alternative | Lower — stock firmware is usable without flashing for casual users |
| Retroid Pocket Mini | Higher-tier ARM SoC (varies by revision) | Runs a fuller Android build alongside emulation apps | Lower for emulation basics, higher if configuring Android-side apps and controller mapping |
If you are deciding between picking up an R36S versus a more polished alternative, our handheld comparison covering the Pocket S2, Odin 3, and Retroid Pocket 5 is a useful next read, and if your library grows large enough that you start managing it from a PC alongside the handheld, Steam ROM Manager is worth setting up to keep artwork and metadata consistent across devices. For anyone planning local multiplayer sessions once the build is done, our emulator netplay setup guide covers the extra networking steps needed for online co-op.
The practical takeaway is that the R36S is not competing on raw specs — the RK3326 is a modest chip even by budget-handheld standards, and devices like the RG35XX family or the Retroid Pocket Mini will out-emulate it on anything demanding. What the R36S offers instead is the lowest cost of entry into a fully custom, community-supported firmware ecosystem, and once ArkOS is flashed, the day-to-day experience of browsing a library, loading save states, and launching PortMaster titles feels close enough to pricier handhelds that the gap mostly shows up in the games that push past PS1-era hardware demands.
Frequently Asked Questions
Is flashing ArkOS on an R36S legal?
Yes. ArkOS, dArkOSRE, and ROCKNIX are all open-source community projects, and installing them on hardware you own is not restricted. Legality only becomes a concern with how you source ROM files, which should come from games you legally own.
Will flashing custom firmware void my warranty?
Most R36S sellers offer minimal warranty coverage to begin with, and flashing firmware to a swappable microSD card does not modify the hardware itself, so there is nothing physically altered that a seller could point to. Still, check your specific seller’s return policy before assuming coverage either way.
Do I need two microSD cards, or can I use just one?
One card works fine for smaller libraries. A two-card setup (Step 5) is worth the extra effort mainly if you plan to re-flash the OS periodically or are building a large, multi-console ROM collection you want protected from OS-level changes.
Why won’t my R36S connect to Wi-Fi?
The R36S has no built-in wireless hardware. You need a compatible USB OTG Wi-Fi adapter, and RTL8188-chipset dongles have the broadest driver support across ArkOS, dArkOSRE, and ROCKNIX.
Can the R36S emulate PS2 or GameCube games?
No. The RK3326’s Cortex-A35 cores and Mali-G31 GPU are built for pre-PS2-era systems. N64 and PS1 already push the hardware’s ceiling, and anything past that generation is outside its practical range.
Which firmware should a first-time flasher pick?
ArkOS, because it has the largest body of existing documentation and troubleshooting threads. Switch to dArkOSRE only if you hit a board-specific compatibility issue, or to ROCKNIX if you specifically want a shared interface across multiple RK-chip handhelds.
How do I back up my save files before switching firmware?
Connect the R36S over USB in EASYROMS mode and copy the saves folder to your PC manually, or automate it with the rsync or rclone commands in Step 11. Always do this before attempting to switch between ArkOS, dArkOSRE, and ROCKNIX.
How long does the full ArkOS setup take from start to finish?
Budget around 90 minutes for a first attempt, covering download and checksum verification, flashing, first boot, Wi-Fi setup, and loading an initial batch of ROMs. Sorting a large existing ROM collection into per-system folders and downloading box art typically takes longer and is worth treating as a separate task rather than trying to finish everything in one sitting.





