Skip to content

Unifrog v0.4.1

Choose a tag to compare

@axgdev axgdev released this 06 May 18:55
· 273 commits to main since this release
bff7a3c

UniFrog

UniFrog is a custom frontend/firmware environment for SF2000-family handhelds, with support for SF2000 and GB300 from the same SD card.

This release is still early. Expect bugs, crashes, and rough edges. Do not rely on it for long playthroughs or important saves yet. It is already useful, fast,

Thanks to all of the developers that made this possible: @bnister, @kobilutil, @feuerball11, @madcock, @Trademarked69, @tzubertowski, @angree, and many others that have pushed the limits of what's possible in the SF2000/GB300 devices family.

Installation

  1. Download the UniFrog SD card zip from this release.

  2. Extract the contents directly to the root of your SD card.

  3. If you already have another bisrv.asd on your card, back it up first.

  4. To make another firmware bootable from UniFrog, place its bisrv.asd inside:

    /firmware/
    
  5. Boot the device.

On first boot, open Index Library. UniFrog will scan the SD card, find supported games/media, and classify them by system.

Supported Devices

Tested:

  • SF2000
  • GB300

Possibly compatible but untested:

  • DY19
  • DY12
  • Other SF2000-family devices

If you test one of these devices, please report whether it boots and whether display, audio, controls, and backlight work correctly.

Emulation Cores

UniFrog loads emulator cores from the SD card instead of baking them all into the main firmware binary.

Included cores:

  • gpSP: Game Boy Advance
  • Gambatte: Game Boy / Game Boy Color
  • Gearboy: Game Boy / Game Boy Color
  • Snes9x 2002: Super Nintendo
  • Snes9x 2005: Super Nintendo
  • QPSX: PlayStation
  • FCEUmm: NES / Famicom
  • QuickNES: NES / Famicom
  • Beetle PCE Fast: PC Engine / TurboGrafx-16
  • PicoDrive: Sega Genesis / Mega Drive / Master System / Game Gear

When opening a ROM, UniFrog can ask which compatible core to use. This is useful for systems with multiple emulator options, such as Game Boy or NES.

Game Library

UniFrog includes an indexed game library.

Use Index Library to scan the SD card. The indexer will classify games by system so you can browse them more easily instead of manually navigating folders

The scan is manual by default so the SD card is not stressed on every boot.

File Browser

A traditional file browser is still included.

You can open supported files directly, and UniFrog will suggest compatible cores or players.

Save Support

UniFrog supports:

  • Save states
  • Multiple save slots
  • In-game saves, such as normal .sav-style saves used by games like Pokemon
  • Pause menu actions for saving and loading

This is still experimental. Back up your saves.

Pause Menu

Press the configured pause combo during gameplay to open the quick menu.

From there you can:

  • Resume the game
  • Save state
  • Load state
  • Change save slot
  • Return to the frontend
  • Adjust display mode
  • Toggle fast-forward
  • Change performance/audio options
  • Adjust backlight and other runtime settings

Display Options

Available display modes:

  • Fit
  • Original
  • Stretch

These can be changed from the core options menu.

Performance Options

UniFrog exposes several runtime performance settings.

You can adjust:

  • CPU frequency
  • Graphical Engine frequency
  • Audio on/off
  • Frame skip mode
  • Fast-forward
  • Backlight brightness

Notes:

  • Auto frameskip is available for all cores.
  • Manual frameskip can be set to 0, 1, or 2.
  • Turning audio off can improve performance in heavier games.
  • CPU speed can be adjusted at runtime.
  • The Graphical Engine clock can also be changed, but higher is not always better. In testing, 198 MHz or even 148 MHz can perform better than higher setti
  • gpSP with auto frameskip can run games like Pokemon FireRed reasonably well even at lower CPU frequencies such as 198 MHz.

Backlight Control

Backlight adjustment is supported.

You can lower brightness all the way down to level 1, which makes the device much more comfortable to use at night.

Audio Options

Audio can be disabled for better performance.

Audio gain can also be adjusted, though most users should leave it low or at the default value.

Media Playback

UniFrog can play MP4 videos.

Video playback options include audio control, so videos without audio or videos played silently should avoid unnecessary speaker noise.

Firmware Booting

UniFrog can boot other compatible firmware releases.

Place another firmware file here:

/firmware/bisrv.asd

You can then launch it from the firmware menu.

This is useful if you want to keep stock firmware, multicore, or another setup available on the same SD card.

JavaScript Frontend

The frontend is written in JavaScript.

That means users can modify the interface, create themes, and experiment without rebuilding the whole firmware.

UniFrog also supports running JavaScript scripts from the developer/script menu, though this feature has not been heavily tested yet.

Themeability

The UI is designed to be hackable and themeable.

The goal is to make it possible for users to customize the frontend without needing to understand the lower-level firmware or emulator code.

Compressed ROMs

UniFrog includes support for loading compressed ROMs.

Supported compression/container formats include:

  • .zip
  • .lz4
  • .zstd

Performance varies depending on the core, ROM size, SD card, and compression format.

Known Issues

This is an early release and will have bugs.

Known rough areas:

  • Some cores are still experimental.
  • Some games may crash or hang.
  • PlayStation support is early and may be unstable.
  • JavaScript script support needs more testing.
  • The UI is functional but still evolving.
  • Save states and in-game saves should be backed up regularly.
  • Some performance settings may help one core but hurt another.

Full Changelog: https://github.com/axgdev/UniFrog/commits/v0.4.1