ROM Detail View - Press Y on any ROM to preview scraped box art, preview images, and synopsis text. Status badges (BOX/PRV/TXT) show what’s been scraped at a glance.
Reliable Scraping Cancellation - Press B during batch scraping to cancel immediately. No more waiting — response is instant.
Performance Optimizations
Pre-allocated frame buffer (no more ~1.2MB allocation per frame)
Image & logo caching — media loads once, served from memory after that
Double-buffered rendering eliminates screen flash on transitions
Connection pooling for HTTP requests
Modern UI - Dark theme with amber/gold accent, system logos inline, color-coded status badges, progress bar with ETA, pill-shaped controls.
Enhanced Navigation - Page jumping with L1/R1 (by page) and L2/R2 (by 100) for quick browsing through large ROM collections.
Image Mask Processing - Apply custom PNG overlays to box art and preview images for consistent borders and frames.
Absolutely LOVE Artie. I have scraped thousands of roms with it. I have 1 minor bug for you and 1 small feature request
Tiny Bug - The system name display at the top left gets cut off for long system names.
Feature request - When Artie is scraping a large directory, say 500 roms… it can take a long time. It would be nice if there were a way to “Stop” the scraping process so you can break out of it and come back to it later on. The only way I could figure to stop it was the safe reboot hotkey.
Maybe someone could help. I’m running golden goose on a 34xxsp and migrsted metadata to sd2. So, artie will only run when i put it in sd1’s application folder. In sd2 it just hamgs loading. Also, once it does run it saves all artwork to sd1 instead of sd2 and it will only.then display if i synch the sd1 catalog to sd2. So, two questions.
Can i run Artie of of sd2?
And/Or
Can artie save scrapped artwork straight to sd2.
I’ve tried various config edits even going as far as chaning all catalog calls to “sdcard” from “mmc.” No luck.
40xxh on 2508.4 Loose Goose, application does not open, shows “loading application” for 2 minutes then nothing happens.
New update 2601.0 Jacaranda just came out, maybe update for this one?
ROM Detail View — Press Y on any ROM to preview scraped box art, preview images, and synopsis text. Scrape directly from the detail view with A. (424716d)
Reliable Scraping Cancellation — Press B during batch scraping to cancel immediately. Worker threads check cancellation between API calls and bail out via _ScrapeCancelledError. (9819167, bf89235)
Non-blocking Input — New check_input_nonblocking with event buffer draining so key presses are never missed behind sync events. (8a6ee0a)
Persistent evdev File Descriptor — start_nonblocking()/stop_nonblocking() keep a persistent fd open during scraping so kernel-queued input events are never lost between polls. (d2e1768)
Performance
Pre-allocated Frame Buffer — Reuses a single ~1.2MB image buffer per frame instead of allocating a new one each render cycle. (637393f)
Image Cache — ROM detail media thumbnails are loaded, resized, and cached in memory. Subsequent views skip disk I/O and decoding. (637393f)
Simplified Cache Retrieval — Condensed cache function call parameters. (1f40332)
UI / UX
Modern Dark UI — Amber/gold accent theme, system logos inline, color-coded status badges (B/P/T), progress bar with ETA, pill-shaped control buttons. (7ecc877)
Updated Button Layout — ROM screen now shows ST/All, A/Get, X/Del, Y/View, B/Back, M/Exit. (424716d)
Updated Screenshots — New screenshots reflecting the v3.0 UI. (7ecc877)
Bug Fixes
Scraping Cancellation Not Working — Root cause: Linux evdev queues events per open fd; opening/closing a new fd each poll lost events generated in between. Fixed with persistent fd. (d2e1768)
Missed Key Presses — check_input_nonblocking previously read only one event; sync events ahead of key presses caused buttons to be missed. Now drains all pending events. (bf89235, 8a6ee0a)
CI “No Jobs Were Run” Emails — main.yml had all jobs commented out, triggering empty workflow emails on every push. Uncommented the lint job. (6955e4a)
API / Backend
Remove Base64 Encoding for Credentials — Credentials are now passed directly, removing unnecessary encoding layer. (2c678f6)
Remove Hash Functionality — Simplified search API by removing ROM hash-based lookups. (48ff08a)
Sanitize Log Credentials — URLs and exceptions are sanitized to prevent credential leaks in logs. (PR #39, 9201d87)