u/r_retrohacking_mod2

Image 1 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
Image 2 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
Image 3 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
Image 4 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
Image 5 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
Image 6 — [DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds
▲ 16 r/homebrew+1 crossposts

[DS]Building a custom Engine Dashboard for My Mx-5 Miata on a Nintendo Ds

Hey everyone,

I'm a proud owner of a classic Mazda MX-5 Miata, and instead of installing modern aftermarket gauges that ruin the 90s interior look, I decided to give my old Nintendo DS Lite a permanent home on my dashboard.

The DS receives UDP packets from an ESP32 in the engine bay (reading Oil Temp, Oil Pressure and coolant Temp.) and displays everything in real-time. I'm writing this entirely in C using devkitARM and the gl2d library.

To keep the memory footprint extremely low and ensure a locked 60 FPS, I am drawing almost all UI elements, gauges, and graphs directly via code loops (glBox, glLine, etc.). I am using spritesheets only for the animated 3D car models (like the G-Force indicator and startup sequence); absolutely everything else is code-rendered.

However, I've hit a major roadblock regarding the Dual-Screen rendering and I'm hoping someone can help me Out.

Since the DS only has one 3D core, I am using the standard Display Capture method to achieve hardware-accelerated rendering on both screens. My main loop alternates rendering between the top and bottom screen every frame:

swiWaitForVBlank();

while(REG_DISPCAPCNT & DCAP_ENABLE);

if((frame & 1) == 0) {

lcdMainOnBottom();

vramSetBankC(VRAM_C_LCD);

vramSetBankD(VRAM_D_SUB_SPRITE);

REG_DISPCAPCNT = DCAP_BANK(2) | DCAP_ENABLE | DCAP_SIZE(3);

drawDashboard();

} else {

lcdMainOnTop();

vramSetBankD(VRAM_D_LCD);

vramSetBankC(VRAM_C_SUB_BG);

REG_DISPCAPCNT = DCAP_BANK(3) | DCAP_ENABLE | DCAP_SIZE(3);

drawMenu();

}

glFlush(0);

The Bug: I am experiencing severel "screen swapping" issues (both screens freezing, or the top and bottom screen rapidly flickering/swapping back and forth).

This only happens when the main loop gets stalled by blocking operations:

When I open my internal "Data Logger" menu, which uses libfat to fopen and parse a large .csv file from the SD card.

When the WiFi connection to the ESP32 drops and Wifi_InitDefault() or Wifi_AutoConnect() tries to re-initialize the connection in the background.

It seems that whenever the CPU is blocked by SD I/O or WiFi, swiWaitForVBlank() goes out of sync with the physical refresh rate, causing the VRAM bank swapping and REG_DISPCAPCNT to completely mess up the frame parity.

My Question: What is the standard/best-practice way to handle heavy, blocking FAT/WiFi I/O without breaking the strict (frame & 1) VBlank alternation required for dual-screen 3D capture? Do I need to move the FAT reads to an asynchronous timer, or is there a way to safely "pause" the screen swapping hardware registers before initiating a heavy SD card read, and resume it afterwards without corrupting the VRAM banks?

Any advice on how to handle synchronous stalls while doing display captures would be highly appreciated!

u/Stackter — 16 hours ago
▲ 44 r/retrogamedev+1 crossposts

[Release] PSPalatro v0.8 - Balatro PSP Port Fork, now with Spectral Cards, Seals, Editions and more polish!

Hi everyone!

A while ago I shared my PSPalatro fork here after adding working saves to the PSP port of Balatro. Since then, I kept working on it and I’m happy to share a new release: PSPalatro v0.8.

This version adds a lot more Balatro features and polish compared to the previous release.

What’s new in v0.8:

  • Spectral cards are now implemented
  • Spectral booster packs are now available
  • Card seals are implemented:
    • Gold Seal
    • Red Seal
    • Blue Seal
    • Purple Seal
  • Card editions have been improved:
    • Foil
    • Holographic
    • Polychrome
    • Negative Jokers
  • Edition scoring behavior is closer to the original game
  • Added improved edition visuals
  • Added score flame effect when your current hand beats the blind
  • Added flame sound effect
  • Added pause/settings menu
  • Added optional debug tools setting
  • Improved native PSP save UI support
  • Improved save-safe audio handling
  • Updated README with the correct PSP folder layout

The correct folder structure on your PSP should be:

ms0:/PSP/GAME/PSPalatro/

├── EBOOT.PBP

├── Balatro.exe

├── settings.ini

└── editions.png

IMPORTANT: You still need to provide your own legally obtained Windows Balatro.exe. This project does not include copyrighted Balatro assets or game files.

You can download the v0.8 release here: https://github.com/Luxotick/pspalatro/releases/tag/v0.8

Source code: https://github.com/Luxotick/pspalatro

This is still a work in progress, so bugs and missing behavior are expected. If you test it on real PSP hardware, feedback is very welcome.

Huge thanks to Sérgio/internalregister for the original PSPalatro foundation, and thanks to OniMock for major help and contributions.

Hope you enjoy it!

reddit.com
u/DepartureFormal9719 — 1 day ago
▲ 8 r/gameboymods+2 crossposts

I made a free Windows tool that converts MIDI files to hUGETracker .uge format

I made a free Windows tool that converts MIDI files to hUGETracker .uge format, would love feedback!

Hey! I've been working on a GB/GBC homebrew game (variant Sudoku with German Whispers, Killer cages, Thermometers, etc.) and needed to get some MIDI files into hUGETracker. Didn't want to spend $10 on an app for a small side project, so I just built one.

MIDI to .uge Converter is a free, standalone Windows app (no Python needed) that converts standard .mid files into .uge files ready to open in hUGETracker.

Features:

  • Pitch-based automatic voice splitting across all 4 GB channels
  • Per-channel octave shift controls via a clean GUI
  • Configurable BPM + song metadata (title, artist, comment)
  • Auto-names output based on input filename
  • ~14MB standalone .exe, Windows 10+ (Sorry, no Mac version yet)

Download + full writeup: https://maxentiusplays.com/midi-to-uge-converter/

I'd genuinely love feedback of any kind, bugs you hit, features you wish existed, or just whether this fills a gap for you. If you've been doing the MIDI to GB music pipeline differently, I'm also curious what your workflow looks like.

As a note, my goal was to create something light weight, no frills, I didn't need expanded functionality, something basic enough that just worked.

Thanks!

reddit.com
u/Mr_Economical — 1 day ago
▲ 53 r/DOS+1 crossposts

Software Development on DOS

Is anyone here doing actual software development on DOS. I assume not commercial, but for their own usage.

If so, what version of DOS and what language?

reddit.com
u/r_retrohacking_mod2 — 3 days ago
▲ 33 r/retrogamedev+2 crossposts

New GBA cartridge game releasing in 2026, free demo now playable on real hardware!

https://preview.redd.it/nqekx4wkzx1h1.png?width=1254&format=png&auto=webp&s=1b4b873fde6acc4772ea7b3b489455dd6ad54db1

First post on this sub.
We're a small French studio (Neofid Studios) releasing a new action-platformer on actual Game Boy Advance cartridges later this year.

Demons of Asteborg DX is a 2D action-platformer with a dark medieval fantasy setting, think Castlevania-meets-Ghouls'n Ghosts on real Game Boy Advance hardware.
You play Gareth, a mysterious knight on a quest through a kingdom overrun by demonic creatures.

The demo is publicly available and runs on real GBA via flash cart, or just in any GBA emulator if you want to try quickly.

The cartridges are being manufactured in France by RetroElektronik (partner studio we've worked with on previous releases).

Demo: https://neofidstudios.itch.io/demons-of-asteborg-dx
Pre-order: https://www.kunekune.fr/demons-of-asteborg-dx

Open to questions about the GBA dev process or anything 😃

reddit.com
u/Demons_of_Asteborg — 3 days ago
▲ 19 r/NDSHacks+1 crossposts

Blogpost: How I made a Nintendo DS ROM that can modify itself

Hey everyone! A few years ago I made a small PoC about a Nintendo DS ROM editor that runs on the Nintendo DS itself, which can be used to edit textures, sounds or dialogs of any other ROM (technically including the editor itself). It's a piece of DS homebrew made using C++.

I've just written a detailed blog post on the process of making this PoC, hope you guys enjoy it!

xortroll.github.io
u/r_retrohacking_mod2 — 4 days ago
▲ 847 r/retrogamedev+3 crossposts

POV: You’re building your dream PS1 game

Your character be like “oh s*** here we go again”

u/izzy88izzy — 3 days ago

Build Game Boy Advance ROMs with Rust: Lesson 1 - Setup and Pixels

This tutorial will show you how to setup a Rust project that builds a basic rom which runs on the Game Boy Advance. It assumes you already know the basics of Rust and are familiar with software development.

Most existing tutorials are in C/C++ (Kyle Halladay's and Tonc are excellent) so I wanted to make a Rust version.

Feedback would be appreciated on the tutorial itself, pacing, or if you encounter any issues with setup. If you get it setup and learned something along the way, would love to hear about that also.

jonahnestrick.com
u/r_retrohacking_mod2 — 6 days ago

Any love for point and click adventure games?

I recently founded my own little company to develop games, with a focus on retro and especially point and click adventures (I dunno if advertising is allowed here so I'll refrain from posting the Kickstarter link).

Just wondering if there's still interest in that style of game on Amiga. The above screenshots are from the EGA version (I'm on my way to Fantasy Basel and those are the only screenshots on my phone) but the final game will have builds for OCS/ECS and AGA, including a special build for lightly upgraded Amiga 500/Amiga 1000 models (aiming for 8 MB of FastRAM and 512K chipmem). MorphOS and AROS will also be supported.

https://www.kickstarter.com/projects/happy-ferret/tomas-king-of-rejection/

u/r_retrohacking_mod2 — 6 days ago

​[Release] Jagged Alliance 2 is finally playable completely native on Android! Based on JA2 Stracciatella, fully optimized touch controls, and supports up to Android 16! JA2 Reborn

u/r_retrohacking_mod2 — 6 days ago
▲ 45 r/retrogamedev+1 crossposts

PSP's Virtual Mobile Engine: more than a simple DSP, a reconfigurable hardware architecture

Hello, I'm sharing this with you. I recently figured out how to work with the VME2, a type of CGRA implemented on Sony PSP hardware. This page is an attempt to document its datapath flow, opcodes, DSP capabilities, and the structure of the related Processing Elements.

It's a sort of vector-like engine to which we provide context / a small configuration bitstream. In this sense, it is a coarse-grained reconfigurable architecture with the ability to be dynamically reconfigured at the level of individual datapath nodes, allowing runtime per-node updates (such as modifying operands or PE behavior) without reloading the full context.

I still have a lot to do on it, but processing streams of data through its pipeline has been confirmed. You'll be able to find a library and a first related sample code on my GitHub.

Thanks for reading!

github.com
u/mcidclan — 8 days ago