Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Epsilon to the Nintendo 3DS #1528

Closed
wants to merge 6 commits into from
Closed

Conversation

M4xi1m3
Copy link
Contributor

@M4xi1m3 M4xi1m3 commented Apr 19, 2020

This is a fully functional port of Epsilon to the Nintendo 3DS. It has display, keyboard and button support. It runs well on citra and on real hardware.

Building:
You need devkitPro and devkitARM installed and in your path (instructions here)

make PLATFORM=simulator TARGET=3ds -j
3dsxtool output/release/simulator/3ds/epsilon.elf epsilon.3dsx

You can then put epsilon.3dsx on a SD card to run it from the HBC or use 3dslink to launch it over the network:

3dslink epsilon.3dsx -a <3DS' IP ADDRESS>

Todo list:

  • Get it to boot
  • Get it to display stuff
  • Virtual keyboard
    • Put the non-debug keyboard image
    • Add a throttler for the virtual keyboard
  • Button support
    • Add a throttler for the buttons
  • Add language detection
  • Add a way to quit properly (without force-shutting down the system)
  • LED Driver
  • Peudo-USB Driver (detect plugging-in to go out of exam mode)
  • Battery driver
  • Edit build system to make it output a .3dsx
    • Make it integrate smdh data
  • Edit the build system to make it output a .cia
    • Make the .cia able to overwrite the home menu
  • Go to an exam with that thing

Disclaimer:
This is obviously a joke, but at the same time a fun PoC.

Screenshots:
Mandelbrot example + function drawing on citra:
Peek 19-04-2020 14-31
Picture of it running on actual hardware:
3ds

@NumWorksBot
Copy link

.text .rodata .bss .data
Base 641 76 bytes 231 699 bytes 174 952 bytes 208 bytes
Head 641 76 bytes 231 699 bytes 174 952 bytes 208 bytes
+ 0 bytes + 0 bytes + 0 bytes + 0 bytes
+ 0 % + 0 % + 0 % + 0 %

@NumWorksBot
Copy link

.text .rodata .bss .data
Base 641 76 bytes 231 699 bytes 174 952 bytes 208 bytes
Head 641 76 bytes 231 699 bytes 174 952 bytes 208 bytes
+ 0 bytes + 0 bytes + 0 bytes + 0 bytes
+ 0 % + 0 % + 0 % + 0 %

@RedGl0w RedGl0w mentioned this pull request Apr 19, 2020
@Ecco
Copy link
Contributor

Ecco commented Apr 19, 2020

LOL 🤣

By the way, I'm surprised that you would need a debouncer. Did you actually experience any bounce in practice on real hardware?

That being said, and no matter how fun this is, I'll have to close this PR. We don't have any plan of merging nor maintaining this port (for reasons I assume will be obvious to everyone). And we'd rather keep only active PRs open.

Thanks though, that's a lot of fun 😄

@Ecco Ecco closed this Apr 19, 2020
@M4xi1m3
Copy link
Contributor Author

M4xi1m3 commented Apr 20, 2020

Thank you for your kind answer. I'm planning to continue working on this, for the meme, even tho it won't be merged. I actually experienced bounciness on real hardware, both with the buttons and the touchscreen. I don't know if it's because my 3DS is getting old or anything, but I prefer to put a debouncer just in case. I might put a build of this on the TinyDB 3DS homebrew repository once it's mature enough. I also found a weird bug involving pressing shift / alpha. It only stays activated for like one second, even if I don't do anything.

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.

None yet

3 participants