Homebrew RELEASE NX Activity Log - View (slightly) more detailed play statistics!

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
23
XP
1,525
Country
Australia
My first homebrew project, NX Activity Log, reads and displays the amount of information about our play activity that we should have been given on the User Page. The UI has been designed to feel familiar and is navigated in a similar manner to the Switch's firmware.

I'm essentially aiming to create a better version of the user page, but we'll see if I can actually do that :P

It currently has the following features:
  • Viewing Play Activity (per user)
    • All Time Activity
      • Total Playtime in minutes
      • Number of times a game has been launched
      • Date of first launch
      • Date/time of most recent launch
      • Average time spent in a game
      • Sorting games by time played, recently played, etc.
    • Recent Activity (see note below)
      • Graph visualizing play time
      • View by day, month or year
      • Total playtime in seconds
      • Number of launches
      • Viewing each 'Play Session'
    • Event-by-event breakdown of your activity
  • Multi-language Support
    • English, French, German, Italian, Portugese and Russian
  • Theme Support
    • Automatic theme detection to match the Switch's colour scheme
    • Custom Themes
      • All colours used in the app can be adjusted
      • Set a custom background image
        • Requires a PNG saved at /config/NX-Activity-Log/background.png
  • Update in-app
    • Checks for updates automatically and displays an icon if one is available
    • Update completely within the app
  • User Page Replacement
    • Requires LayeredFS and either Atmosphere 0.10.0+, ReiNX or SXOS (or build and copy the forwarder to your CFW-specific titles folder)
    • Requires .nro to be at /switch/NX-Activity-Log/NX-Activity-Log.nro
Note: The data shown in Recent Activity and Details may be slightly inaccurate over larger periods of time (ie. off by a few minutes) but I will try to improve this over time. If activity is not being shown for earlier periods of time it is likely your switch has been reset at some point, which wipes the data used to calculate playtime in this way.

sc_recent.jpg


More information and the latest release can be found on GitHub: https://github.com/tallbl0nde/NX-Activity-Log
Please report any bugs (or feature requests) as issues on the GitHub page!
 
Last edited by tallbl0nde,

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,753
Trophies
1
Age
44
XP
6,417
Country
Germany
@tallbl0nde
Now that's a tool for me!
Since as the dev of it you already know how to deal with the log stored on SYSTEM:/save, can you tell me how to inject the play log from a NAND dump (or at least read that out) to edit it to the new one?
I know my case is pretty unique and special, but I'm one of the few people that really care for the play log.
My Switch got stolen and I bought a new one. Fortunately I have a NAND dump of the old one from less than a month before it was stolen and I would be pretty happy to merge the play log from there into my current emuMMCs play log if possible in any way.
I know that it's 80000000000000F0 in SYSTEM:/save but somehow I don't dare to simply copy it over from my old NAND dump to my new Switch's emuMMC.
 

Garou

Well-Known Member
Member
Joined
Jan 13, 2015
Messages
1,213
Trophies
0
XP
1,667
Country
@tallbl0nde
Now that's a tool for me!
Since as the dev of it you already know how to deal with the log stored on SYSTEM:/save, can you tell me how to inject the play log from a NAND dump (or at least read that out) to edit it to the new one?
I know my case is pretty unique and special, but I'm one of the few people that really care for the play log.
My Switch got stolen and I bought a new one. Fortunately I have a NAND dump of the old one from less than a month before it was stolen and I would be pretty happy to merge the play log from there into my current emuMMCs play log if possible in any way.
I know that it's 80000000000000F0 in SYSTEM:/save but somehow I don't dare to simply copy it over from my old NAND dump to my new Switch's emuMMC.
not tested but you might be able to inject system save using https://github.com/Adubbz/Compelled-Disclosure, just change the VMDB_SAVE_ID in main.c to 0x80000000000000F0 and compile the app

and as for your last sentence, why not backup your current save for 80000000000000F0 before overwrite it with the one from your old dump?
system save is not encrypted with console specific key afaik, though I have no idea if the files within are console specific

as for editing play log, 80000000000000F0 save itself contains 3 files
migration.ok
BaseTimePoint.bin
PlayEvent.dat

with PlayEvent.dat as the biggest one (mine is about 16MB)
unfortunately I couldn't find any documentation about this file on switchbrew so no clue how to edit it, but based on the look it doesn't seem to be encrypted
 

veekay

Well-Known Member
Member
Joined
Jan 30, 2008
Messages
227
Trophies
1
XP
806
Country
United States
Excited to try this - really have missed an activity log.

Does this still track games that have been uninstalled?
 

blawar

Developer
Developer
Joined
Nov 21, 2016
Messages
1,709
Trophies
1
Age
40
XP
4,311
Country
United States
Wow this is amazing, so many people requested this. Good luck with the dev process!

Goldleaf supports it as well, but I suspect this dev will add more features to differentiate it.

op: messing with the libnx calls to get this data is a dead end, you have to parse the save file to get the good data. I wrote a grapher for this data if you have any specific questions.
 
Last edited by blawar,

lordelan

Well-Known Member
Member
Joined
Jan 4, 2015
Messages
5,753
Trophies
1
Age
44
XP
6,417
Country
Germany
not tested but you might be able to inject system save using https://github.com/Adubbz/Compelled-Disclosure, just change the VMDB_SAVE_ID in main.c to 0x80000000000000F0 and compile the app

and as for your last sentence, why not backup your current save for 80000000000000F0 before overwrite it with the one from your old dump?
system save is not encrypted with console specific key afaik, though I have no idea if the files within are console specific

as for editing play log, 80000000000000F0 save itself contains 3 files
migration.ok
BaseTimePoint.bin
PlayEvent.dat

with PlayEvent.dat as the biggest one (mine is about 16MB)
unfortunately I couldn't find any documentation about this file on switchbrew so no clue how to edit it, but based on the look it doesn't seem to be encrypted
Nice, thx. This seems a bit easier than creating a dump of my emuMMC, do the magic there with HacDiskMount and restore the emuMMC dump on my Switch.
But what is frightening me is that restoring a savefile of system stuff while being in Horizon doesn't sound very smart.
 

Shadas

Member
Newcomer
Joined
Oct 2, 2019
Messages
15
Trophies
0
Age
36
XP
1,284
Country
Czech Republic
Finally somewone make this awesome app.I really miss this from Wii U. I wish you good luck with this app ;-) Custom background music would be great feature too :-D
 

kekoroto

Active Member
Newcomer
Joined
Mar 20, 2019
Messages
25
Trophies
0
Age
29
Location
Granada
XP
677
Country
Spain
Hi! This may be a very noobish question, but how do you download the nso file for this homebrew? It doesn't look like it is in GitHub.
 

mathew77

Lovin' life.
Member
Joined
Jan 19, 2019
Messages
1,172
Trophies
0
Age
47
XP
3,612
Country
Kazakhstan
Dear tallbl0nde, here's my another humble feature-request: please make an average time counter per 1 launch of the game: for example — playtime of the one's game is 29 hrs 29 min, it was launched 70 times, so average playtime is ~25 minutes per play session.

Thank you in advance!
 
Last edited by mathew77,

veekay

Well-Known Member
Member
Joined
Jan 30, 2008
Messages
227
Trophies
1
XP
806
Country
United States
Answered my own question in the fact that it does not show games that still have the save, but are currently uninstalled.

Hopefully there is a way to fix that.
 

Garou

Well-Known Member
Member
Joined
Jan 13, 2015
Messages
1,213
Trophies
0
XP
1,667
Country
They aren’t encrypted with console unique keys, but they are signed with the console’s device key.
yes but what i meant was whether for example PlayEvent.dat has console info, but that doesn't seem to be the case. already figured out the format and it only has user info
thanks for reminding that the save needs to be signed though
 
  • Like
Reactions: ZachyCatGames

tallbl0nde

Well-Known Member
OP
Member
Joined
Jan 11, 2019
Messages
147
Trophies
0
Age
23
XP
1,525
Country
Australia
@lordelan Sorry to hear about your switch... but I have no idea about that as I'm just using some functions that libnx provides, not actually reading the save file (well at least not yet)

@veekay Unfortunately it doesn't show uninstalled games just yet, that's on the to-do list!

@blawar Thanks, I didn't even know where the save file was before so I'll probably have some questions ;)

@mathew77 I'll add that in soon!
 

slickochet

Well-Known Member
Newcomer
Joined
Jan 3, 2010
Messages
81
Trophies
1
XP
509
Country
Amazing thanks! Been wanting something like this since the switch launched without a proper user history of any kind.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • The Real Jdbye @ The Real Jdbye:
    being poor and healthy is the worst case scenario because you have the longest amount of time to "enjoy" being poor
  • wolffangalchemist @ wolffangalchemist:
    Yeah back in my late teens I used to mow about 10 lawns every two weeks for $35 a yard. It was stupid big yards I knew where paying a lot more than that to lawn care companies in a some what up tier gated community a few blocks from the area I lived. Was great getting $700 a month with no bills at the time and good excercise too, now I have bills so I never have any money to buy things.
  • K3Nv2 @ K3Nv2:
    Yet kids are always like I WANNA BE ADULT
    +1
  • BigOnYa @ BigOnYa:
    I wish I could go back to 14, living at home free and little to no worries.
  • K3Nv2 @ K3Nv2:
    Kids still have bs getting manipulated easily, believing dumb youtube content etc
    +1
  • BigOnYa @ BigOnYa:
    If I could go back, I'd be more of a horn ball than I am now. I'd be chasing all the girls I never had the balls to back then
  • K3Nv2 @ K3Nv2:
    I'd drop out of school sooner
  • wolffangalchemist @ wolffangalchemist:
    Yeah I would probably drop out sooner too, the country ass high school I went to wouldn't know intelligence if it hit the up side the head.
  • BigOnYa @ BigOnYa:
    I used to play those goonies games on NES, used to piss me off
  • wolffangalchemist @ wolffangalchemist:
    I think the most frustrating nes game as a kid to me was contra.
  • BakerMan @ BakerMan:
    well, i got school tomorrow, night yall
  • Jayro @ Jayro:
    Imagine still going to school in 2024... Wild times we live in.
  • Jayro @ Jayro:
    @BigOnYa My most-hated game on the NES was gilligan's island. Couldn't figure out the controls. Played it on actual hardware. Super frustrating, and boring as shit.
    +1
  • Sonic Angel Knight @ Sonic Angel Knight:
    Blue name in chat :P
    +1
  • K3Nv2 @ K3Nv2:
    @Jayro, you realize not everyone is the same age here right
    +1
  • Sonic Angel Knight @ Sonic Angel Knight:
    Jayro reminds me of GYRO! :P
  • Jayro @ Jayro:
    I'm not a greek taco. "Jayro" is pronounced similar to "J.Lo" (Jennifer Lopez). Not "Gyro" like gyroscope or the pitabread taco thing...
  • Jayro @ Jayro:
    "Jay-row" Like that.
    SylverReZ @ SylverReZ: @Jayro, Hello