TASEmulators / TASEmulators/BizHawk

[Core Port Req.] PokeMini (Nintendo Pokémon mini)

Open
#3,162 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Request: New core/port/re-port
Dominant language
C#
Stars
2.8k
Forks
468
PR merge metrics
No merged PRs in 30d

Description

I want to suggest a core for the obscure Pokémon mini handheld.

Upstream info

PokeMini would probably be the emulator of choice for this:

  • Website
  • Target platforms: Win/Tux
  • Language(s): C
  • License: GPL v3
Technical details

pokemini_libretro 2022-02-03 19 46 02

I tested the Libretro core on BizHawk and it ran the couple of games I tested just fine. I managed to use savestates and rewind without too many issues. I couldn't turn off the rumble screen shake, unfortunately.
I even managed to record a movie using this core. At first it desynced due to the initial recording skipping the date/time settings screen for some reason, but I managed to fix it by using TAStudio, which also seemed to work just fine. Screenshots and audio/video recording works as well. The reed switch works, but it is very inconsistent for sync.

I later on managed to make a fully optimized TAS using this core: https://tasvideos.org/7416S

This emulator has been ported to many different platforms, such as the PSP, DS, 3DS, GameCube, Wii, Wii U, Dreamcast, Android, and even a TI-Nspire calculator. In theory it wouldn't be too difficult or take too long to port this to BizHawk properly, at least compared to other emulators that have been ported in the past. Not sure about waterboxing either.
GBE+ also emulates the Pokémon mini but it doesn't seem to be good for porting purposes. MAME also has support for the platform, but it is nowhere near as compatible as the other two options.

Merits

This is the last cartridge based, dedicated Nintendo handheld without proper TAS tools. This is an often forgotten, yet underappreciated system that has quite a few interesting and innovative features for the time, with a small library of cute little games (all Pokémon based) and for many years, it has had a passionate community that has made it's own homebrew games for the platform. So, it would be really cool if this little device could be emulated in BizHawk along with most other handhelds.

I have attempted to run PokeMini (the SDL version) through libTAS on Linux (through WSL), but with no luck. After much troubleshooting (and thanks to the efforts of Randomno, I was able to run it by itself, but with a few caveats. First of, after a little while the emulator starts slowing down really bad, to the point it freezes completely. And running it with libTAS gives me a black screen, then the emulator closing automatically. It really is frustrating to go through all of this with little to no success. Having a more convenient, accessible way to TAS this platform would be so nice to have.

Other maybe useful links:
https://wiki.sublab.net/index.php/Pokemon_Mini
https://www.pokemon-mini.net/

Alternate source code link:
https://github.com/badbrizzo/pokemini

Libretro repo:
https://github.com/libretro/PokeMini

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no BizHawk files or tests. Start by comparing the PokeMini/libretro sources with BizHawk’s existing core integrations; done means a PokeMini core is integrated with the emulator’s TAS features and its compatibility, recording, savestate, rewind, audio/video, and input behavior are verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, csharp
Domain
game-dev, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.