mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
Thirty profiles from the ES-DE batch, each source-verified by the session that wrote it and passing the schema and semantic checks. Five declare no files at all and say why in notes referenced to the code: NGP.emu, openbor, Plastic, Swan.emu and XeniOS. Twenty-eight files come with them, every one declared by the profile that needs it and matching the hash it declares, with no duplicate of anything already held: the NetherSX2 Turnip Classic assets, the Speccy machine ROMs, the Virtual Boy homebrew the app bundles, Snes9x EX+'s bundled game, and sixtyforce's Overrides.plist, which carries a size and no hash because the binary never checks one. supermodel gains the four data files it reads from its install tree, hakux marks its controller map unsourceable now that the asset manager is known to read inside the package, and nethersx2 sheds the two core aliases that belong to the Turnip profiles.
227 lines
11 KiB
YAML
227 lines
11 KiB
YAML
emulator: Virtual Virtual Boy
|
|
type: standalone
|
|
core_classification: other
|
|
source: "https://github.com/SupernaviX/vvb"
|
|
upstream: "https://github.com/SupernaviX/vvb"
|
|
author: "Simon Gellis"
|
|
profiled_date: "2026-08-12"
|
|
source_commit: "0bf230bced628d78ff2c149baaf16f6fb8388cec"
|
|
upstream_commit: "0bf230bced628d78ff2c149baaf16f6fb8388cec"
|
|
core_version: "1.18.2"
|
|
display_name: "Nintendo - Virtual Boy (Virtual Virtual Boy)"
|
|
mode: standalone
|
|
cores:
|
|
- virtual-virtual-boy
|
|
- VIRTUAL-VIRTUAL-BOY
|
|
- vvb
|
|
- com.simongellis.vvb
|
|
- com.simongellis.vvb.leia
|
|
systems:
|
|
- nintendo-virtualboy
|
|
|
|
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/<slot>.sav as it runs (GamePakLoader.kt:30-32,
|
|
GamePak.kt:8-9,30, src/emulator/state.rs:30-38). Cardboard lens parameters
|
|
come from scanning the viewer QR code and are kept by the SDK, the app asking
|
|
for them and starting a scan when none are saved
|
|
(src/video/renderers/cardboard.rs:29-34).
|
|
|
|
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).
|
|
|
|
files:
|
|
# -- Bundled homebrew, assets/games, listed by res/raw/bundledgames.json --
|
|
# Each title is served over content://com.simongellis.vvb.assets and then read
|
|
# through the same path as a user game, so the power of two and 0x01000000
|
|
# tests apply to it. The id an entry declares is the MD5 of the image.
|
|
# Common refs: BundledGameRepository.kt:9-13, AssetsProvider.kt:18-19,
|
|
# GamePakLoader.kt:35-49.
|
|
|
|
- name: "BLOX.vb"
|
|
path: "games/BLOX.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: f82d4c9fdd81518537d88f70c6602bb5
|
|
sha1: f2105349dff09bdc00e4548460991dde9ac7c2af
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by KR155E"
|
|
source_ref: "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"
|
|
|
|
- name: "BLOX 2.vb"
|
|
path: "games/BLOX 2.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: cc91d6389df2c9777919e8e8ab2c0e66
|
|
sha1: 66b2a25ef8e1af74bed4bbba4785951a9d6edce0
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by KR155E"
|
|
source_ref: "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"
|
|
|
|
- name: "Elevated Speed.vb"
|
|
path: "games/Elevated Speed.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 8f7bcfdd0f412d9060b06a97a89fe202
|
|
sha1: 8b08f08f37127621483aa4e204a3e3b2312af196
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by PizzaRollsRoyce"
|
|
source_ref: "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"
|
|
|
|
- name: "Fishbone.vb"
|
|
path: "games/Fishbone.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 61e38e4e0c43aa8d6274a89ebedd3063
|
|
sha1: b1e5d5ab7e49f91050d3593bbcf48ff609c1c979
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by thunderstruck"
|
|
source_ref: "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"
|
|
|
|
- name: "Formula V Public Demo.vb"
|
|
path: "games/Formula V Public Demo.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 34e9a2ffd60f7ea565caada82d57f29f
|
|
sha1: 533672b887ec16aa50a5508488d1ab125dd5e749
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by KR155E"
|
|
source_ref: "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"
|
|
|
|
- name: "Red Square.vb"
|
|
path: "games/Red Square.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 9c372321204b9fa65f9324f98aae53ff
|
|
sha1: a12529a0d7cf7f0711b913b8ae72fea193cebc17
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by Kresna and Nyrator"
|
|
source_ref: "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"
|
|
|
|
- name: "The Red Castle.vb"
|
|
path: "games/The Red Castle.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: cdb404ff3e1df7b3c13214ac5409d512
|
|
sha1: 34e90abaa3ffc706882fd8a0d1a8101abc185734
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by Timothy Beck"
|
|
source_ref: "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"
|
|
|
|
- name: "VUE Snake.vb"
|
|
path: "games/VUE Snake.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: ccfa400a0ff3d717dad36a3f736fd34d
|
|
sha1: 77ebaf5dbe667d8347d098b6749b6f3be09f5814
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by KR155E"
|
|
source_ref: "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"
|
|
|
|
- name: "VUEngine Platformer Demo.vb"
|
|
path: "games/VUEngine Platformer Demo.vb"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: c96d91fb97572a0af7d53f63b292e0f2
|
|
sha1: b1b9893629bbec74e8b58d7b5983e7d35e202fe0
|
|
max_size: 16777216
|
|
validation: [size]
|
|
description: "Bundled homebrew game by KR155E"
|
|
source_ref: "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"
|
|
|
|
- name: bundledgames.json
|
|
path: "res/raw/bundledgames.json"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 04ecc37b70b23fdcc3f5207040f4d178
|
|
sha1: 2ae5b46e78afb1bb95d11fa103d6176321573b91
|
|
size: 1677
|
|
description: "Index of the bundled homebrew titles"
|
|
note: >-
|
|
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.
|
|
source_ref: "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"
|
|
|
|
# -- Preview frames, decoded unscaled and pushed into the eye buffers --
|
|
# Both are 384x224 in four shades, the shape the display expects, and they
|
|
# stand in for a running game while the video settings are being adjusted.
|
|
|
|
- name: vbtitlescreen_left.png
|
|
path: "res/drawable-nodpi/vbtitlescreen_left.png"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 793565cb6af20eb02c78322899e54172
|
|
sha1: 480e9872ab20d8a137004e45486985608882983f
|
|
size: 619
|
|
description: "Left eye of the settings preview image"
|
|
source_ref: "app/src/main/java/com/simongellis/vvb/game/GameViewModel.kt:41-51, app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:32,56"
|
|
|
|
- name: vbtitlescreen_right.png
|
|
path: "res/drawable-nodpi/vbtitlescreen_right.png"
|
|
system: nintendo-virtualboy
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
md5: 6df7af05e6b0cb19a37615c2b29116d9
|
|
sha1: fc6c5857a0c298d9d6a73449044d1ef3c57fe050
|
|
size: 620
|
|
description: "Right eye of the settings preview image"
|
|
source_ref: "app/src/main/java/com/simongellis/vvb/game/GameViewModel.kt:41-51, app/src/main/java/com/simongellis/vvb/game/PreviewActivity.kt:32,56"
|