Skip to content

NocashPrint: Fix can't print from ITCM/DTCM - #2715

Open
Prof9 wants to merge 1 commit into
melonDS-emu:masterfrom
Prof9:master
Open

NocashPrint: Fix can't print from ITCM/DTCM#2715
Prof9 wants to merge 1 commit into
melonDS-emu:masterfrom
Prof9:master

Conversation

@Prof9

@Prof9 Prof9 commented Jul 30, 2026

Copy link
Copy Markdown

No$gba defines a printing mechanism using pseudo IO ports, which melonDS also supports. In No$gba, printing a string in TCM works fine, but in melonDS it doesn't (yields an unknown arm9 read warning).

This happens because melon effectively emulates the read as a bus read, calling NDS::ArmXRead8 which skips the TCM check (which is implemented in the ARM module). This PR changes it to a read via CPU, which defers to a bus read if the address is not in TCM.

This does have a side effect of updating DataCycles in the ARM instance, but I don't think this should be a problem here? It will also cause a data abort if the address being printed is not mapped , but I don't think that's a use case. Debug printing is a development feature anyway.

Reference: https://problemkaputt.de/gbatek.htm#dsdebugregistersemulatordevkits

@RSDuck

RSDuck commented Jul 30, 2026

Copy link
Copy Markdown
Member

we probably need a separate debug memory read/write function at some point for the GDB interface as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants