Skip to content

PokeMini emulates Nintendo Pokemon Mini. It reads 1 file, none of them required: it starts games without them.

About this profile
Detail Value
Type libretro
Classification Community fork
Source https://github.com/libretro/PokeMini
Upstream https://sourceforge.net/projects/pokemini/
Version v0.60, stated in libretro/libretro.c
Revision libretro/PokeMini@132111b76343
Profiled 2026-03-24
Profile YAML, JSON
Cores pokemini
Systems Nintendo Pokemon Mini
Install this emulator's files

The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator pokemini
Platform details
  • bios_mapping:

    • target: $000000-$000FFF in Pokemon Mini address space (4 KB)
    • source_ref: source/PokeMini.h:38, source/Hardware.c:144-145
    • note: PM_BIOS is a 4096-byte array. CPU reads from address range $000000-$000FFF are served directly from this buffer. The BIOS handles interrupt vectors, hardware init, and the startup logo.
  • freebios_fallback:

    • source_ref: freebios/freebios.c, source/PokeMini.c:209-214

    • note: FreeBIOS is a 4096-byte open-source replacement embedded in the binary as a C array. It provides basic interrupt vectors and startup code. Loaded by default at PokeMini_Create() and used as fallback when bios.min is not found on disk.

    • freebios_hashes: {'md5': 'd6c3ff5abc88f7c42f1a5edd6889f9cf', 'sha1': 'b40421defb005e836913e4e39dc1a18aa3b8887e', 'size': 4096}

  • load_priority:

    • source_ref: source/PokeMini.c:500-509
    • note: During PokeMini_Reset(), the core first reloads FreeBIOS as a safe baseline, then attempts to load bios.min from disk. If the file exists and is exactly 4096 bytes, it replaces FreeBIOS. The forcefreebios flag (hardcoded 0 in libretro) controls this: when 0, the core always prefers real BIOS over FreeBIOS.
Technical notes

PokeMini is a Pokemon Mini handheld emulator ported to libretro.

The core has an embedded FreeBIOS (open-source replacement) compiled directly into the binary from freebios/freebios.c. This means the real BIOS is never strictly required -- games will run with FreeBIOS alone, though compatibility may differ from the original firmware.

BIOS loading sequence in the libretro port:

  1. PokeMini_Create() clears PM_BIOS (4096 bytes at $000000-$000FFF), then loads FreeBIOS into it via memcpy (source/PokeMini.c:116). PokeMini_FreeBIOS is set to 1.

  2. retro_load_game() calls PokeMini_Reset(0) after loading the ROM.

  3. PokeMini_Reset() checks forcefreebios (hardcoded to 0 in the libretro port, libretro.c:499). Since FreeBIOS is currently loaded and forcefreebios is 0, it enters the real-BIOS path (source/PokeMini.c:503-508):

    • Reloads FreeBIOS as a safety fallback
    • Checks if CommandLine.bios_file exists on disk
    • If found, overwrites PM_BIOS with the real BIOS via PokeMini_LoadBIOSFile(), sets PokeMini_FreeBIOS to 0
  4. If bios.min is missing, FreeBIOS stays loaded and emulation proceeds normally.

File path construction (libretro.c:565): sprintf(CommandLine.bios_file, "%s%cbios.min", g_system_dir, slash) The core looks for bios.min directly in the system directory root, no subdirectory.

There is no core option to toggle FreeBIOS in the libretro port. The standalone PokeMini has a forcefreebios setting, but the libretro wrapper hardcodes it to 0 (always prefer real BIOS when available).

FreeBIOS (freebios/freebios.min) is 4096 bytes, a clean-room reimplementation. It is NOT the official Nintendo Pokemon Mini BIOS.

1 file: 0 required, 1 optional. 1 has an HLE fallback.

In this collection: 1 in repo and 0 missing.

bios.min optional in repo HLE fallback

Pokemon Mini official BIOS

  • System: Nintendo Pokemon Mini
  • Mapped at $000000-$000FFF (4 KB). Read via Hardware.c:144-145. Falls back to embedded FreeBIOS if missing.
Source
.