LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

PetitModem

Root / Talk About Programs / [.]

TechokamiCreated:
Mmm, very good to know.

In theory, the maximum transfer rate is restricted by shannon restriction, which says that to transfer faster, silent(low-noise) environment is required. I design PetitModem for whom doesn't have transfer cable. So you can transfer files in usual environment without cable, but it is very slow. in usual environment, 1200bps is watershed, i think. it is difficult to transfer at 2400bps on my desk. if you use microphone cable, you can transfer faster. I have confirmed til about 20000bps. in this case, the limit is come from processing speed of 3DS. Since I use new3DS, which is about 3 times faster than old 3DS, the limit will be about 6000bps on old 3DS.

Is there a specific version of petitmodem for people using new3DS and a microphone cable?

Two alternatives: ==QPSK Demodulator== Download the program "QPSK_DEM" (28EN3HE). Then go to the website http://www.geocities.jp/obono_kun/storage/petitcom_util/ptcm3_qpsk.html Click "Choose File", select the file you want to transfer from your PC to SmileBasic. Start the program on the 3DS, press "A". Press the "play" icon on the web page. When it is finished, press "B" on the 3DS. ==GN_RECEIVER== Download the program "GN_RECEIVER" (R23SEND). Then go to the website http://www2.u-netsurf.ne.jp/~ozawa/petitcom/petiteditor.html Enter a program name in the little box, enter the program in the big box. Start the program on the 3DS, make sure it is in "UNICODE" mode (not "ASCII"). Press "A" then "Y". Press the "Play as Audio (UNICODE)" button on the web page. When the sound stops, press "Y" again. I haven't actually gotten either of these to work, so these directions may not be correct, but then, I haven't tried very hard, and I don't have the right audio port splitter. There is probably a file size limit to both options, I read that 8kb is the limit for QPSK_DEM, I don't know about GN_RECEIVER.

In theory, the maximum transfer rate is restricted by shannon restriction, which says that to transfer faster, silent(low-noise) environment is required. I design PetitModem for whom doesn't have transfer cable. So you can transfer files in usual environment without cable, but it is very slow. in usual environment, 1200bps is watershed, i think. it is difficult to transfer at 2400bps on my desk. if you use microphone cable, you can transfer faster. I have confirmed til about 20000bps. in this case, the limit is come from processing speed of 3DS. Since I use new3DS, which is about 3 times faster than old 3DS, the limit will be about 6000bps on old 3DS.
Thank you for the information; I thought the people complaining about the speed were using a cable, but now that you explained it, I don't think they were.

Hello, rei_nntnd! I went and purchased some high quality audio cable to use as a dedicated data transfer connection with your program. Would it be possible to release a version with higher transfer speeds for users like me? Also, SmileBoom just announced the first DLC add-on, which is the “Advanced Sound Unit”. Perhaps a version using this could help speed up transfers?

Is there a specific version of petitmodem for people using new3DS and a microphone cable?
Would it be possible to release a version with higher transfer speeds for users like me?
Currently, high speed version is very sensitive to the environment. if i change PC or 3DS, i have to adjust parameters every time. it is bothersome to explain the adjusting procedure. especially for children. if this problem is solved, i will release it.
Also, SmileBoom just announced the first DLC add-on, which is the “Advanced Sound Unit”. Perhaps a version using this could help speed up transfers?
yes. the DLC contains PCM,FFT and BIQUAD filter, these are what I want to implement in the PetitModem and what I gave up due to the speed. ideally, MIC -> BIQUAD -> FFT -> Bit Stream but now MIC -> IIR -> Heterodyne -> Bit Stream if it comes, QAM / QFDM can be implemented. smilebasic may become over 56kbps MODEM.

Currently, high speed version is very sensitive to the environment. if i change PC or 3DS, i have to adjust parameters every time. it is bothersome to explain the adjusting procedure. especially for children. if this problem is solved, i will release it.
Advanced user mode? With a warning to the user that this is a mode only for people that know what they are doing?
Also, SmileBoom just announced the first DLC add-on, which is the “Advanced Sound Unit”. Perhaps a version using this could help speed up transfers?
yes. the DLC contains PCM,FFT and BIQUAD filter, these are what I want to implement in the PetitModem and what I gave up due to the speed. ideally, MIC -> BIQUAD -> FFT -> Bit Stream but now MIC -> IIR -> Heterodyne -> Bit Stream if it comes, QAM / QFDM can be implemented. smilebasic may become over 56kbps MODEM.
This is excellent news to hear! :D Also, thank you for creating this amazing program.

An alternate take would be to use a custom DNS server to point SmileBASIC to some other computer than SmileBoom's server.
I've actually been looking a lot at this, but there are 2 different problems with this. So far, I've found (with the help of others and a kind of software called a URL fuzzer) 6 different URLs that are important to SB. 1) https://load.smilebasic.com/load.php - This takes 2 query strings, A which is a randomly generated key that supposedly has something to do with your NNID, and C, a program's public key. You need both parameters or you get 400 Bad Request. This is for downloading programs. 2) https://load.smilebasic.com/info.php - This is supposedly for seeing your profile status. This would only take A. Without A, you get a Bad Request 3) https://save.smilebasic.com/save.php - Not much is know about this one, but I'm guessing it takes a POST request instead of a GET (query strings). Like all the others, it needs everything or you'll get the dreaded Bad Request. It is for uploading programs. 4) https://save.smilebasic.com/purchase.php - This one is for purchases. No one knows much about this one. 5) https://save.smilebasic.com/list.php - No idea what this could be. Storing what programs you upload so you can edit them? Or maybe public/private keys? 6) https://save.smilebasic.com/delete.php - This one's for deleting programs from the server. The 2 problems I'm talking about are pretty easy to notice if you look through. First of all, the requests MUST be done over HTTPS. This makes it impossible to use something like WireShark to find out anything. Second, we can't find out anything about the NNID key, except that it's 104 characters long. We did take a look at Miiverse cookies, but we didn't find anything that was like that. The second one could be made invalid if we made our own upload server, but we'd run into a problem with 1. In case you're wondering, I got the info about the 104 key from bluesun. I also had help from ShadowFury to find out about the servers and to confirm the upload/download servers.

I'm sorry I mistake. it has no security problem. I think the chain of certificate is incorrect, but they built local chain by the NINTENDO. probably 3DS has the CA certificate, so its not a problem. ---- ... obviously, there is a security problem... orz

I'm sorry I mistake. it has no security problem. I think the chain of certificate is incorrect, but they built local chain by the NINTENDO. probably 3DS has the CA certificate, so its not a problem. ---- ... obviously, there is a security problem... orz
The point of the certificate is that it's required by Nintendo. The CA certificate is stored somewhere in either the SB code or in the native ROM. It is most likely not for security, but to prevent connection sniffing (Fiddler, WireShark, etc.).

yes. the DLC contains PCM,FFT and BIQUAD filter, these are what I want to implement in the PetitModem and what I gave up due to the speed. ideally, MIC -> BIQUAD -> FFT -> Bit Stream but now MIC -> IIR -> Heterodyne -> Bit Stream if it comes, QAM / QFDM can be implemented. smilebasic may become over 56kbps MODEM.
The key issue here is that this version of PetitModem will only work for DLC owners. Maintaining the original fork is in your best interest.

An alternate take would be to use a custom DNS server to point SmileBASIC to some other computer than SmileBoom's server.
Getting the necessary NNID info out of the 3DS NAND or sniffing the communication is redundant... it would require the 3DS to be on a vulnerable fw, which already allows extra data to be imported and exported freely. Also, rei_nntnd, look at this Petit Modem bug. The file one the left was dumped through Petit Modem and the one on the right was extracted directly from the game's extra data

Also, rei_nntnd, look at this Petit Modem bug.
! I mistake UTF-16 -> UTF-8 conversion. I'll fix it. Thank you.

hah, all right btw, it seems we can't send grp files generated by the paint aplication to the PC. It always says "Type mismatch in 0:329(LOAD)" EDIT: it's because they don't have the .GRP extension by default and are then mistaken by some other file type... Works fine if we add the GRP extension.

Yes. in smilebasic, we can only detect wheather the file is TEXT or not. we cannot know the detail file type (GRP/GRPF/1DArray/2DArray..). also, we cannot catch the error. so PetitModem determin the filetype from extension. ".GRP" is GRP resource. other non-TEXT resource is assumed to be 1D integer array.

I'm making my own kind of petit modem. I'm using an arduino, legos and a servo motor. Pretty much, the servo touches the bottom on one of 2 sides - 0 and 1, turned into binary via smilebasic. When it receives the touch, the 3DS sends a sound out which is picked up by a headphone jack connected to the arduino.

(and rei fixed petit modem)

Ah, actually it's possible to dump and inject files with this tool, even on the latest fw (10.1) https://gbatemp.net/threads/3ds-extdata-dump-and-restore-tool-extra-data-editing.378492/
How do I edit the dump file?

Well, actually my solution would take too much time (The hours would go in the thousands for a GRP) since it sends a bit at a time with a motor, which takes a whole second.