EShop: Difference between revisions

Plailect (talk | contribs)
James (talk | contribs)
 
(7 intermediate revisions by 4 users not shown)
Line 22: Line 22:
|-
|-
| ESHOP://50010000000201.PEAALL000000 || EUR || nintendogs + cats: Golden Retriever & New Friends || ADAP || 0004000000030C00
| ESHOP://50010000000201.PEAALL000000 || EUR || nintendogs + cats: Golden Retriever & New Friends || ADAP || 0004000000030C00
|-
| ESHOP://50010000007463.J00101Z00061 || JPN || Pushmo || JCAJ || 0004000000068D00
|-
|-
| ESHOP://50010000007870.PEAALL000000 || EUR || Crush 3D || ACRP || 0004000000040400
| ESHOP://50010000007870.PEAALL000000 || EUR || Crush 3D || ACRP || 0004000000040400
Line 60: Line 62:
|-
|-
| ESHOP://50010000009846 || USA || Ketzal's Corridors || JELE || 0004000000083800
| ESHOP://50010000009846 || USA || Ketzal's Corridors || JELE || 0004000000083800
|-
| ESHOP://50010000010434 || USA || New Super Mario Bros. 2 Trailer
|-
| ESHOP://50010000014732.J00101Z00407 || JPN || Chain Blaster || JCBJ || 00040000000DCC00
|}
|}


Line 127: Line 133:
The eShop pulls its music from a static, region-specific link in a format similar to the following:  
The eShop pulls its music from a static, region-specific link in a format similar to the following:  


https:// a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/CtfKXACbUPl8s7lk/BGM1/US_BGM1 ,
<nowiki>https://a248.e.akamai.net/f/248/103046/10m/npdl.c.app.nintendowifi.net/p01/nsa/CtfKXACbUPl8s7lk/BGM1/<region>_BGM1</nowiki>,
where region is one of the primary system regions (JP, US, EU, KR, etc.) Support also exists for 'BGM2', but this seems to be unused.
where region is one of the primary system regions (JP, US, EU, KR, etc.) Support also exists for 'BGM2', but this seems to be unused.
The music is held in a [[SpotPass|BOSS]] container.  
The music is held in a [[SpotPass|BOSS]] container.  
Line 199: Line 205:
!  Parameters
!  Parameters
|-
|-
|  /samurai/ws/'''region'''/titles
|  /samurai/ws/'''region'''/contents
|  Fetches the title list, containing the content id (not the 3DS title id), the product code and the localized title name
|  Fetches the content list, containing basic content information like the content id (not the 3DS title id), the product code and the localized title name
|  All of these are optional.
|  All of these are optional.
* genre[]: genre ID (unsigned int)
* genre[]: genre ID (unsigned int)
Line 213: Line 219:
* release_date_before: date/time title must have been released before (UNIX timestamp prefixed by +)
* release_date_before: date/time title must have been released before (UNIX timestamp prefixed by +)
* release_date_after: date/time title must have been released after (UNIX timestamp prefixed by -)
* release_date_after: date/time title must have been released after (UNIX timestamp prefixed by -)
|-
|  /samurai/ws/'''region'''/titles
|  Same as /contents but only shows software titles
|  see /contents
|-
|  /samurai/ws/'''region'''/title/'''content id'''
|  Returns information about the title, more verbose than /titles.
|  (none)
|-
|  /samurai/ws/'''region'''/title/'''content id'''/aocs
|  Returns a list of add-on contents/downloadable content and prices in eShop region currency.
|  (none)
|-
|  /samurai/ws/'''region'''/demo/'''content id'''
|  Returns information about a demo. Content ID is available in the main game's /title entry.
|  (none)
|-
|  /samurai/ws/'''region'''/movies
|  Same as /contents but only shows movies
|  see /contents
|-
|  /samurai/ws/'''region'''/movie/'''content id'''
|  Returns information about the movie, more verbose than /movies.
|  (none)
|-
|-
|  /samurai/ws/'''region'''/news
|  /samurai/ws/'''region'''/news
Line 221: Line 251:
|  Scrolling news on the top screen
|  Scrolling news on the top screen
|  shop_id is required
|  shop_id is required
|-
|  /samurai/ws/'''region'''/directories
|  Returns a list of directories available on the regional server with the name, image, id used for the directory api point, etc.
|  pattern: Unsure of the purpose, default value is B from  what I can tell.
|-
|-
|  /samurai/ws/'''region'''/directory/'''(long long unsigned int)''' and /samurai/ws/'''region'''/directory/~'''(string)'''
|  /samurai/ws/'''region'''/directory/'''(long long unsigned int)''' and /samurai/ws/'''region'''/directory/~'''(string)'''
|  Collections, like sales
|  Collections, like sales
|  (none)
|  (none)
|-
|  /samurai/ws/'''region'''/title/'''content id'''
|  Returns information about the title, more verbose than /titles.
|  (none)
|-
|  /samurai/ws/'''region'''/demo/'''content id'''
|  Returns information about a demo. Content ID is available in the main game's /title entry.
|  (none)
|-
|  /samurai/ws/'''region'''/contents
|  Seems identical to /titles.
|  see /titles
|-
|-
|  /samurai/ws/'''region'''/genres
|  /samurai/ws/'''region'''/genres
Line 250: Line 272:
|  (none)
|  (none)
|-
|-
|  /samurai/ws/'''region'''/title/'''content id'''/aocs
|  /samurai/ws/'''region'''/languages
|  Returns a list of add-on contents/downloadable content and prices in eShop region currency.
|  Returns a list of languages available on the regional server with the ISO 639-1 code used for the lang parameter.
|  (none)
|  (none)
|}
|}
Line 330: Line 352:
==New3DS==
==New3DS==
CheckNew3DS is called in two functions. This is only used for disabling UI button(s) for downloading New3DS titles when running on Old3DS. For example, on a New3DS patching a CheckNew3DS func-call with <retval=0>, results in the download button on the app page being grayed-out for a New3DS-only title.
CheckNew3DS is called in two functions. This is only used for disabling UI button(s) for downloading New3DS titles when running on Old3DS. For example, on a New3DS patching a CheckNew3DS func-call with <retval=0>, results in the download button on the app page being grayed-out for a New3DS-only title.
Attempting to download a New3DS-only title with an Old3DS eShop account(even with a New3DS using an Old3DS account), results in the ninja server(specifically the "prepurchase_info" page) returning an error. HTTP 400 is returned with the following json reply:
000000: 7b 22 65 72 72 6f 72 22 3a 7b 22 63 6f 64 65 22  {"error":{"code"
000010: 3a 22 33 31 35 36 22 2c 22 6d 65 73 73 61 67 65  :"3156","message
000020: 22 3a 22 54 68 69 73 20 70 72 6f 64 75 63 74 20  ":"This product
000030: 63 61 6e 6e 6f 74 20 62 65 20 70 75 72 63 68 61  cannot be purcha
000040: 73 65 64 5c 6e 6f 72 20 72 65 64 65 65 6d 65 64  sed\nor redeemed
000050: 20 66 6f 72 20 75 73 65 20 6f 6e 20 74 68 69 73  for use on this
000060: 20 73 79 73 74 65 6d 2e 5c 6e 5c 6e 49 66 20 74  system.\n\nIf t
000070: 68 65 20 70 72 6f 62 6c 65 6d 20 70 65 72 73 69  he problem persi
000080: 73 74 73 2c 20 70 6c 65 61 73 65 5c 6e 6d 61 6b  sts, please\nmak
000090: 65 20 6e 6f 74 65 20 6f 66 20 74 68 65 20 65 72  e note of the er
0000a0: 72 6f 72 20 63 6f 64 65 20 61 6e 64 5c 6e 76 69  ror code and\nvi
0000b0: 73 69 74 20 73 75 70 70 6f 72 74 2e 6e 69 6e 74  sit support.nint
0000c0: 65 6e 64 6f 2e 63 6f 6d 2e 22 7d 7d              endo.com."}}


==TitleID checks==
==TitleID checks==
There's titleID checks in the system eShop application code for "Pokémon Omega Ruby". This appears to be used with UI-related code, unknown why.
There's titleID checks in the system eShop application code for "Pokémon Omega Ruby". This appears to be used with UI-related code, unknown why.