News for hackers. Stuff that matters.
Re:Hacking the Nintendo DSi Browser by tpmx on Friday March 03, 2023 @03:53PM (#35014850)
> I managed to exploit the Nintendo DSi browser 15 years after it was released

I guess that was inevitable. So much exposed code over so much time.

I remember having a bunch of lunch/dinner discussions about this browser with the two developers actually doing that port in ~2005. It was a super secret and exciting project back then.

We worked in the same small Opera Software office of 30 people or so. They were really frustrated with the code footprint limitations of the DS.

Re:Hacking the Nintendo DSi Browser by mod50ack on Friday March 03, 2023 @04:17PM (#35015129)
The DSi Browser was an updated version of that original DS Browser. Don't know if it was based on the old port, or if it was redone. The DSi was more capable than the original DS, and the browser had to be redone because the old GBA-slot RAM cart was no longer supported. They switched the base to a considerably newer version of Opera. As a major advantage, the browser actually shipped with the DSi, making it much more useful than the two-cartridge getup necessary for the original DS (which, in the end, very few people ended up getting for that system).
Re:Hacking the Nintendo DSi Browser by Wowfunhappy on Friday March 03, 2023 @05:55PM (#35016145)
The DSi browser was also actually good. I preferred it (by a mile) to the 3DS browser. Actually, I liked it more than the browser on my iPod Touch, because it used the dual screens to make it easier to browse websites formatted for desktops. (Responsive design wasn't a thing yet).

The original DS browser, by contrast, was an unbelievably slow nightmare. I'm sure they did what they could with the hardware that was available. But the result was barely usable.

Re:Hacking the Nintendo DSi Browser by tpmx on Friday March 03, 2023 @06:08PM (#35016256)
I'm pretty certain the same team made that DSi update. I think they added one more developer.
Re:Hacking the Nintendo DSi Browser by hbn on Friday March 03, 2023 @04:17PM (#35015120)
Was the DSi browser based on the same code as the DS browser?

The DS browser (which seems to be what you're talking about) was 2 physical cartridges, one that slotted into the regular DS game slot and an 8GB memory expansion cart that went in the GBA slot. The DSi's browser was built in, and the system didn't even have a GBA slot.

Re:Hacking the Nintendo DSi Browser by mod50ack on Friday March 03, 2023 @04:18PM (#35015136)
They were certainly both based on Opera. Don't know to what extent the DSi port was based off its predecessor, though.
Re:Hacking the Nintendo DSi Browser by Matheus28 on Friday March 03, 2023 @04:21PM (#35015195)
8 MB*
Re:Hacking the Nintendo DSi Browser by hbn on Monday March 06, 2023 @02:25PM (#35046288)
Yup, whoops!
Re:Hacking the Nintendo DSi Browser by KeplerBoy on Friday March 03, 2023 @04:48PM (#35015501)
was it really 8 GB? Seems like a lot for 2006-ish.
Re:Hacking the Nintendo DSi Browser by strangecasts on Friday March 03, 2023 @05:34PM (#35015964)
It was 8 megabytes, I suspect it was a typo
Re:Hacking the Nintendo DSi Browser by strangecasts on Friday March 03, 2023 @04:09PM (#35015024)
> They were really frustrated with the code footprint limitations of the DS.

As in the memory or the final binary size? I would have thought memory management was the tricky part -- even with the mandatory 8 MB expansion in the GBA slot -- but I suppose they would have been under even more pressure to fit it onto the smallest cart possible, with the cost of the expansion pack added for every unit

Re:Hacking the Nintendo DSi Browser by tpmx on Friday March 03, 2023 @04:25PM (#35015228)
Now you're making me uncertain. I was pretty certain it was the code/binary footprint. I remember suggesting they look into using any MMU for doing code overlaying/swapping [and the DS doesn't appear to have one...].

The browser code back then was very memory efficient after having gone through so many memory usage optimizations triggered by lots of mobile platform ports.

It was a really long time ago, sorry :)

Re:Hacking the Nintendo DSi Browser by strangecasts on Friday March 03, 2023 @04:45PM (#35015462)
No worries! It does sound likely, it was definitely from a time where people had to do everything they could to fit games onto the cartridges!

The Wikipedia page [1] claims* they had an MMU on the expansion cart - so they could have taken your advice :)

* I couldn't find a source, and AFAICT the DeSmuME emulator [2] seems to treat it like a big chunk of linear memory?

[1] https://en.wikipedia.org/wiki/Nintendo_DS_Browser#Memory_Exp... [2] https://github.com/TASEmulators/desmume/blob/master/desmume/...

E: I forgot about the mobile Opera ports, that also tracks - I'd love to read about the engineering that went into them!

Re:Hacking the Nintendo DSi Browser by tpmx on Friday March 03, 2023 @05:46PM (#35016066)
> E: I forgot about the mobile Opera ports, that also tracks - I'd love to read about the engineering that went into them!

Can't really meaningfully expand on that, most of that happened before I joined in 2004, but I can tell you that the fact that Opera was extremely memory efficient made Opera Mini (250M monthly uniques, 150k web page transcodes/s) economically possible starting 2005.

We needed to keep the browser/window state around for each user until they clicked the next link. If we threw it out, any javascript state would be lost.

Re:Hacking the Nintendo DSi Browser by strangecasts on Saturday March 04, 2023 @09:55AM (#35021158)
That's fair - those are very impressive numbers!

Reading about Mini doing layout specifically for devices with <128px wide displays, I wonder how well today's responsive design frameworks would deal with that...

Re:Hacking the Nintendo DSi Browser by orangewindies on Saturday March 04, 2023 @03:01PM (#35023957)
Mini did some tricks so the "display" was much wider than the device display but text columns were wrapped at device display width. So you you could zoom out and see the whole page but the text was readable when you zoomed in.
Re:Hacking the Nintendo DSi Browser by gsnedders on Saturday March 04, 2023 @10:05AM (#35021266)
As a former colleague who does remember (hi!), it is indeed the case that they had an MMU doing code swapping, along with extra RAM on the cartridge.
Re:Hacking the Nintendo DSi Browser by tpmx on Monday March 06, 2023 @01:42PM (#35045575)
Hi! Do you remember what the limit was that prompted this costly measure? Addressable code space from the CPU? How could there be a limit in the megabytes, not gigabytes? I don't get it.
Re:Hacking the Nintendo DSi Browser by gsnedders on Monday March 13, 2023 @11:25AM (#35136989)
Executable code space from the CPU was the limitation; I forget if this was lower-level software or hardware.
Re:Hacking the Nintendo DSi Browser by razor_router on Friday March 03, 2023 @10:55PM (#35018007)
I'm impressed that someone was still able to exploit the Nintendo DSi browser 15 years after it was released - that's quite the accomplishment! It's certainly commendable that you and the two developers dedicated a lot of time and effort to porting the browser. That said, I do think the fact that the code was exposed for so long played a factor in the exploit happening. With cyber security being such a critical issue nowadays, maybe it would have been best to have more resources available and look into ways to secure it better further down the line.
Re:Hacking the Nintendo DSi Browser by Gigachad on Friday March 03, 2023 @11:54PM (#35018314)
Reads like a ChatGPT comment.
Re:Hacking the Nintendo DSi Browser by dang on Saturday March 04, 2023 @12:18PM (#35022507)
Could you please stop doing this?