跳到正文
Gbatemp· MiVenTech·· 3 小时前AI 评分8

[WIP] 3DSocial – 3DS 上的聊天、语音笔记与照片应用,带加密自托管服务器

[WIP] 3DSocial – Chat, voice notes & photos on 3DS with encrypted self-hosted server

AI 导读

3DSocial 是面向 Nintendo 3DS/2DS 的自制聊天应用,通过加密自托管服务器实现私聊、30秒语音笔记与照片发送。应用目前仅支持本地服务器,需 PC 运行 Python 3.8+ 示例服务端,且无公共服务器。运行需 Luma3DS 11.0+ 自制固件并安装 .cia 或 .3dsx,界面为西班牙语。

正文

3DSocial – Homebrew messaging for Nintendo 3DS

⚠️ DISCLAIMER – AI-ASSISTED DEVELOPMENT
Part of this project was written with the help of AI tools, mainly the GUI and some other segments of the code. I'm being upfront about it so you can decide for yourself. I wrote and directed the project, and I review and test it on a real console, but there may be rough edges, bugs or code that isn't up to the usual standard. Please keep this in mind, test carefully, and report anything strange.

About me: this is a pure hobby project, nothing professional. I know C and wanted to build something for the 3DS, just to learn, experiment and have fun.

What is it?
3DSocial is a homebrew chat app for Nintendo 3DS/2DS. Your ID is generated on first launch, with no email or registration. Messages go through a small Python server that you host yourself, using application-layer encryption over HTTP.

It is based on Mensinger3DS-Backend by GABXRIEL. Big thanks to him for the original idea and base.

Features

  • Private messages between IDs, contacts and paginated chat history
  • Strangers inbox: read and reply to people not in your contacts, and add them if you want
  • Voice notes up to 30 seconds (record and play)
  • Photos with the 3DS camera, with a preview before sending
  • Profiles: name, nickname, bio, description, profile picture and custom chat colors
  • Search users and Meet people (both opt-in)
  • Optional password protection for your ID
  • Online/offline status, LED and sound notifications
  • Light and dark themes
  • The app interface is in Spanish

Important limitations

  • It only works with local servers for now. There is no public server yet, because I can't afford a VPS at the moment. I plan to look into getting one so the community can try it, but I can't promise a date.
  • To try it you need to run the example server on a PC in the same network as your 3DS (Python 3.8+ with cryptography).
  • The first connection uses trust-on-first-use for the server key, and profiles without a password can be accessed with just the ID. Don't treat this as a secure messenger.
  • Audio needs the DSP firmware dumped from your own console with Rosalina (Luma3DS) → Miscellaneous options → Dump DSP firmware. Nothing copyrighted is distributed.

Requirements

  • 3DS/2DS with custom firmware (Luma3DS 11.0+ recommended)
  • FBI to install the .cia, or the Homebrew Launcher for the .3dsx
  • SD card and a network connection between the console and the server
  • A PC to run the example server (Windows .bat launchers included)

Quick start

  1. Download the .cia or .3dsx from the releases page and install it.
  2. Dump the DSP firmware with Rosalina if you want audio.
  3. Run the example server on your PC (py -3 server.py --port 8080, or use the included .bat files).
  4. In the app, go to Settings → Connection, enter your PC's local IP and port, press Test and save.
  5. Share your ID with a friend and add each other.

Full instructions are in the README.

Links

Credits
GABXRIEL (original Mensinger3DS), devkitPro/libctru, Luma3DS/Rosalina, PabloMK7 (ctr-led-brary), Monocypher, and the FBI project (camera capture flow). See the repo for licenses.

Screenshots

5086840346787908776_121.jpg

5086840346787908778_121.jpg

5086840346787908782_121.jpg

5089159173861215454_121.jpg

5089159173861215455_121.jpg

5089159173861215456_121.jpg

5089159173861215457_121.jpg

5089159173861215458_121.jpg

5089159173861215460_121.jpg

5089159173861215461_121.jpg

  • 5089159173861215459_121.jpg

    5089159173861215459_121.jpg

    157.3 KB · Views: 1

来源:Gbatemp · gbatemp.net