Grid View
List View
Flow View
A new Share button
Have you ever wondered why news articles around the web have buttons to share to some of those other social sites, but not on Mastodon? There used to be a legitimate reason for this: unlike legacy social, Mastodon isn’t a single monolithic website you can link to; there are over 8,000 places where a person could have a Mastodon account! Their account could be on mastodon.social, the large, official server run by us. Or hachyderm.io, a sizeable server for tech enthusiasts operated by Nivenly. Or social.coop, a Mastodon server operated like a co-operative, where all members pay towards the costs and vote on decisions together. Some people run their own Mastodon servers, on their hardware at home. The distributed nature of the network is the greatest strength of Mastodon, but it also means that having a share button that takes you to the “correct” Mastodon server for your account, is a lot more involved than a simple hyperlink. Third party solutions have existed before now, but none of them have become ubiquitous, or easy to discover for website owners. This changes today, with our new official Share tool.
If you are a website owner, you can go to share.joinmastodon.org to find instructions describing how to integrate this on your website. Of course, we’ve also made the code available and open source, the same as the rest of Mastodon’s code. That means you can check how it works, and even host a share page of your own (you don’t need to host anything, but you can, if you don’t want to use the version that we’re hosting - it’s your choice).
To try out what sharing something looks like right now, click “Share on Mastodon” on this very blog post (there’s a button to do it, at the top right of the page). The tool itself works entirely in your browser: there is no tracking data, and it does not store any information on the server. If you have multiple Mastodon accounts, you can add more than one, and choose which one to share to when you post.
One more thing to mention here: back when we released Mastodon version 4.4, tucked away in the release notes, we mentioned that server administrators have the option to send a referrer header when a link is clicked. If the owner of your server has enabled that setting, then websites whose links get shared will see traffic coming from Mastodon - yet another way to share how the community is growing.
We’re looking forward to seeing the Mastodon logo on more websites - possibly, alongside other social media platforms; and maybe even as the “main” sharing link, like here on our blog.
Samsung Galaxy S26 Ultra Privacy Display
Privacy Display mode on the new Samsung Galaxy S26 Ultra turns off half the pixels to dim regions of the display and protect your privacy. However, Maximum Privacy Display mode turns some pixels back on, making the screen even more difficult to read from extreme angles.
Buonanotte 🌟🌟🌟
Uno degli scopi della guerra è sempre stato anche il testare nuove tecnologie
Mentre Dario Amodei fa il finto moralista (ma ottimo marketer) e Sam Altman fa i tripli carpiati su Twitter per giustificare il suo accordo con il pentagono, Oracle è stata autorizzata a utilizzare la IA generativa su dati militari. Ovviamente per un effetto migliore servono i dati di una guerra vera. A voi le conclusioni.
Buon appetito 🍷
Trigun Stargaze 08 (Psych! #Trigun)
<p>Trigun Stargaze 08 Crunchyroll Stupid Episode Numbering 20 SPOILER Summary/Synopsis In the past, Dr. Conrad notes how the treatment on the child Livio goes. In the present, Wolfwood gets a hatch on The Ark to open. The decompression blows him, Vash, and the bike out. They make a miraculous landing and flee through the desert.</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html">Trigun Stargaze 08 (Psych! #Trigun)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Thunderbird 148 sistema la posta che si bloccava e mette ordine tra i preferiti
Thunderbird 148.0 risolve il fastidioso bug della posta che si blocca dopo lo standby e introduce la gestione rapida dei messaggi preferiti.
VLC per Android 3.7.0: nuovo equalizzatore e backup delle impostazioni rivisto
VLC per Android si aggiorna alla versione 3.7.0 con un equalizzatore completamente riscritto e un sistema di backup più completo. Attenzione: i vecchi backup non sono più compatibili.
The Gamer Mentality and the Ultimate Power Trip Isekai: Overlord
Overlord adopts Kugane Maruyama’s light novel series. When YGGDRASIL’s servers, a deep-dive massively multiplayer online role playing game, are scheduled to be shut off, Momonga remains logged in to see the shutdown. He’s the guildmaster of Ainz Ooal Gown and spends the last few minutes of the game’s life in the guildhall of Nazarick. He...
Simeonewant to 1v1
Threema collabora con IBM Research per la crittografia post-quantistica
Threema annuncia una collaborazione con la divisione ricerca di IBM per implementare la crittografia post-quantistica nel suo protocollo. L'obiettivo è proteggere le comunicazioni dalle minacce dei futuri computer quantistici.
Fuori quanto è brutto il tempo
Mentre infuria la guerra, cospira gioiosa la resistenza!
Segnaliamo questo incontro a Napoli, con Kenobit, per presentare il suo libro, condividere pratiche di resistenza digitale, cenare insieme e... ballare su musica live a 8bit!
https://t.me/zero81/1608
Corso git 2026 a Milano il 10, 17 e 24 marzo. Il corso sarà tenuto completamente in italiano e sarà disponibile anche in streaming (a meno di problemi tecnici!).
Anche quest’anno il corso si svolgerà sotto forma di Passion in Action, e la frequenza (in presenza!) è riconosciuta mediante menzione sul Diploma Supplement. Per partecipare in presenza iscriviti al Passion in Action!
La registrazione è obbligatoria per la partecipazione in presenza!, mentre non è richiesta per seguire in streaming.
https://poul.org/courses/git/
Google ha eseguito la citazione dell'ICE che richiedeva i numeri di banca e di carta di credito di uno studente giornalista
Amandla Thomas-Johnson non seppe quante informazioni l'ICE avesse richiesto in una citazione fino a mesi dopo. Google non gli diede mai la possibilità di contestare la richiesta.
https://theintercept.com/2026/02/10/google-ice-subpoena-student-journalist/
Le app più scaricate su F-Droid: finalmente una classifica pubblica
Per la prima volta F-Droid ha una classifica pubblica delle app più scaricate. Termux in testa con 8 milioni, seguite da Aurora Store, Fennec e Fossify Gallery.
Buongiornoooo ☕
Quizzino della domenica: Parallelepipedo peculiare
Sapete collocare i numeri da 0 a 5 sulle facce di questo parallelepipedo?
RAM: il problema che non esiste
«voglio parlare di RAM, e del fatto che costa sempre di più, ma voglio farlo da un’altra angolazione: non da consumatore indignato perché il banco DDR5 è salito di prezzo, ma da uno che ha visto sistemi interi stare in piedi in meno memoria di quanta oggi spreca un singolo tab del browser.»
https://keinpfusch.net/ram-il-problema-che-non-esiste/
The DS cartridge interface: endless fun -- by Arisotura
Depending on your definition of fun, of course.
This is a bit of a pace change from all the recent OpenGL stuff: this is going to be some hardware infodumping slash juicy technical post. It all started with this bug report: Bug: Surviving High School (DSiWare) not booting.
Basically, this DSi game gets stuck on a black screen. This bug report piqued my interest, and oh boy, I had no idea what kind of rabbit hole it would be.
I first started by doing what I do in order to troubleshoot emulation bugs: track where each CPU is hanging around at, dump RAM, throw it into IDAPro. This gives me an idea what the game is doing, and hopefully provides a lead on the bug. Another possibility is to try modifying the cache timing constants to probe for a timing bug, but this made no difference here.
In this situation, the ARM9 was running an idle loop, but the ARM7 was stuck in an endless loop. Backtracking from this, I found that the game was reading the cartridge's chip ID, comparing it against the value stored at 0x02FFFC00, and panicking because the two were different. This code isn't atypical for a DS game...
But... wait?!
This game is a DSiWare title! There is no cartridge here.
No idea why it's reading the cartridge chip ID. Maybe the game was intended to be released in physical form? But in this case, the chip ID stored at 0x02FFFC00 is zero. When no cartridge is inserted, melonDS returns 0xFFFFFFFF instead of zero, hence one part of the bug.
Changing melonDS to return zero when no cartridge is inserted would fix the bug, but only when there's indeed no cartridge. If there's one, it will fail. This is because when booting a DSiWare title, the DSi menu forcefully powers off the cartridge if there's one inserted. melonDS doesn't emulate this bit.
This was the start of a longer journey, which ended up becoming its own branch, again. I don't like the way the cartridge code in melonDS has evolved over time.
On one hand, it was built quickly to answer simple needs in simpler times, and things were kind of just piled together. The object-oriented implementation of different cartridge types was a good idea, but they were kind of jammed into one code file, which turned into a bit of a mess.
With DSP HLE, I started experimenting with using subdirectories for specific areas of the emulator, rather than just dumping all the code files into one directory. I thought that doing the same for the cartridge code, after splitting it into separate files, was a good idea. Other areas of the emulator could use this kind of reorganization too, but one thing at a time.
On the other hand, the cartridge interface implementation in melonDS is technically wrong. This is where the fun begins.
In the DS, the cartridge interface is the piece of hardware that sits between the CPU and the cartridge. It can operate in two modes: ROM and SPI. ROM mode uses all the data lines to transfer one byte per cycle, and is typically used to access the ROM. SPI mode uses two data lines as a SPI interface, and is typically used to access the save memory.
The cartridge interface's registers are exposed to both ARM9 and ARM7, but only one CPU may use it at a given time - which CPU gets access is selected by bit 11 in EXMEMCNT. This is a rather important detail - if you happen to remember the old times, we've had a rather evil bug related to this.
I assumed that the cart interface was one set of registers, one hardware block, and that it was accessible to either one or the other CPU. But that's not how this works, actually.
Each CPU has its own register set, and its own cart interface hardware block. Technically, both sides are always functional, and can run transfers at the same time. The EXMEMCNT access right setting merely controls which one is connected to the actual cartridge - the other one will just be reading 0xFF bytes.
Another detail that is wrong is timings.
The way communication works in ROM mode is that you send a 8-byte command to the cartridge, and optionally send or receive data. For example, to retrieve the cart's chip ID, you send a command with the first byte set to 0xB8, then receive one data word: the chip ID.
Since the interface transfers one byte per cycle, it takes 8 cycle to transmit the full command, and 4 cycles per data word transferred. Since the cart's ROM chip may need extra time to fulfill the command, It is also possible to configure delays before the data transfer, and between each 512 bytes of data. The delays are specified in cycles. The duration of a cycle can be either 5 or 8 system cycles (ie 33.51 MHz).
Cartridge transfer delays in melonDS were modelled based on this. However, the model is missing one simple fact, and this ends up making cart transfers slower than they should be.
Jakly figured out that there is buffering involved. Basically, when a data word is transferred from the cartridge, it is placed in a buffer where it may be read out (at 0x04100010), and the DRQ signal is raised to notify the CPU (or DMA). However, the buffer can actually store two words worth of data, so when one data word is available, the interface can start transferring another word, rather than having to wait for the CPU to read out the data.
This buffering scheme is definitely worth implementing. In melonDS, the lack of buffering ends up adding about 400 cycles per 512 bytes of data transferred.
I remember that Rabbids Go Home suffers from a related issue. Basically, the game runs several ROM transfers and measures how long they take. The total needs to fall within a certain range, or the anti-piracy kicks in and the game freezes. So implementing buffering into melonDS might fix this.
I've also been finding out that write transfers (when transferring data to the cartridge) suffer from a couple hardware bugs, too. For example, under certain specific circumstances, the cart interface may accidentally send out one data word despite the buffer being empty. Some of this is worth documenting, but not necessarily worth emulating, atleast for now.
Then you have the DSi, which has two cartridge interfaces.
Yes, you read this right.
Basically, the DSi was planned to have two cartridge slots. In the end, Nintendo didn't like it, so it was scrapped.
The functionality is still part of the retail DSi. The second cartridge interface is completely functional. It even appears that the retail SoC has the required signals for a second cart slot, but they aren't connected to anything on the motherboard.
So how does this all work?
The second cart interface has the same register layout as the first one. The registers may be found at 0x040021A0 instead of 0x040001A0 (and 0x04102010 instead of 0x04100010 for the transfer buffer). There are also new IRQ lines for it (IRQ 26 and 27, instead of 19 and 20 respectively), a new DMA trigger line, and a separate CPU access setting in EXMEMCNT (bit 10). This cart interface can't be used with old DMA, but NDMA has an adequate trigger mode for it (0x05).
Register SCFG_MC was added to control the cartridge slots. Each cartridge may be turned on or off in software. This is used to reset the cartridge - initializing a DSi cartridge requires a reset, but the original interface provided no way to do that in software. SCFG_MC also serves to turn off the cartridge when loading DSiWare, for example.
An empty cartridge slot is also forced off by hardware. The nonexistant second slot is considered to always be empty, so it is always off.
It's also worth noting that the on/off status applies to the cartridge itself. The cart interface is functional regardless, but it will read 0x00 bytes if the cart is off.
SCFG_MC also provides another setting to swap the two cartridge interfaces. The point would be that games could be loaded from either cart slot without needing to know which slot is in use, and it would also guarantee backwards compatibility with DS games. This setting merely swaps the address at which each cart interface appears, as well as the IRQ lines and all.
So all in all, this requires some foundational changes to the way cartridge stuff is emulated in melonDS. As well as a lot of hardware testing to figure out every detail, answer every question that is raised along the way, and so on.
But, I hope, the improved accuracy will be worth it.
Fate/strange Fake 09 (Big Battle #StrangeFake)
<p>Fate/strange Fake 09 SPOILER Summary/Synopsis: The police of Clan Calatin watch horrified as an apparent regular policeman comes up and opens fire on Cerberus. The beast easily slaughters the cop. True Archer announces his intention to kill Tsubaki and fires an arrow. An annoyed Jester uses his magic to block the arrow. Meanwhile, Cerberus continues</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html">Fate/strange Fake 09 (Big Battle #StrangeFake)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Buonanotte 🌟🌟🌟
https://www.youtube.com/live/YW6_nLRvgQs?si=DHAZLUTu0wqZWtOt
Bandcamp semplifica la vita agli artisti: arrivano i crediti per gli autori
Bandcamp introduce i campi per autori, editori e codici delle opere: un aggiornamento utile per migliorare la gestione delle royalty e dei diritti digitali.
Flow 1.7.5: dirette, testi musicali ripensati e lotta al clickbait
Il frontend alternativo di YouTube si aggiorna con il supporto alle dirette, l'integrazione con DeArrow per rimuovere titoli e miniature clickbait, testi musicali più veloci e il backup delle impostazioni.
A ciascuno i suoi politici
anche i britannici guardano la pagliuzza negli occhi altrui!
I legislatori affermano che l'esercito statunitense ha utilizzato il laser per abbattere un drone della Border Protection
Giovedì, l'esercito statunitense ha utilizzato un laser per abbattere un drone "apparentemente minaccioso" che volava vicino al confine tra Stati Uniti e Messico. Si è scoperto che il drone apparteneva alla Customs and Border Protection, hanno affermato i legislatori.
https://apnews.com/article/military-laser-border-drone-texas-airport-55aaab7093f7d6dd174f909f3875001c
A new Share button
Have you ever wondered why news articles around the web have buttons to share to some of those other social sites, but not on Mastodon? There used to be a legitimate reason for this: unlike legacy social, Mastodon isn’t a single monolithic website you can link to; there are over 8,000 places where a person could have a Mastodon account! Their account could be on mastodon.social, the large, official server run by us. Or hachyderm.io, a sizeable server for tech enthusiasts operated by Nivenly. Or social.coop, a Mastodon server operated like a co-operative, where all members pay towards the costs and vote on decisions together. Some people run their own Mastodon servers, on their hardware at home. The distributed nature of the network is the greatest strength of Mastodon, but it also means that having a share button that takes you to the “correct” Mastodon server for your account, is a lot more involved than a simple hyperlink. Third party solutions have existed before now, but none of them have become ubiquitous, or easy to discover for website owners. This changes today, with our new official Share tool.
If you are a website owner, you can go to share.joinmastodon.org to find instructions describing how to integrate this on your website. Of course, we’ve also made the code available and open source, the same as the rest of Mastodon’s code. That means you can check how it works, and even host a share page of your own (you don’t need to host anything, but you can, if you don’t want to use the version that we’re hosting - it’s your choice).
To try out what sharing something looks like right now, click “Share on Mastodon” on this very blog post (there’s a button to do it, at the top right of the page). The tool itself works entirely in your browser: there is no tracking data, and it does not store any information on the server. If you have multiple Mastodon accounts, you can add more than one, and choose which one to share to when you post.
One more thing to mention here: back when we released Mastodon version 4.4, tucked away in the release notes, we mentioned that server administrators have the option to send a referrer header when a link is clicked. If the owner of your server has enabled that setting, then websites whose links get shared will see traffic coming from Mastodon - yet another way to share how the community is growing.
We’re looking forward to seeing the Mastodon logo on more websites - possibly, alongside other social media platforms; and maybe even as the “main” sharing link, like here on our blog.
Samsung Galaxy S26 Ultra Privacy Display
Privacy Display mode on the new Samsung Galaxy S26 Ultra turns off half the pixels to dim regions of the display and protect your privacy. However, Maximum Privacy Display mode turns some pixels back on, making the screen even more difficult to read from extreme angles.
Buonanotte 🌟🌟🌟
Uno degli scopi della guerra è sempre stato anche il testare nuove tecnologie
Mentre Dario Amodei fa il finto moralista (ma ottimo marketer) e Sam Altman fa i tripli carpiati su Twitter per giustificare il suo accordo con il pentagono, Oracle è stata autorizzata a utilizzare la IA generativa su dati militari. Ovviamente per un effetto migliore servono i dati di una guerra vera. A voi le conclusioni.
Buon appetito 🍷
Trigun Stargaze 08 (Psych! #Trigun)
<p>Trigun Stargaze 08 Crunchyroll Stupid Episode Numbering 20 SPOILER Summary/Synopsis In the past, Dr. Conrad notes how the treatment on the child Livio goes. In the present, Wolfwood gets a hatch on The Ark to open. The decompression blows him, Vash, and the bike out. They make a miraculous landing and flee through the desert.</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html">Trigun Stargaze 08 (Psych! #Trigun)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Thunderbird 148 sistema la posta che si bloccava e mette ordine tra i preferiti
Thunderbird 148.0 risolve il fastidioso bug della posta che si blocca dopo lo standby e introduce la gestione rapida dei messaggi preferiti.
VLC per Android 3.7.0: nuovo equalizzatore e backup delle impostazioni rivisto
VLC per Android si aggiorna alla versione 3.7.0 con un equalizzatore completamente riscritto e un sistema di backup più completo. Attenzione: i vecchi backup non sono più compatibili.
The Gamer Mentality and the Ultimate Power Trip Isekai: Overlord
Overlord adopts Kugane Maruyama’s light novel series. When YGGDRASIL’s servers, a deep-dive massively multiplayer online role playing game, are scheduled to be shut off, Momonga remains logged in to see the shutdown. He’s the guildmaster of Ainz Ooal Gown and spends the last few minutes of the game’s life in the guildhall of Nazarick. He...
Simeonewant to 1v1
Threema collabora con IBM Research per la crittografia post-quantistica
Threema annuncia una collaborazione con la divisione ricerca di IBM per implementare la crittografia post-quantistica nel suo protocollo. L'obiettivo è proteggere le comunicazioni dalle minacce dei futuri computer quantistici.
Fuori quanto è brutto il tempo
Mentre infuria la guerra, cospira gioiosa la resistenza!
Segnaliamo questo incontro a Napoli, con Kenobit, per presentare il suo libro, condividere pratiche di resistenza digitale, cenare insieme e... ballare su musica live a 8bit!
https://t.me/zero81/1608
Corso git 2026 a Milano il 10, 17 e 24 marzo. Il corso sarà tenuto completamente in italiano e sarà disponibile anche in streaming (a meno di problemi tecnici!).
Anche quest’anno il corso si svolgerà sotto forma di Passion in Action, e la frequenza (in presenza!) è riconosciuta mediante menzione sul Diploma Supplement. Per partecipare in presenza iscriviti al Passion in Action!
La registrazione è obbligatoria per la partecipazione in presenza!, mentre non è richiesta per seguire in streaming.
https://poul.org/courses/git/
Google ha eseguito la citazione dell'ICE che richiedeva i numeri di banca e di carta di credito di uno studente giornalista
Amandla Thomas-Johnson non seppe quante informazioni l'ICE avesse richiesto in una citazione fino a mesi dopo. Google non gli diede mai la possibilità di contestare la richiesta.
https://theintercept.com/2026/02/10/google-ice-subpoena-student-journalist/
Le app più scaricate su F-Droid: finalmente una classifica pubblica
Per la prima volta F-Droid ha una classifica pubblica delle app più scaricate. Termux in testa con 8 milioni, seguite da Aurora Store, Fennec e Fossify Gallery.
Buongiornoooo ☕
Quizzino della domenica: Parallelepipedo peculiare
Sapete collocare i numeri da 0 a 5 sulle facce di questo parallelepipedo?
RAM: il problema che non esiste
«voglio parlare di RAM, e del fatto che costa sempre di più, ma voglio farlo da un’altra angolazione: non da consumatore indignato perché il banco DDR5 è salito di prezzo, ma da uno che ha visto sistemi interi stare in piedi in meno memoria di quanta oggi spreca un singolo tab del browser.»
https://keinpfusch.net/ram-il-problema-che-non-esiste/
The DS cartridge interface: endless fun -- by Arisotura
Depending on your definition of fun, of course.
This is a bit of a pace change from all the recent OpenGL stuff: this is going to be some hardware infodumping slash juicy technical post. It all started with this bug report: Bug: Surviving High School (DSiWare) not booting.
Basically, this DSi game gets stuck on a black screen. This bug report piqued my interest, and oh boy, I had no idea what kind of rabbit hole it would be.
I first started by doing what I do in order to troubleshoot emulation bugs: track where each CPU is hanging around at, dump RAM, throw it into IDAPro. This gives me an idea what the game is doing, and hopefully provides a lead on the bug. Another possibility is to try modifying the cache timing constants to probe for a timing bug, but this made no difference here.
In this situation, the ARM9 was running an idle loop, but the ARM7 was stuck in an endless loop. Backtracking from this, I found that the game was reading the cartridge's chip ID, comparing it against the value stored at 0x02FFFC00, and panicking because the two were different. This code isn't atypical for a DS game...
But... wait?!
This game is a DSiWare title! There is no cartridge here.
No idea why it's reading the cartridge chip ID. Maybe the game was intended to be released in physical form? But in this case, the chip ID stored at 0x02FFFC00 is zero. When no cartridge is inserted, melonDS returns 0xFFFFFFFF instead of zero, hence one part of the bug.
Changing melonDS to return zero when no cartridge is inserted would fix the bug, but only when there's indeed no cartridge. If there's one, it will fail. This is because when booting a DSiWare title, the DSi menu forcefully powers off the cartridge if there's one inserted. melonDS doesn't emulate this bit.
This was the start of a longer journey, which ended up becoming its own branch, again. I don't like the way the cartridge code in melonDS has evolved over time.
On one hand, it was built quickly to answer simple needs in simpler times, and things were kind of just piled together. The object-oriented implementation of different cartridge types was a good idea, but they were kind of jammed into one code file, which turned into a bit of a mess.
With DSP HLE, I started experimenting with using subdirectories for specific areas of the emulator, rather than just dumping all the code files into one directory. I thought that doing the same for the cartridge code, after splitting it into separate files, was a good idea. Other areas of the emulator could use this kind of reorganization too, but one thing at a time.
On the other hand, the cartridge interface implementation in melonDS is technically wrong. This is where the fun begins.
In the DS, the cartridge interface is the piece of hardware that sits between the CPU and the cartridge. It can operate in two modes: ROM and SPI. ROM mode uses all the data lines to transfer one byte per cycle, and is typically used to access the ROM. SPI mode uses two data lines as a SPI interface, and is typically used to access the save memory.
The cartridge interface's registers are exposed to both ARM9 and ARM7, but only one CPU may use it at a given time - which CPU gets access is selected by bit 11 in EXMEMCNT. This is a rather important detail - if you happen to remember the old times, we've had a rather evil bug related to this.
I assumed that the cart interface was one set of registers, one hardware block, and that it was accessible to either one or the other CPU. But that's not how this works, actually.
Each CPU has its own register set, and its own cart interface hardware block. Technically, both sides are always functional, and can run transfers at the same time. The EXMEMCNT access right setting merely controls which one is connected to the actual cartridge - the other one will just be reading 0xFF bytes.
Another detail that is wrong is timings.
The way communication works in ROM mode is that you send a 8-byte command to the cartridge, and optionally send or receive data. For example, to retrieve the cart's chip ID, you send a command with the first byte set to 0xB8, then receive one data word: the chip ID.
Since the interface transfers one byte per cycle, it takes 8 cycle to transmit the full command, and 4 cycles per data word transferred. Since the cart's ROM chip may need extra time to fulfill the command, It is also possible to configure delays before the data transfer, and between each 512 bytes of data. The delays are specified in cycles. The duration of a cycle can be either 5 or 8 system cycles (ie 33.51 MHz).
Cartridge transfer delays in melonDS were modelled based on this. However, the model is missing one simple fact, and this ends up making cart transfers slower than they should be.
Jakly figured out that there is buffering involved. Basically, when a data word is transferred from the cartridge, it is placed in a buffer where it may be read out (at 0x04100010), and the DRQ signal is raised to notify the CPU (or DMA). However, the buffer can actually store two words worth of data, so when one data word is available, the interface can start transferring another word, rather than having to wait for the CPU to read out the data.
This buffering scheme is definitely worth implementing. In melonDS, the lack of buffering ends up adding about 400 cycles per 512 bytes of data transferred.
I remember that Rabbids Go Home suffers from a related issue. Basically, the game runs several ROM transfers and measures how long they take. The total needs to fall within a certain range, or the anti-piracy kicks in and the game freezes. So implementing buffering into melonDS might fix this.
I've also been finding out that write transfers (when transferring data to the cartridge) suffer from a couple hardware bugs, too. For example, under certain specific circumstances, the cart interface may accidentally send out one data word despite the buffer being empty. Some of this is worth documenting, but not necessarily worth emulating, atleast for now.
Then you have the DSi, which has two cartridge interfaces.
Yes, you read this right.
Basically, the DSi was planned to have two cartridge slots. In the end, Nintendo didn't like it, so it was scrapped.
The functionality is still part of the retail DSi. The second cartridge interface is completely functional. It even appears that the retail SoC has the required signals for a second cart slot, but they aren't connected to anything on the motherboard.
So how does this all work?
The second cart interface has the same register layout as the first one. The registers may be found at 0x040021A0 instead of 0x040001A0 (and 0x04102010 instead of 0x04100010 for the transfer buffer). There are also new IRQ lines for it (IRQ 26 and 27, instead of 19 and 20 respectively), a new DMA trigger line, and a separate CPU access setting in EXMEMCNT (bit 10). This cart interface can't be used with old DMA, but NDMA has an adequate trigger mode for it (0x05).
Register SCFG_MC was added to control the cartridge slots. Each cartridge may be turned on or off in software. This is used to reset the cartridge - initializing a DSi cartridge requires a reset, but the original interface provided no way to do that in software. SCFG_MC also serves to turn off the cartridge when loading DSiWare, for example.
An empty cartridge slot is also forced off by hardware. The nonexistant second slot is considered to always be empty, so it is always off.
It's also worth noting that the on/off status applies to the cartridge itself. The cart interface is functional regardless, but it will read 0x00 bytes if the cart is off.
SCFG_MC also provides another setting to swap the two cartridge interfaces. The point would be that games could be loaded from either cart slot without needing to know which slot is in use, and it would also guarantee backwards compatibility with DS games. This setting merely swaps the address at which each cart interface appears, as well as the IRQ lines and all.
So all in all, this requires some foundational changes to the way cartridge stuff is emulated in melonDS. As well as a lot of hardware testing to figure out every detail, answer every question that is raised along the way, and so on.
But, I hope, the improved accuracy will be worth it.
Fate/strange Fake 09 (Big Battle #StrangeFake)
<p>Fate/strange Fake 09 SPOILER Summary/Synopsis: The police of Clan Calatin watch horrified as an apparent regular policeman comes up and opens fire on Cerberus. The beast easily slaughters the cop. True Archer announces his intention to kill Tsubaki and fires an arrow. An annoyed Jester uses his magic to block the arrow. Meanwhile, Cerberus continues</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html">Fate/strange Fake 09 (Big Battle #StrangeFake)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Buonanotte 🌟🌟🌟
https://www.youtube.com/live/YW6_nLRvgQs?si=DHAZLUTu0wqZWtOt
Bandcamp semplifica la vita agli artisti: arrivano i crediti per gli autori
Bandcamp introduce i campi per autori, editori e codici delle opere: un aggiornamento utile per migliorare la gestione delle royalty e dei diritti digitali.
Flow 1.7.5: dirette, testi musicali ripensati e lotta al clickbait
Il frontend alternativo di YouTube si aggiorna con il supporto alle dirette, l'integrazione con DeArrow per rimuovere titoli e miniature clickbait, testi musicali più veloci e il backup delle impostazioni.
A ciascuno i suoi politici
anche i britannici guardano la pagliuzza negli occhi altrui!
I legislatori affermano che l'esercito statunitense ha utilizzato il laser per abbattere un drone della Border Protection
Giovedì, l'esercito statunitense ha utilizzato un laser per abbattere un drone "apparentemente minaccioso" che volava vicino al confine tra Stati Uniti e Messico. Si è scoperto che il drone apparteneva alla Customs and Border Protection, hanno affermato i legislatori.
https://apnews.com/article/military-laser-border-drone-texas-airport-55aaab7093f7d6dd174f909f3875001c
A new Share button
Have you ever wondered why news articles around the web have buttons to share to some of those other social sites, but not on Mastodon? There used to be a legitimate reason for this: unlike legacy social, Mastodon isn’t a single monolithic website you can link to; there are over 8,000 places where a person could have a Mastodon account! Their account could be on mastodon.social, the large, official server run by us. Or hachyderm.io, a sizeable server for tech enthusiasts operated by Nivenly. Or social.coop, a Mastodon server operated like a co-operative, where all members pay towards the costs and vote on decisions together. Some people run their own Mastodon servers, on their hardware at home. The distributed nature of the network is the greatest strength of Mastodon, but it also means that having a share button that takes you to the “correct” Mastodon server for your account, is a lot more involved than a simple hyperlink. Third party solutions have existed before now, but none of them have become ubiquitous, or easy to discover for website owners. This changes today, with our new official Share tool.
If you are a website owner, you can go to share.joinmastodon.org to find instructions describing how to integrate this on your website. Of course, we’ve also made the code available and open source, the same as the rest of Mastodon’s code. That means you can check how it works, and even host a share page of your own (you don’t need to host anything, but you can, if you don’t want to use the version that we’re hosting - it’s your choice).
To try out what sharing something looks like right now, click “Share on Mastodon” on this very blog post (there’s a button to do it, at the top right of the page). The tool itself works entirely in your browser: there is no tracking data, and it does not store any information on the server. If you have multiple Mastodon accounts, you can add more than one, and choose which one to share to when you post.
One more thing to mention here: back when we released Mastodon version 4.4, tucked away in the release notes, we mentioned that server administrators have the option to send a referrer header when a link is clicked. If the owner of your server has enabled that setting, then websites whose links get shared will see traffic coming from Mastodon - yet another way to share how the community is growing.
We’re looking forward to seeing the Mastodon logo on more websites - possibly, alongside other social media platforms; and maybe even as the “main” sharing link, like here on our blog.
Samsung Galaxy S26 Ultra Privacy Display
Privacy Display mode on the new Samsung Galaxy S26 Ultra turns off half the pixels to dim regions of the display and protect your privacy. However, Maximum Privacy Display mode turns some pixels back on, making the screen even more difficult to read from extreme angles.
Buonanotte 🌟🌟🌟
Uno degli scopi della guerra è sempre stato anche il testare nuove tecnologie
Mentre Dario Amodei fa il finto moralista (ma ottimo marketer) e Sam Altman fa i tripli carpiati su Twitter per giustificare il suo accordo con il pentagono, Oracle è stata autorizzata a utilizzare la IA generativa su dati militari. Ovviamente per un effetto migliore servono i dati di una guerra vera. A voi le conclusioni.
Buon appetito 🍷
Trigun Stargaze 08 (Psych! #Trigun)
<p>Trigun Stargaze 08 Crunchyroll Stupid Episode Numbering 20 SPOILER Summary/Synopsis In the past, Dr. Conrad notes how the treatment on the child Livio goes. In the present, Wolfwood gets a hatch on The Ark to open. The decompression blows him, Vash, and the bike out. They make a miraculous landing and flee through the desert.</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/03/trigun-stargaze-08.html">Trigun Stargaze 08 (Psych! #Trigun)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Thunderbird 148 sistema la posta che si bloccava e mette ordine tra i preferiti
Thunderbird 148.0 risolve il fastidioso bug della posta che si blocca dopo lo standby e introduce la gestione rapida dei messaggi preferiti.
VLC per Android 3.7.0: nuovo equalizzatore e backup delle impostazioni rivisto
VLC per Android si aggiorna alla versione 3.7.0 con un equalizzatore completamente riscritto e un sistema di backup più completo. Attenzione: i vecchi backup non sono più compatibili.
The Gamer Mentality and the Ultimate Power Trip Isekai: Overlord
Overlord adopts Kugane Maruyama’s light novel series. When YGGDRASIL’s servers, a deep-dive massively multiplayer online role playing game, are scheduled to be shut off, Momonga remains logged in to see the shutdown. He’s the guildmaster of Ainz Ooal Gown and spends the last few minutes of the game’s life in the guildhall of Nazarick. He...
Simeonewant to 1v1
Threema collabora con IBM Research per la crittografia post-quantistica
Threema annuncia una collaborazione con la divisione ricerca di IBM per implementare la crittografia post-quantistica nel suo protocollo. L'obiettivo è proteggere le comunicazioni dalle minacce dei futuri computer quantistici.
Fuori quanto è brutto il tempo
Mentre infuria la guerra, cospira gioiosa la resistenza!
Segnaliamo questo incontro a Napoli, con Kenobit, per presentare il suo libro, condividere pratiche di resistenza digitale, cenare insieme e... ballare su musica live a 8bit!
https://t.me/zero81/1608
Corso git 2026 a Milano il 10, 17 e 24 marzo. Il corso sarà tenuto completamente in italiano e sarà disponibile anche in streaming (a meno di problemi tecnici!).
Anche quest’anno il corso si svolgerà sotto forma di Passion in Action, e la frequenza (in presenza!) è riconosciuta mediante menzione sul Diploma Supplement. Per partecipare in presenza iscriviti al Passion in Action!
La registrazione è obbligatoria per la partecipazione in presenza!, mentre non è richiesta per seguire in streaming.
https://poul.org/courses/git/
Google ha eseguito la citazione dell'ICE che richiedeva i numeri di banca e di carta di credito di uno studente giornalista
Amandla Thomas-Johnson non seppe quante informazioni l'ICE avesse richiesto in una citazione fino a mesi dopo. Google non gli diede mai la possibilità di contestare la richiesta.
https://theintercept.com/2026/02/10/google-ice-subpoena-student-journalist/
Le app più scaricate su F-Droid: finalmente una classifica pubblica
Per la prima volta F-Droid ha una classifica pubblica delle app più scaricate. Termux in testa con 8 milioni, seguite da Aurora Store, Fennec e Fossify Gallery.
Buongiornoooo ☕
Quizzino della domenica: Parallelepipedo peculiare
Sapete collocare i numeri da 0 a 5 sulle facce di questo parallelepipedo?
RAM: il problema che non esiste
«voglio parlare di RAM, e del fatto che costa sempre di più, ma voglio farlo da un’altra angolazione: non da consumatore indignato perché il banco DDR5 è salito di prezzo, ma da uno che ha visto sistemi interi stare in piedi in meno memoria di quanta oggi spreca un singolo tab del browser.»
https://keinpfusch.net/ram-il-problema-che-non-esiste/
The DS cartridge interface: endless fun -- by Arisotura
Depending on your definition of fun, of course.
This is a bit of a pace change from all the recent OpenGL stuff: this is going to be some hardware infodumping slash juicy technical post. It all started with this bug report: Bug: Surviving High School (DSiWare) not booting.
Basically, this DSi game gets stuck on a black screen. This bug report piqued my interest, and oh boy, I had no idea what kind of rabbit hole it would be.
I first started by doing what I do in order to troubleshoot emulation bugs: track where each CPU is hanging around at, dump RAM, throw it into IDAPro. This gives me an idea what the game is doing, and hopefully provides a lead on the bug. Another possibility is to try modifying the cache timing constants to probe for a timing bug, but this made no difference here.
In this situation, the ARM9 was running an idle loop, but the ARM7 was stuck in an endless loop. Backtracking from this, I found that the game was reading the cartridge's chip ID, comparing it against the value stored at 0x02FFFC00, and panicking because the two were different. This code isn't atypical for a DS game...
But... wait?!
This game is a DSiWare title! There is no cartridge here.
No idea why it's reading the cartridge chip ID. Maybe the game was intended to be released in physical form? But in this case, the chip ID stored at 0x02FFFC00 is zero. When no cartridge is inserted, melonDS returns 0xFFFFFFFF instead of zero, hence one part of the bug.
Changing melonDS to return zero when no cartridge is inserted would fix the bug, but only when there's indeed no cartridge. If there's one, it will fail. This is because when booting a DSiWare title, the DSi menu forcefully powers off the cartridge if there's one inserted. melonDS doesn't emulate this bit.
This was the start of a longer journey, which ended up becoming its own branch, again. I don't like the way the cartridge code in melonDS has evolved over time.
On one hand, it was built quickly to answer simple needs in simpler times, and things were kind of just piled together. The object-oriented implementation of different cartridge types was a good idea, but they were kind of jammed into one code file, which turned into a bit of a mess.
With DSP HLE, I started experimenting with using subdirectories for specific areas of the emulator, rather than just dumping all the code files into one directory. I thought that doing the same for the cartridge code, after splitting it into separate files, was a good idea. Other areas of the emulator could use this kind of reorganization too, but one thing at a time.
On the other hand, the cartridge interface implementation in melonDS is technically wrong. This is where the fun begins.
In the DS, the cartridge interface is the piece of hardware that sits between the CPU and the cartridge. It can operate in two modes: ROM and SPI. ROM mode uses all the data lines to transfer one byte per cycle, and is typically used to access the ROM. SPI mode uses two data lines as a SPI interface, and is typically used to access the save memory.
The cartridge interface's registers are exposed to both ARM9 and ARM7, but only one CPU may use it at a given time - which CPU gets access is selected by bit 11 in EXMEMCNT. This is a rather important detail - if you happen to remember the old times, we've had a rather evil bug related to this.
I assumed that the cart interface was one set of registers, one hardware block, and that it was accessible to either one or the other CPU. But that's not how this works, actually.
Each CPU has its own register set, and its own cart interface hardware block. Technically, both sides are always functional, and can run transfers at the same time. The EXMEMCNT access right setting merely controls which one is connected to the actual cartridge - the other one will just be reading 0xFF bytes.
Another detail that is wrong is timings.
The way communication works in ROM mode is that you send a 8-byte command to the cartridge, and optionally send or receive data. For example, to retrieve the cart's chip ID, you send a command with the first byte set to 0xB8, then receive one data word: the chip ID.
Since the interface transfers one byte per cycle, it takes 8 cycle to transmit the full command, and 4 cycles per data word transferred. Since the cart's ROM chip may need extra time to fulfill the command, It is also possible to configure delays before the data transfer, and between each 512 bytes of data. The delays are specified in cycles. The duration of a cycle can be either 5 or 8 system cycles (ie 33.51 MHz).
Cartridge transfer delays in melonDS were modelled based on this. However, the model is missing one simple fact, and this ends up making cart transfers slower than they should be.
Jakly figured out that there is buffering involved. Basically, when a data word is transferred from the cartridge, it is placed in a buffer where it may be read out (at 0x04100010), and the DRQ signal is raised to notify the CPU (or DMA). However, the buffer can actually store two words worth of data, so when one data word is available, the interface can start transferring another word, rather than having to wait for the CPU to read out the data.
This buffering scheme is definitely worth implementing. In melonDS, the lack of buffering ends up adding about 400 cycles per 512 bytes of data transferred.
I remember that Rabbids Go Home suffers from a related issue. Basically, the game runs several ROM transfers and measures how long they take. The total needs to fall within a certain range, or the anti-piracy kicks in and the game freezes. So implementing buffering into melonDS might fix this.
I've also been finding out that write transfers (when transferring data to the cartridge) suffer from a couple hardware bugs, too. For example, under certain specific circumstances, the cart interface may accidentally send out one data word despite the buffer being empty. Some of this is worth documenting, but not necessarily worth emulating, atleast for now.
Then you have the DSi, which has two cartridge interfaces.
Yes, you read this right.
Basically, the DSi was planned to have two cartridge slots. In the end, Nintendo didn't like it, so it was scrapped.
The functionality is still part of the retail DSi. The second cartridge interface is completely functional. It even appears that the retail SoC has the required signals for a second cart slot, but they aren't connected to anything on the motherboard.
So how does this all work?
The second cart interface has the same register layout as the first one. The registers may be found at 0x040021A0 instead of 0x040001A0 (and 0x04102010 instead of 0x04100010 for the transfer buffer). There are also new IRQ lines for it (IRQ 26 and 27, instead of 19 and 20 respectively), a new DMA trigger line, and a separate CPU access setting in EXMEMCNT (bit 10). This cart interface can't be used with old DMA, but NDMA has an adequate trigger mode for it (0x05).
Register SCFG_MC was added to control the cartridge slots. Each cartridge may be turned on or off in software. This is used to reset the cartridge - initializing a DSi cartridge requires a reset, but the original interface provided no way to do that in software. SCFG_MC also serves to turn off the cartridge when loading DSiWare, for example.
An empty cartridge slot is also forced off by hardware. The nonexistant second slot is considered to always be empty, so it is always off.
It's also worth noting that the on/off status applies to the cartridge itself. The cart interface is functional regardless, but it will read 0x00 bytes if the cart is off.
SCFG_MC also provides another setting to swap the two cartridge interfaces. The point would be that games could be loaded from either cart slot without needing to know which slot is in use, and it would also guarantee backwards compatibility with DS games. This setting merely swaps the address at which each cart interface appears, as well as the IRQ lines and all.
So all in all, this requires some foundational changes to the way cartridge stuff is emulated in melonDS. As well as a lot of hardware testing to figure out every detail, answer every question that is raised along the way, and so on.
But, I hope, the improved accuracy will be worth it.
Fate/strange Fake 09 (Big Battle #StrangeFake)
<p>Fate/strange Fake 09 SPOILER Summary/Synopsis: The police of Clan Calatin watch horrified as an apparent regular policeman comes up and opens fire on Cerberus. The beast easily slaughters the cop. True Archer announces his intention to kill Tsubaki and fires an arrow. An annoyed Jester uses his magic to block the arrow. Meanwhile, Cerberus continues</p>
<p><a class="moretag" href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html " >Read the full article!</a></p>
<p>The post <a href="https://anime.astronerdboy.com/2026/02/fate-strange-fake-09.html">Fate/strange Fake 09 (Big Battle #StrangeFake)</a> appeared first on <a href="https://anime.astronerdboy.com">AstroNerdBoy's Anime & Manga Blog</a>.</p>
Buonanotte 🌟🌟🌟
https://www.youtube.com/live/YW6_nLRvgQs?si=DHAZLUTu0wqZWtOt
Bandcamp semplifica la vita agli artisti: arrivano i crediti per gli autori
Bandcamp introduce i campi per autori, editori e codici delle opere: un aggiornamento utile per migliorare la gestione delle royalty e dei diritti digitali.
Flow 1.7.5: dirette, testi musicali ripensati e lotta al clickbait
Il frontend alternativo di YouTube si aggiorna con il supporto alle dirette, l'integrazione con DeArrow per rimuovere titoli e miniature clickbait, testi musicali più veloci e il backup delle impostazioni.
A ciascuno i suoi politici
anche i britannici guardano la pagliuzza negli occhi altrui!
I legislatori affermano che l'esercito statunitense ha utilizzato il laser per abbattere un drone della Border Protection
Giovedì, l'esercito statunitense ha utilizzato un laser per abbattere un drone "apparentemente minaccioso" che volava vicino al confine tra Stati Uniti e Messico. Si è scoperto che il drone apparteneva alla Customs and Border Protection, hanno affermato i legislatori.
https://apnews.com/article/military-laser-border-drone-texas-airport-55aaab7093f7d6dd174f909f3875001c