ROM Hack Release: GenTickets

  • Thread starter Thread starter DocKlokMan
  • Start date Start date
  • Views Views 13,794
  • Replies Replies 45
  • Likes Likes 10

Would you like TitleID to be included in the file name?


  • Total voters
    23

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,010
Reaction score
2,588
Trophies
3
Age
38
XP
4,623
Country
United States
You may have already seen the debut of GenTickets in the FunKeyCIA thread here. However I'm making a thread for it to keep track of updates, requests, and visibility.

Release: GenTickets v2.1.2
A script to download ticket files given a TitleID and Encrypted TitleKey OR using your encTitleKeys.bin file and name them by Title Name, region, and TitleID with region filtering. Saves detailed results to a CSV file for importing into Excel or Google Documents (does not work well importing into Numbers). Each run adds to the CSV file if it exists.

Install these tickets with FBI v2 and then download the titles from the eShop.

Requires:
  • Python3, PyCrypto
  • ctr-common-1.crt and ctr-common-1.key (Found on PlaiCDN github)
  • encTitleKeys.bin for BIN processing
  • decTitleKeys.bin for validation (can be skipped)

Usage:
Code:
python3 gentickets.py <REG> <[TitleID EncryptedTitleKey] OR [-bin] OR [-skipcheck]>
REG is the region you'd like to filter. Ex. USA, EUR, JPN, TWN, KOR, etc. Use ANY to make tickets for all regions. (Region free is always included)
You may use a TitleID and Encrypted TitleKey pair or you may use one of the BIN options.
If you have an encTitleKeys.bin that you know contains only valid keys, you may use the -skipcheck option instead of -bin to save time.

  • GenTickets v2.1.2
    • Due to poll results, have added TitleID to end of ticket name as well.
  • GenTickets v2.1.1
    • Removed leading space before file name.
    • Removed quotes in Title Names for Windows compatibility.
  • GenTickets v2.1.0
    • New Feature: Script now parses the titles.csv file if it exists in order to skip titles that have already been processed.
    • Bug fixes for when encTitleKeys.bin is missing titles compared to decTitleKeys.bin
    • Further clarification of what's happening in the script.
  • GenTickets v2.0.3
    • Filtered additional characters that may cause issues in unreleased titles.
    • Clarified results.
  • GenTickets v2.0.2
    • Added additional checks and filtered additional characters that would cause issues.
  • GenTickets v2.0.1
    • Added checks for missing requirements.
  • GenTickets v2.0 by @AnalogMan
    • Creates tickets from TitleID/TitleKey Pair or encTitleKeys.bin.
    • Pulls metadata and names tickets appropriately as "Title Name (REG).tik"
    • Outputs detailed results to CSV file for importing into Excel or Google Spreadsheets
  • GenTickets v1.0 by @mid-kid
    • Created tickets from encTitleKeys.bin

Script attached to post.
 

Attachments

Last edited by DocKlokMan,
This is technically faster than using FunKeyCIA now we wait for FunKeyCIA to turn into its own eShop app with a full eShop like GUI
 
  • Like
Reactions: Hoppy
I just tested it and that's the error you get running it with Python 2. Make sure you're actually typing "python3 gentickets.py" to use Python 3
I have python 2 and 3.5 installed, working fine. I'll be interested to see this work out.

I have to ask though, why can't Nintendo ban people off their ticket.db?
It seems like a new public headers issue like for .3ds files, with a bunch of ticket.dbs having the same title keys.
 
I have python 2 and 3.5 installed, working fine. I'll be interested to see this work out.

I have to ask though, why can't Nintendo ban people off their ticket.db?
It seems like a new public headers issue like for .3ds files, with a bunch of ticket.dbs having the same title keys.
Each unique title use the same TitleKey, that is how Nintendo made their eShop. If you purchased a title on two 3DS's they'd have the same TitleKey.

However they could easily ban us for having fake TitleID's from our Homebrew since day one of the 3DS's being able to install CIA homebrew but they haven't.
 
  • Like
Reactions: Hking0036
I had to use python instead of python3 even though i have python version 3.
Weird, I'm on Mac OS X so I specify python3. Or you can give it execute permission with chmod +x gentickets.py and then just run it with ./gentickets.py and it will pick automatically.
 
Crashed:
5vCnYZ4.png


Stumped on how to install PyCrypto on Python 3.5 32 bit. Can't find any binaries.
You can google up binaries for python up to 3.3, but I managed to find a build for 3.5 here: https://github.com/sfbahr/PyCrypto-Wheels
 
Last edited by Hking0036,
The download process is relatively slow when processing the entire encTitleKeys from that one key site.

Is it possible to add a feature to only download new tickets when running it a second time?
 
This is technically faster than using FunKeyCIA now we wait for FunKeyCIA to turn into its own eShop app with a full eShop like GUI
FunKeyCIA does what this does, apart from sorting the tickets (and checking the keys)
i wouldn't say it is faster or slower, maybe FunKeyCIA is simpler because you can give -nfskeyfile and it will fetch the encrypted key file for you from online... :)
 

Site & Scene News

Popular threads in this forum