Virtual Virtual Boy - RetroBIOS¶
Technical notes
Virtual Boy emulator for Android, published as com.simongellis.vvb (app/build.gradle:62,65-66) and reached by ES-DE through its VIRTUAL-VIRTUAL-BOY find rule, which hands the game over as an ACTION_VIEW intent on a content URI (MainActivity.kt:126-131, MainActivity.kt:40-45). The hardware sits in a Rust library packaged as libvvb.so and loaded when the application starts (VvbApplication.kt:69, Cargo.toml [lib]); the Kotlin side owns the menus, the input mapping and every file access. Display goes through mono, anaglyph, stereo, Google Cardboard and Leia CNSDK renderers, each carrying its GLSL as string constants in the Rust sources (src/video/renderers/mono.rs:10-26, src/video/renderers/stereo.rs:13-29).
The console has no boot ROM and the emulator loads none. The memory map declares Vram, Audio, Hardware, Dram, Sram and Rom, and load_game_pak takes the cartridge image and its SRAM, leaving the Rom region unpopulated until a game arrives (src/emulator/memory.rs:8-14, src/emulator/memory.rs:115, src/emulator/memory.rs:134-149).
Games are read from .vb, .vboy and .bin, or from the first member of a zip
answering the same test (GamePakLoader.kt:20-27, GamePakLoader.kt:97-98). The
image has to be a power of two and at most 0x01000000 bytes, either test
aborting the load (GamePakLoader.kt:39-45, GamePakLoader.kt:57), and the core
applies the same two limits again when the image reaches it
(src/emulator/memory.rs:136-141). The MD5 of the image names the directory
that holds the save data, where the app writes .srm and
save_states/
One tree ships two flavours: playStore, and leia, which appends .leia to the application id and renders through the CNSDK (app/build.gradle:92-100). Both carry the same nine homebrew titles, stored uncompressed so they can be opened by descriptor (app/build.gradle:117).
12 files | 0 required, 12 optional | 12 in repo, 0 missing Categories: 12 game data
BLOX.vb optional in repo game_data bundled
Bundled homebrew game by KR155E
- Path:
games/BLOX.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
f2105349dff0... - MD5:
f82d4c9fdd81... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:2-7,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
BLOX 2.vb optional in repo game_data bundled
Bundled homebrew game by KR155E
- Path:
games/BLOX 2.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
66b2a25ef8e1... - MD5:
cc91d6389df2... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:8-13,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
Elevated Speed.vb optional in repo game_data bundled
Bundled homebrew game by PizzaRollsRoyce
- Path:
games/Elevated Speed.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
8b08f08f3712... - MD5:
8f7bcfdd0f41... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:14-19,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
Fishbone.vb optional in repo game_data bundled
Bundled homebrew game by thunderstruck
- Path:
games/Fishbone.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
b1e5d5ab7e49... - MD5:
61e38e4e0c43... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:20-25,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
Formula V Public Demo.vb optional in repo game_data bundled
Bundled homebrew game by KR155E
- Path:
games/Formula V Public Demo.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
533672b887ec... - MD5:
34e9a2ffd60f... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:26-31,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
Red Square.vb optional in repo game_data bundled
Bundled homebrew game by Kresna and Nyrator
- Path:
games/Red Square.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
a12529a0d7cf... - MD5:
9c372321204b... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:32-37,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
The Red Castle.vb optional in repo game_data bundled
Bundled homebrew game by Timothy Beck
- Path:
games/The Red Castle.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
34e90abaa3ff... - MD5:
cdb404ff3e1d... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:38-43,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
VUE Snake.vb optional in repo game_data bundled
Bundled homebrew game by KR155E
- Path:
games/VUE Snake.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
77ebaf5dbe66... - MD5:
ccfa400a0ff3... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:44-49,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
VUEngine Platformer Demo.vb optional in repo game_data bundled
Bundled homebrew game by KR155E
- Path:
games/VUEngine Platformer Demo.vb - System: nintendo-virtualboy
- Size: max 16.0 MB
- SHA1:
b1b9893629bb... - MD5:
c96d91fb9757... - Validation: size
- Source:
app/src/main/res/raw/bundledgames.json:50-55,app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/AssetsProvider.kt:18-19,app/src/main/java/com/simongellis/vvb/game/GamePakLoader.kt:35-49
bundledgames.json optional in repo game_data bundled
Index of the bundled homebrew titles
- Path:
res/raw/bundledgames.json - System: nintendo-virtualboy
- Size: 1.6 KB
- SHA1:
2ae5b46e78af... - MD5:
04ecc37b70b2... - Source:
app/src/main/java/com/simongellis/vvb/data/BundledGameRepository.kt:9-13,app/src/main/java/com/simongellis/vvb/data/BundledGame.kt:7-13,app/src/leia/res/raw/bundledgames.json:5 - Read whole as a raw resource when the repository is built, and decoded into the list the load menu offers. Each record names the title, the content URI serving it, the authors and the MD5 of the image. The leia flavour replaces the file with one pointing at its own authority.
vbtitlescreen_left.png optional in repo game_data bundled
Left eye of the settings preview image
- Path:
res/drawable-nodpi/vbtitlescreen_left.png - System: nintendo-virtualboy
- Size: 619 B
- SHA1:
480e9872ab20... - MD5:
793565cb6af2... - Source:
app/src/main/java/com/simongellis/vvb/game/GameViewModel.kt:41-51,app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:32,app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:56
vbtitlescreen_right.png optional in repo game_data bundled
Right eye of the settings preview image
- Path:
res/drawable-nodpi/vbtitlescreen_right.png - System: nintendo-virtualboy
- Size: 620 B
- SHA1:
fc6c5857a0c2... - MD5:
6df7af05e6b0... - Source:
app/src/main/java/com/simongellis/vvb/game/GameViewModel.kt:41-51,app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:32,app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:56
Generated on 2026-08-23T16:12:06Z