TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.21k stars 385 forks source link

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

Open noddy360 opened 2 years ago

noddy360 commented 2 years ago

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. I couldn't test if the reed switch works, though.

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. 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.

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

Spikestuff commented 2 years ago

GBE+ also has it available as under their source code only for the sake of noting and is also still under active development.

noddy360 commented 2 years ago

GBE+ 1.6 released in early April which adds the Pokémon mini core in a "Largely complete" state and with IR multiplayer support. I haven't personally tested this emulator myself though, so I can't say for certain if it's really better than PokeMini in terms of accuracy or ease of use yet. Dunno about how easy it's source code is to work with for porting purposes either. I still feel that PokeMini would be a far better choice anyways but that's just my opinion.

CasualPokePlayer commented 2 years ago

GBE+ has a poor frontend/core separation with SDL slapped into the core so it wouldn't be easy to port over.

noddy360 commented 1 year ago

Edited the title and the description to be more in line with more recent core requests.

Jhynjhiruu commented 1 year ago

PokeMini probably isn't the best choice of emulator for this; it's got several known inaccuracies, which don't come up when playing games, but could cause issues with TASing - the most notable being that it doesn't emulate interrupt priorities accurately. (redacted) might be a better choice; it's got pretty good emulation/UI separation (there's an existing Libretro core already, as well as a (redacted), is more accurate than PokeMIni, and is designed around the modern understanding of the system.

CasualPokePlayer commented 1 year ago

Right, I don't think that emulator looks like quite the best idea when it decides to put a ton of Pokemon ROMs directly in its repo.

Jhynjhiruu commented 1 year ago

It is, however, currently the best emulator for accuracy

Spikestuff commented 1 month ago

Another alternative core that can be added to the list is MAME as a note. Not as highly compatible to the PokeMini one from libRetro, with some titles crashing in some modes.