Nintendo GameCube and Switch “Wrapped” 2025 🎮🎁
> This is my last blog post for 2025 💜 Thanks for reading, see you in 2026!
One of my goals for 2025 was to _play more games!_ I've been collecting play activity for my Nintendo Switch, Switch 2, and my Nintendo GameCube. I've published a combined SQLite database with this data for 2025 with games, play sessions, and more. Feel free to dig into this data yourself, I've included some queries and my own thoughts, too.
Here are the questions I answered with this data:
* What were my favorite games this year?
* Which game system did I play the most?
* Which games did I play the most?
* Which games did I play most per-session?
* When did I start and stop playing each game?
* Which game was I most consistently playing?
* When did I play games?
* Which day of the week did I play most?
## What were my favorite games this year?
Before we get too deep into quantitative analysis, let's start with the games I enjoyed the most and defined this year for me.
My favorite game for the GameCube in 2025 is **Pikmin 2**. The Pikmin franchise has always held a close place in my heart being a lover of plants, nature, and dandori.
One of my major video-gaming projects in 2025 was to gather every unique treasure in Pikmin 2. I called this the “International Treasure Hoard” following a similar naming to the “National PokéDex”. This project required buying both the Japanese and PAL versions of Pikmin 2 which I was excited to add to my collection.
The project was inspired by a YouTube short from a Pikmin content creator I enjoy named “JessicaIn3D”. The video shows how there are three different treasure hoards in Pikmin 2, one per region, meaning its impossible to collect every treasure in a single game.
_“You Can't Collect Every Treasure In Pikmin 2” by JessicaIn3D_
The project took 4 months to complete, running from June to October. I published a script which analyzed Pikmin 2 save file data using this documentation on the save file format. From here the HTML table in the project page could be automatically updated as I made more progress. I published regular updates to the project page as the project progressed, too.
_Pikmin 2 for the GameCube (NTSC-J, NTSC-M, and PAL) and the Switch._
My favorite game for the Switch family of consoles in 2025 is **Kirby Air Riders**. This game is pure chaotic fun with a heavy dose of nostalgia for me. I was one of the very few that played the original game on the Nintendo GameCube 22 years ago. I still can't believe this gem of a game only sold 750,000 units in the United States. It's amazing to see what is essentially the game my brother and I dreamed of as a sequel: taking everything great about the original release and adding online play, a more expansive world, and near-infinite customization and unlockables.
This game is fast-paced and fits into a busy life easily: a single play session of City Trail or Air Ride mode lasts less than 7 minutes from start to finish. I'll frequently pick this game up to play a few rounds between work and whatever the plans of the evening are. Each round is different, and you can pursue whichever strategy you prefer (combat, speed, gliding, legendary-vehicle hunting) and expect to have a fighting chance in the end.
_Kirby Air Ride for the GameCube (NTSC-J and NTSC-M) and Kirby Air Riders for the Switch 2._
## Which game system did I play the most?
Even with the Switch and Switch 2 bundled into one category I **played the GameCube more in 2025**. This was a big year for me and GameCube: I finally modded a platinum cube and my childhood indigo cube with the FlippyDrive and ETH2GC. I've got a lot more in store for the GameCube next year, too.
System | Duration
---|---
GameCube | 41h 55m
Switch | 35h 45m
> SQLite query
>
>
> SELECT game_system, SUM(duration) AS d FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY game_system ORDER BY d DESC;
Here's the same data stylized like the GitHub contributor graph. Blue squares represent days when I played GameCube and red squares I played the Switch or Switch 2, starting in June 2025:
> I also played **Sonic Adventure** on a newly-purchased **SEGA Dreamcast** for the first time in 2025, too. Unfortunately I don't have a way to track play data for the Dreamcast (yet?) but my experience with the Dreamcast and Sonic Adventure will likely get its own short blog post eventually, stay tuned.
## Which games did I play the most?
I played 9 unique titles this year (including region and platform variants), but which ones did I play the most?
Game | Duration
---|---
Pikmin 2 | 27h 11m
Animal Crossing | 16h 47m
Kirby Air Riders | 16h 15m
Mario Kart World | 10h 25m
Super Mario Odyssey | 4h 45m
Pikmin 4 | 1h 5m
Overcooked! 2 | 45m
Kirby's Airride | 15m
Sonic Origins | 10m
> SQLite query
>
>
> SELECT game_name, SUM(duration) AS d FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY game_name ORDER BY d DESC;
That's a lot of **Pikmin 2** , huh? This year collected all 245 unique treasures across the three regions of Pikmin 2 (JP, US, and PAL) including a 100% complete save file for the Japanese region. This is the first time I collected all treasures for a single Pikmin 2 play-through.
We can break down how much time was spent in each region and system for Pikmin 2:
System | Region | Duration
---|---|---
GameCube | US | 9h 24m
GameCube | JP | 9h 17m
GameCube | PAL | 6h 9m
Switch | US | 2h 20m
> SQLite query
>
>
> SELECT game_system, game_region, SUM(duration) AS d FROM sessions WHERE STRFTIME('%Y', date) = '2025' AND game_name = 'Pikmin 2' GROUP BY game_system, game_region ORDER BY d DESC;
You can see I even started playing the Switch edition of Pikmin 2 but bailed on that idea pretty early. Playing through the same game 3 times in a year was already enough :) The US and JP versions were ~9 hours each with PAL receiving less play time. This is due to PAL only having 10 unique treasures, so I was able to speed-run most of the game.
## Which games did I play most per session?
This query sorta indicates “binge-ability”, when I did play a title how long was that play session on average? **Super Mario Odyssey** just barely took the top spot here, but the two Switch 2 titles I own were close behind.
Name | Duration
---|---
Super Mario Odyssey | 57m
Mario Kart World | 56m
Kirby Air Riders | 51m
Pikmin 2 | 49m
Animal Crossing | 47m
Overcooked! 2 | 45m
Pikmin 4 | 32m
Kirby's Airride | 15m
Sonic Origins | 5m
> SQLite query
>
>
> SELECT game_name, SUM(duration)/COUNT(DISTINCT date) AS d FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY game_name ORDER BY d DESC;
## When did I start and stop playing each game?
I only have enough time to _focus_ on one game at a time, so there is a pretty linear history of which game is top-of-mind for me at any one time. From this query we can construct a linear history:
* Pikmin 2 (June→Oct)
* Animal Crossing (July→Aug)
* Super Mario Odyssey (Oct)
* Pikmin 4 (Nov, “Decor Pikmin”)
* Mario Kart World (July→Nov)
* Kirby Air Riders (Nov→Dec)
I still want to return to Super Mario Odyssey, I was having a great time with the game! It's just that and Kirby Air Riders came out and stole my attention.
Game | First played | Last played
---|---|---
Pikmin 2 | 2025-06-01 | 2025-10-06
Mario Kart World | 2025-07-20 | 2025-11-17
Animal Crossing | 2025-07-29 | 2025-09-08
Sonic Origins | 2025-08-11 | 2025-08-25
Super Mario Odyssey | 2025-10-13 | 2025-10-21
Kirby Air Riders | 2025-11-07 | 2025-12-21
Pikmin 4 | 2025-11-10 | 2025-11-12
> SQLite query
>
>
> SELECT ( game_name, MIN(date) AS fp, MAX(date) ) FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY game_name ORDER BY fp ASC;
## Which game was I most consistently playing?
We can take the data from the “Days” column above and use that as a divisor for the number of unique days each game was played. This will give a sense of how often I was playing a game within the time span that I was “active” for a game:
Game | % | Days Played | Span
---|---|---|---
Pikmin 4 | 100% | 2 | 2
Super Mario Odyssey | 63% | 5 | 8
Animal Crossing | 51% | 21 | 41
Kirby Air Riders | 43% | 19 | 44
Pikmin 2 | 26% | 33 | 127
Sonic Origins | 14% | 2 | 14
Mario Kart World | 9% | 11 | 120
> SQLite query
>
>
> SELECT ( game_name, COUNT(DISTINCT date) AS played, ( STRFTIME('%j', MAX(date)) -STRFTIME('%j', MIN(date)) ) AS days ) FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY game_name ORDER BY MIN(date) ASC;
If we look at total year gaming “saturation” for 2025 and June-onwards (214 days):
Days Played | % Days (2025) | % Days (>=June)
---|---|---
89 | 24% | 42%
> SQLite query
>
>
> SELECT COUNT(DISTINCT date) FROM sessions WHERE STRFTIME('%Y', date) = '2025';
## When did I play games?
Looking at the year, I didn't start playing games on either system this year until June. That lines up with me receiving my GameCube FlippyDrives which I had pre-ordered in 2024. After installing these modifications to my GameCube I began playing games more regularly again :)
Month | Duration
---|---
June | 10h 4m
July | 9h 40m
August | 18h 26m
September | 7h 22m
October | 10h 0m
November | 15h 5m
December | 7h 0m
> SQLite query
>
>
> SELECT STRFTIME('%m', date) AS m, SUM(duration) FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY m ORDER BY m ASC;
August was the month with the most play! This was due entirely to playing Animal Crossing Deluxe (~16 hours), a mod by Cuyler for Animal Crossing on the GameCube. Animal Crossing feels the best when you play for short sessions each day which I why I was playing so often.
Game | Duration
---|---
Animal Crossing | 15h 41m
Mario Kart World | 2h 15m
Pikmin 2 | 19m
Sonic Origins | 10m
> SQLite query
>
>
> SELECT game_name, SUM(duration) FROM sessions WHERE STRFTIME('%Y-%m', date) = '2025-08' GROUP BY game_name;
## Which day of the week did I play most?
Unsurprisingly, weekends tend to be the days on average with the longest play sessions. **Sunday** just barely takes the highest average play duration per day. Wednesday, Thursday, and Friday have the lowest play activity as these days are reserved for board-game night, seeing family, and date night respectively :)
Day | Duration | Days | Average
---|---|---|---
Sun | 16h 16m | 15 | 1h 5m
Mon | 13h 52m | 17 | 48m
Tues | 14h 9m | 16 | 53m
Wed | 11h 17m | 15 | 45m
Thur | 6h 35m | 9 | 43m
Fri | 5h 45m | 8 | 43m
Sat | 9h 42m | 9 | 1h 4m
> SQLite query
>
>
> SELECT STRFTIME('%w', date) AS day_of_week,SUM(duration),COUNT(DISTINCT date),SUM(duration)/COUNT(DISTINCT date) FROM sessions WHERE STRFTIME('%Y', date) = '2025' GROUP BY day_of_week ORDER BY day_of_week ASC;
* * *
Thanks for keeping RSS alive! ♥