Homebrew [Announcement] TitleDB.com - 3DS Homebrew Title Database

  • Thread starter Thread starter ksanislo
  • Start date Start date
  • Views Views 44,288
  • Replies Replies 119
  • Likes Likes 32
Thanks for the API! I have a few questions related to it:
- What exactly ist "mtime"?
- Why is updated_time sometimes "null"? I noticed this with FBI, CTRXplorer shows a date.
- Can you do the "where" field case-insensitive? E.g., when I POST this:
Code:
{ "action": "list", "fields": ["titleid"], "where": { "name": "ctrxplorer"} }
I get no result ("[]"). It only works when I use "CTRXplorer".
 
Good idea. I've modified buildtools to include the description in the long title as mentioned.

One suggestion I have is to also parse the version from the CIA, especially for use by homebrew management applications. I just added proper CIA version support to buildtools as well, and it can be parsed into a nice major.minor.micro format for viewing as specified here: http://3dbrew.org/wiki/Titles#Versions

I've actually been trying to find this already... I'm assuming the TMD is the only location that has a real version in homebrew (based on looking at the makerom code) but so far even knowing the offsets of where it is in there, I haven't been able to find anything that will reliably decode into version numbers. Hopefully I'll have more time to poke at this later in the week. If you can provide any input on the matter, I'd greatly appreciate the assistance.

--------------------- MERGED ---------------------------

Thanks for the API! I have a few questions related to it:
- What exactly ist "mtime"?
- Why is updated_time sometimes "null"? I noticed this with FBI, CTRXplorer shows a date.
- Can you do the "where" field case-insensitive? E.g., when I POST this:
Code:
{ "action": "list", "fields": ["titleid"], "where": { "name": "ctrxplorer"} }
I get no result ("[]"). It only works when I use "CTRXplorer".

Yeah, names are case sensitive... I suppose I could fix that in the backend if it's really a big deal, i'll see what I can do in the next big update.

update_time is null when there's not been an update since the initial creation, its the time when the backend API last saw a change.

mtime is the modification time of the .cia or link, in unix style epoch time (seconds since 1970) as best as can be calculated, since not all web servers are forthcoming with mod times.
 
Last edited by ksanislo,
  • Like
Reactions: Brawl345
I've actually been trying to find this already... I'm assuming the TMD is the only location that has a real version in homebrew (based on looking at the makerom code) but so far even knowing the offsets of where it is in there, I haven't been able to find anything that will reliably decode into version numbers. Hopefully I'll have more time to poke at this later in the week. If you can provide any input on the matter, I'd greatly appreciate the assistance.
If you get the "Version" value from the TMD header (http://3dbrew.org/wiki/Title_metadata#Header), you can then decode it as mentioned in the previous link; bottom 4 bits are the micro version, the next 6 are minor, and the next 6 are major. Most current homebrew doesn't seem to use this, but buildtools now supports it, so mine, and hopefully others, will begin to use it soon. Building the latest source of FBI would provide a CIA that could be tested with any decoding logic.
 
Last edited by ,
If you get the "Version" value from the TMD header (http://3dbrew.org/wiki/Title_metadata#Header), you can then decode it as mentioned in the previous link; bottom 4 bits are the micro version, the next 6 are minor, and the next 6 are major. Most current homebrew doesn't seem to use this, but buildtools now supports it, so mine, and hopefully others, will begin to use it soon. Building the latest source of FBI would provide a CIA that could be tested with any decoding logic.

Awesome... I suspected that most of them just didn't have a version, but I'd seen a few that looked like they showed a version when checked with the 3DS's Service API, but the results from trying to decode the TMD never matched, so I put the whole idea aside to focus on other things. I'll get back to trying it, using FBI as an example for something that is known to have good data in it now.
 
Hi, I have a suggestion. Could it be possible for if you click on the name of the homebrew it goes to the github main page/gbatemp thread so we can know what each homebrew does? Would really make the site more user friendly :)
 
Hi, I have a suggestion. Could it be possible for if you click on the name of the homebrew it goes to the github main page/gbatemp thread so we can know what each homebrew does? Would really make the site more user friendly :)

I'm still working on a solution for this... The problem is that all data is extracted from the .cia itself, and there's no real place that a CIA does, or even can, store that information. I could make a hacky solution that will link back to github projects, but that still leaves everything else that isn't on github with no way to maintain extra data about it. After I get an authentication system bolted into here, I'd like for people to be able to take ownership of their own projects and fill in that data if they'd like on their own.
 
I'm still working on a solution for this... The problem is that all data is extracted from the .cia itself, and there's no real place that a CIA does, or even can, store that information. I could make a hacky solution that will link back to github projects, but that still leaves everything else that isn't on github with no way to maintain extra data about it. After I get an authentication system bolted into here, I'd like for people to be able to take ownership of their own projects and fill in that data if they'd like on their own.
Never realised the data was extracted from the CIA... That's kinda problematic
 
Never realised the data was extracted from the CIA... That's kinda problematic
Unfortunately so, but we've had a few website/homebrew store type projects that always seem to fail because their backend data doesn't stay up to date... I'm trying to avoid that whole mess by making sure that this one doesn't require somebody to baby-sit it and manually update all the projects that are listed.
 
Unfortunately so, but we've had a few website/homebrew store type projects that always seem to fail because their backend data doesn't stay up to date... I'm trying to avoid that whole mess by making sure that this one doesn't require somebody to baby-sit it and manually update all the projects that are listed.
That's a really good idea, but how do you support the website with no advertising? Couldn't this die aswell if there isn't enough money to support the costs of running the server?
 
That's a really good idea, but how do you support the website with no advertising? Couldn't this die aswell if there isn't enough money to support the costs of running the server?

Nah, I'm not worried about the costs for keeping things up. I already host enough stuff on the internet that the cost of this one additional service is basically negligible.

Edit: Just because I was curious, I went and checked my actual bandwidth usage for this... Including the launch rush, and repeatedly blowing away the proxy cache while working on things, we're on par to have an actual running cost of somewhere under $0.25 for the site this month. ;)
 
Last edited by ksanislo,
  • Like
Reactions: Slattz and Brawl345
I don't know, I personally don't mind the ads as long as they're not pop-ups that comes out on a link in the site itself. I really want to suppress any chance of this site going down, so if it needs to be done, I think it's ok. Don't know about other people though.
 
Just a heads up for anyone who wants to write a client that uses this API in Lua, I've cleaned up the httpc networking code in there so it has a functional POST command and can follow URL redirection for downloading apps from the site when they're not proxied as well. Good luck and have fun!
 
Some sort of a report system might not be a bad idea.

In lieu of that - Both Undertale titles on the DB are RickRolls. Don't download them.
 
Some sort of a report system might not be a bad idea.

In lieu of that - Both Undertale titles on the DB are RickRolls. Don't download them.


That might be the most fantastic thing ever...

But yeah, I need to add a login system first so I can tie things like ratings to a user so they won't just get spammed. I'm working on this as well as download counts and being able to tie a 3DS to a user login on the API, so I can keep better control of some of the actions that need to be restricted. Unfortunately, I'm still needing to split my time between building the back end for this site, and fixing up http support on the 3DS in general, so people can actually make apps that can utilize it.
 
Last edited by ksanislo,
Just wanted to drop by and say that this is an awesome project and I'd love to see more progress made on it.
A centralized location for links to Homebrew CIAs is a really good idea, especially if all homebrew developers can just agree to maintain their links so they're up to date.
 
- Horizontal overflow no matter the viewport width
- Table doesn't have a margin unlike everything else on the page
- The page navigation is centered according to the viewport, not the table itself
- Bootstrap is kinda bland (just my opinion)
 
Is there any moderation queue? It's possible to brick the 3ds from userland CIA, so unmoderated submissions aren't good. Luckily they have only been rick rolls.
 

Site & Scene News

Popular threads in this forum