Submission #7416: dekutony's NES Pokémon Puzzle Collection "Shadow Puzzle" in 02:49.52

(Link to video)
Nintendo Entertainment System
Pokémon Puzzle Collection
Shadow Puzzle
BizHawk 2.8.0
10188
60.0988138974405
2006
PowerOn
Pokemon Puzzle Collection (USA).min
Submitted by dekutony on 4/1/2022 6:22:15 PM
Submission Comments
WARNING: The encode features a LOT of screen shaking. If you're sensitive to that sort of thing, DO NOT watch the video to avoid any potential health issues. Sorry about that, but I don't know how to change this.

Game objectives

  • Emulator used: BizHawk 2.8
  • Core: PokeMini (Libretro)
  • Genre: Puzzle
  • Aims to show what a Pokémon mini TAS looks like

Movie Comments

Hi there. This is a TAS of Pokémon Puzzle Collection for the Nintendo Pokémon mini. The Pokémon mini is an obscure, tiny handheld made by Nintendo in the early 2000s, and only featured a selection of small Pokémon related games. Pokémon Puzzle Collection is, as the name implies, a collection of various puzzle types featuring Pokémon characters. This TAS finishes all the levels in the "Shadow Puzzle" mode of the game.
Let's get to explaining the movie itself first. In this game, your inputs register at about 1/30th of a second as opposed to 1/60th. You have to wait for one frame before pressing another input. You can press multiple inputs in one frame, like pressing a D-Pad direction and the A/B button for 1 frame. After pressing the same input, for example, the A button, you have to wait 3 frames before the game registers another A press. At the final levels of the game, you sometimes have to wait 5 frames instead. I don't know why this happens.
Shadow Puzzle consists of fitting all the pieces into a sillouette of a Pokémon. You can grab/place a piece with A and move/select a piece with the D-pad. You can rotate a piece by pressing B, but only in a clock-wise orientation. After placing all the pieces correctly, you'll "catch" the Pokémon and it will be registered into your Pokémon mini Dex. There's 20 levels in Shadow Puzzle, and 80 levels total.
So basically, this TAS consists of optimal menuing and puzzle piece placement. There's not much else to it, and it is fairly simple and straightforward to optimize. Now I must admit I got stuck for nearly 2 hours trying to solve the last Jigglypuff puzzle when playing casually... Not my proudest gaming moment, to be honest.

Making of this TAS

OK, let's get slighly more serious. This TAS, as far as I'm aware, is the very first completed and optimized movie of a Pokémon mini game. Maybe I'm being dumb and didn't look far enough on Google or Nicovideo, but I believe I'm the first person to do something like this. I used the PokeMini Libretro core, which can be used on BizHawk thanks to it's experimental Libretro core support.
Let's talk about the TASing experience I had while making this movie. Now first of all, you MUST use TAStudio in order to record a movie properly. Using the regular recording movie option could potentially result in desyncs as it can just skip the date/time settings screen for some reason. I know TAStudio is basically the standard for recording movies these days, but I just wanted to get that out there. Using savestates works just fine. A/V recording also worked fine and I made an HD encode without too many issues either. Using TAStudio can get confusing at first since all inputs are labeled as "!", but after figuring out which input does what and setting up TAStudio properly it's not too bad. Now I couldn't test the reed switch, I dunno how can I use it within BH itself. That could bring up sync issues but I can't say for certain. Of course because this is a Libretro core, I can't use most tools offered by BH, like RAM Watch or other things like that, but it still got the job done. I wish I could remove the screen shaking though... I can't change any settings for this core due to it being a Libretro core running on BizHawk.
Of course, because I used a Libretro core to make this movie, this is probably not qualified for publication, but this was made to demonstrate just how stable this core is, a proof of concept, if you will. I believe, even in the state that this core is in, is stable and workable enough to make an optimized, finished TAS. Hopefully we'll get a proper PkMiNi core in the future. I do wish that some healthy discussion can be made in regards to this movie though, I really want to see what people think about this.

How to sync the movie

Syncing this movie is simple enough I feel. You just have to follow the tutorial here: https://tasvideos.org/Bizhawk/Libretro
If for some reason the new method doesn't work for you, back when I started testing this core a few years ago, I used the older, BizHawk 1.11.4 method of installing the cores, which means the folders/core organization for me went like this: bizhawk/Libretro/Cores/System/pokemini_libretro/pokemini_libretro.dll
You can get the latest nightly builds of the cores here: http://buildbot.libretro.com/nightly/windows/x86_64/latest/
I also made sure to include the Pokémon mini BIOS inside the Firmware folder, just for good measure. The movie consistently syncs for me, even after updating the core to the latest nightly build.
Here's the unedited movie file, because I couldn't submit that. I had to edit the header in order to submit this movie, so use this movie file instead to sync the movie: https://tasvideos.org/UserFiles/Info/637844343115451234

Other comments

I chose to TAS Shadow Puzzle simply due to it being the fastest and most technical mode in the game. An ideal TAS for this game would be a 100% TAS where all the modes are completed with all 80 mons caught and registered in the mini Dex.
If/when a proper PkMiNi core gets implemented into Hawk that's acceptable for publications, I can think of other games that have good TASing potential, such as Pokémon Race mini, Togepi's Great Adventure, and the homebrew game Psychic Seeds... maybe Shock Tetris too.
I made a GitHub request not too long ago for a proper Pokémon mini core for BizHawk: https://github.com/TASEmulators/BizHawk/issues/3162
Also before anyone even DARES to suggest using libTAS to TAS the emulator itself on Linux... NO. There's no way in heck I'll go through all that trouble just to TAS something from the frickin' pokémon mini. It's just not worth the effort for me and I don't even have the means to do all that anyways, so... no thank you.

Special Thanks

  • To the BizHawk dev team and PokeMini devs for making this TAS possible.
  • To the people at https://www.pokemon-mini.net/ for their various info about the Pokémon mini and the manual for this game.
  • To the people at https://serebii.net/ for showing all the solutions to the puzzles in this game.
  • To Uncle Derek from Stop Skeletons from Fighting for getting me into the Pokémon mini.
  • And to YOU, for watching and reading this dumb April Fools submission.

Samsara: oh crap i have to be professional for this one
Uh, okay, judging this potentially precedent-setting submission!
Samsara: The submission thread explains everything far better than I'd be able to, but here's a quick summary: Libretro is garbage. Okay, here's a more extended summary: Libretro's API makes it pretty much impossible to even parse the system correctly. This submission had to be edited in order to get through the parser, and even if the parser was able to recognize the system ID, it could only ever be "Libretro", which by itself should not be acceptable here. On top of that, Libretro cores may not be deterministic according to the submission text, and several of the cores are allegedly built off of stolen and outdated code. Any effort spent on supporting a Libretro core would simply be better spent on implementing a better core into BizHawk proper.
I think it's safe to say we won't be accepting Libretro core TASes here. Not at the current time, and probably not ever. I do hope this submission achieves its goal of helping a proper Pokemon Mini core get implemented into BizHawk, though!
Last Edited by dekutony on 2/24/2023 11:20 PM
Page History Latest diff List referrers