Changes

Jump to navigation Jump to search
6,091 bytes added ,  23:02, 6 June 2017
Line 1: Line 1:  +
{{DISPLAYTITLE:eShop}}
 
The Nintendo 3DS eShop was added in the June 2011 update for JP/EUR/USA.
 
The Nintendo 3DS eShop was added in the June 2011 update for JP/EUR/USA.
   Line 20: Line 21:  
! Title ID
 
! Title ID
 
|-
 
|-
| ESHOP://50010000000201.PEAALL000000 || EUR || Nintendogs & Cats Demo || ADA/B/C || 0004000200030c01
+
| ESHOP://50010000000201.PEAALL000000 || EUR || nintendogs + cats: Golden Retriever & New Friends || ADAP || 0004000000030C00
 
|-
 
|-
| ESHOP://50010000007870.PEAALL000000 || EUR || Crush 3D || A??P || 00040002
+
| ESHOP://50010000007463.J00101Z00061 || JPN || Pushmo || JCAJ || 0004000000068D00
 
|-
 
|-
| ESHOP://50010000008009.PEAALL000000 || EUR || Resident Evil Revelations Demo || ABRE || 000400020005ee01
+
| ESHOP://50010000007870.PEAALL000000 || EUR || Crush 3D || ACRP || 0004000000040400
 
|-
 
|-
| ESHOP://50010000008123.J00101Z00095 || JPN || Rhythm Thief And The Emperor's Treasure Demo || ARTJ || 00040002
+
| ESHOP://50010000008009.PEAALL000000 || EUR || Resident Evil Revelations || ABRE || 000400000005EE00
 
|-
 
|-
| ESHOP://50010000008404.PEAALL000000 || EUR || Mario And Sonic At The London 2012 Olympic Games Demo || ACMP [http://mediacontent.nintendo-europe.com/NOE/images/game_content/ACMP-MarioAndSonicAtTheLondon2012OlympicGames-QRCode-EA_ALL_000_001.bmp] || 00040002
+
| ESHOP://50010000008123.J00101Z00095 || JPN || Rhythm Kaitou R: Koutei Napoleon no Isan || ARTJ || 0004000000078100
 
|-
 
|-
| ESHOP://50010000008447.J00101Z00094 || JPN || Resident Evil Revelations Demo || ABRJ || 00040002
+
| ESHOP://50010000008404.PEAALL000000 || EUR || Mario & Sonic at the London 2012 Olympic Games || ACMP || 0004000000054900
 
|-
 
|-
| ESHOP://50010000008449.J00101Z00082 || JPN || Swapnote || JFRJ ||?
+
| ESHOP://50010000008447.J00101Z00094 || JPN || Biohazard Revelations || ABRJ || 0004000000053B00
 +
|-
 +
| ESHOP://50010000008449.J00101Z00082 || JPN || Itsu no Ma ni Koukan Nikki || JFRJ || 0004000000051600
 
|-
 
|-
 
| ESHOP://50010000008561 || USA || Swapnote || JFRE || 0004000000051700
 
| ESHOP://50010000008561 || USA || Swapnote || JFRE || 0004000000051700
 
|-
 
|-
| ESHOP://50010000008647.J00101Z00096 || JPN || Metal Gear Solid Snake Eater 3D Demo || AMGJ || 0004000200048101
+
| ESHOP://50010000008647.J00101Z00096 || JPN || Metal Gear Solid Snake Eater 3D || AMGJ || 000400000007A000
 +
|-
 +
| ESHOP://50010000008648.J00101Z00097 || JPN || Theatrythm Final Fantasy || ATHJ || 0004000000078200
 +
|-
 +
| ESHOP://50010000008782.PEAALL000000 || EUR || Metal Gear Solid Snake Eater 3D || AMGE || 0004000000082400
 
|-
 
|-
| ESHOP://50010000008648.J00101Z00097 || JPN || Theatrythm Final Fantasy || ATHJ ||?
+
| ESHOP://50010000008842.PEAALL000000 || EUR || Rhythm Thief And The Emperor's Treasure || ARTP || 000400000006DA00
 
|-
 
|-
| ESHOP://50010000008782.PEAALL000000 || EUR || Metal Gear Solid Snake Eater 3D Demo || AMGE || 0004000200082401
+
| ESHOP://50010000009084.J00101Z00121 || JPN || Hatsune Miku And Future Stars: Project Mirai || AM9J || 0004000000048000
 
|-
 
|-
| ESHOP://50010000008842.PEAALL000000 || EUR || Rhythm Thief And The Emperor's Treasure Demo || ARTP [http://mediacontent.nintendo-europe.com/NOE/images/game_content/ARTP-RhythmThief_TheEmperorsTreasure-QRCode-EA_ALL_000_001.bmp] || 00040002
+
| ESHOP://50010000009102.J00101Z00106 || JPN || Denpa Ningen no RPG || JD8J || 0004000000077E00
 
|-
 
|-
| ESHOP://50010000009084.J00101Z00121 || JPN || Hatsune Miku And Future Stars: Project Mirai Demo || AM9J || 00040002
+
| ESHOP://50010000009161.J00101Z00118 || JPN || The Rolling Western || JAMJ || 0004000000059B00
 
|-
 
|-
| ESHOP://50010000009102.J00101Z00106 || JPN || Denpa Ningen RPG || JD8J ||?
+
| ESHOP://50010000009261 || USA || Dillon's Rolling Western || JAME || 000400000007C400
 
|-
 
|-
| ESHOP://50010000009161.J00101Z00118 || JPN || Dillon's Rolling Western || JAMJ || 00040000
+
| ESHOP://50010000009401.J00101Z00120 || JPN || Kingdom Hearts 3D Nintendo Direct 2012.2.22 Video || JZ8J || 0004000000092E00
 
|-
 
|-
| ESHOP://50010000009261 || USA || Dillon's Rolling Western || JAME? || 00040000
+
| ESHOP://50010000009403.J00101Z00119 || JPN || Dragon Quest Monsters: Terry no Wonderland 3D Nintendo Direct 2012.2.22 Video || JZ7J || 0004000000092F00
 
|-
 
|-
| ESHOP://50010000009401.J00101Z00120 || JPN || Kingdom Hearts 3D Video Download || JZ8J ||?
+
| ESHOP://50010000009575.PEAALL000000 || EUR || Kid Icarus: Of Myths And Monsters (Virtual Console) || RBLP || 0004000000069500
 
|-
 
|-
| ESHOP://50010000009403.J00101Z00119 || JPN || DQM 3D Video Download || JZ7J ||?
+
| ESHOP://50010000009846 || USA || Ketzal's Corridors || JELE || 0004000000083800
 
|-
 
|-
| ESHOP://50010000009575.PEAALL000000 || EUR || Kid Icarus: Of Myths And Monsters (Virtual Console) ||? ||?
+
| ESHOP://50010000010434 || USA || New Super Mario Bros. 2 Trailer
 
|-
 
|-
| ESHOP://50010000009846 || USA || Ketzal's Corridors ||? ||?
+
| ESHOP://50010000014732.J00101Z00407 || JPN || Chain Blaster || JCBJ || 00040000000DCC00
 
|}
 
|}
    
* New QR Code for Japanese "Photos with Super Mario" has a different code string: ESHOP://50010000013120.J00108Z00001.CD588EAE95A3A68D15C647DA2AC0945FD88F70AB8A31149E51C4B05FB927B0B8
 
* New QR Code for Japanese "Photos with Super Mario" has a different code string: ESHOP://50010000013120.J00108Z00001.CD588EAE95A3A68D15C647DA2AC0945FD88F70AB8A31149E51C4B05FB927B0B8
   −
* There is a link in the Japanese eShop <nowiki>[http://www.nintendo.co.jp/3ds/eshop/qrCode.html?####]</nowiki> where you can replace the #### with the Japanese eShop title's serial and you will get it's QR code. (i.e. http://www.nintendo.co.jp/3ds/eshop/qrCode.html?jcaj will get you the pushmo QR code)
+
* There is a link in the Japanese eShop <nowiki>[http://www.nintendo.co.jp/3ds/eshop/qrCode.html?####]</nowiki> where you can replace the #### with the Japanese eShop title's serial and you will get it's QR code. (i.e. http://www.nintendo.co.jp/3ds/eshop/qrCode.html?JCAJ will get you the pushmo QR code)
    
* You could use Google's Chart API to create a QR code from the codes above: https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=ESHOP (replace the ESHOP text with the ESHOP:// link from one of the above)
 
* You could use Google's Chart API to create a QR code from the codes above: https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=ESHOP (replace the ESHOP text with the ESHOP:// link from one of the above)
Line 126: 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 152: Line 159:     
ninja.ctr.shop.nintendo.net and samurai.ctr.shop.nintendo.net contain the bulk of the eShop information.
 
ninja.ctr.shop.nintendo.net and samurai.ctr.shop.nintendo.net contain the bulk of the eShop information.
 +
 +
Requests with the following parameters will always return XML unless the header "Accept: application/json" is used, in which case JSON will be returned.
    
=== Common Parameters to ninja and samurai ===
 
=== Common Parameters to ninja and samurai ===
Line 167: Line 176:  
|  shop_id
 
|  shop_id
 
|  depends on the URL, usually no
 
|  depends on the URL, usually no
|  Describes which eShop instance should be used. 1 indicates the 3DS eShop, 2 indicates the Wii U eShop. 3 seems to yield the same results as 2. Values greater than 3 or less than 1 are invalid. Defaults to 2 or 3 if not given.
+
|  Describes which eShop instance should be used. 1 indicates the 3DS eShop, 2 indicates the Wii U eShop. 3 yields the same results as 2 but uses the img-eshop image server. 4 yields similar results as 3 but includes VC titles and updates, lacks image links for /titles and lacks release dates, prices and whether eShop and web sales are possible. For 4, links are given in both MP4 and Moflex formats for movies. Values greater than 4 or less than 1 are invalid. Defaults to 2 if not given.
 
|  unsigned integer
 
|  unsigned integer
 
|  1
 
|  1
Line 196: 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 210: 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 216: Line 249:  
|-
 
|-
 
|  /samurai/ws/'''region'''/telops
 
|  /samurai/ws/'''region'''/telops
Some kind of news?
+
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)'''
(unknown)
+
Collections, like sales
|  (unknown)
  −
|-
  −
|  /samurai/ws/'''region'''/title/'''content id'''
  −
|  Returns information about the title, more verbose than /titles.
   
|  (none)
 
|  (none)
|-
  −
|  /samurai/ws/'''region'''/contents
  −
|  Seems identical to /titles.
  −
|  see /titles
   
|-
 
|-
 
|  /samurai/ws/'''region'''/genres
 
|  /samurai/ws/'''region'''/genres
Line 239: Line 268:  
|  (none)
 
|  (none)
 
|-
 
|-
|  /samurai/ws/'''region'''/title/'''content id'''/aocs
+
|  /samurai/ws/'''region'''/platforms
|  Returns a list of add-on contents/downloadable content and prices in eShop region currency.
+
|  Returns a list of human-readable platform names and their corresponding platform id.
 +
|  (none)
 +
|-
 +
|  /samurai/ws/'''region'''/languages
 +
|  Returns a list of languages available on the regional server with the ISO 639-1 code used for the lang parameter.
 
|  (none)
 
|  (none)
 
|}
 
|}
Line 256: Line 289:  
|  /ninja/ws/'''region'''/title/'''content id'''/ec_info
 
|  /ninja/ws/'''region'''/title/'''content id'''/ec_info
 
|  Contains information about the title. Such as title id, content size, and if available, the 9.6 crypto seed
 
|  Contains information about the title. Such as title id, content size, and if available, the 9.6 crypto seed
 +
|  (none)
 +
|-
 +
|  /ninja/ws/titles/id_pair
 +
|  Provides the content id for the given title id, or vice versa.
 +
|  title_id[] or ns_uid[] is required.
 +
|-
 +
|  /ninja/ws/'''region'''/tax_locations
 +
|  Provides the tax location ID
 +
|  postal_code is required.
 +
|-
 +
|  /ninja/ws/service_hosts
 +
|  Provides CCIF and Samurai servers
 +
|  country and shop_id is required.
 +
|-
 +
|  /ninja/ws/country/'''region'''
 +
|  Various eshop related information for a given region
 +
|  (none)
 +
|-
 +
|  /ninja/ws/country/'''region'''/replenish_amounts
 +
|  Provides the amounts of money you can replenish to your account.
 
|  (none)
 
|  (none)
 
|}
 
|}
 +
 +
=== Trusted Root CAs ===
 +
The eShop application itself uses a [[HTTP_Services|RootCertChain]] for all HTTPS requests, all of the trusted root CAs are the following [[SSLC:RootCertChainAddDefaultCert|default]] ones:
 +
* CertID 0x3
 +
* CertID 0x6
 +
* CertID 0x7
 +
* CertID 0x8
 +
* CertID 0x9
 +
* CertID 0xA
 +
 +
=== Server changes following the November 2, 2015, maintenance ===
 +
Pre-v10.0 eShop used an URL like this: "%s/samurai/ws/%s/title/%llu/other_purchased?shop_id=1&lang=%s&_type=json". That URL was removed with v10.0. That URL was requested when trying to load eShop app-pages. Following the maintenance mentioned above, this page was removed from the server, which broke pre-v10.0 eShop app whenever it tried to access that page.
 +
 +
URL changes between [[9.7.0-25]] and [[10.0.0-27]] are (green = add, red = remove):
 +
 +
%s/ninja/ws/%s/titles/online_prices?title%%5B%%5D=%s&lang=%s<span style="color:#00FF00">&include_coupon=true</span>&shop_id=1&_type=json
 +
 +
<span style="color:#00FF00">%s/ninja/ws/%s/coupon/!check?shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/my/owned_coupons?ns_uid=%llu&shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/my/owned_coupons?shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/my/parental_control/!put?shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/%s/title/%llu/prepurchase_info?%s=%s&shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/samurai/ws/%s/coupon/%llu/titles?lang=%s&limit=%u&offset=%u&shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/my/auto_billing/plans?limit=%u&offset=%u&shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/%s/titles/online_prices?title%%5B%%5D=%s&lang=%s&include_coupon=true&coupon_id=%llu&shop_id=1&_type=json</span>
 +
 +
<span style="color:#00FF00">%s/ninja/ws/my/auto_billing/%014llu/!cancel?shop_id=1&_type=json</span>
 +
 +
<span style="color:#FF0000">%s/samurai/ws/%s/title/%llu/other_purchased?shop_id=1&lang=%s&_type=json</span>
 +
 +
<span style="color:#FF0000">%s/samurai/movie/%s/%s/%014llu/moflex</span>
 +
 +
==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.
 +
 +
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==
 +
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.
3

edits

Navigation menu