Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D.Smile icon

D.Smile

VTech V.Smile emulator for Android.

Android 8.0+ OpenGL ES touch and gamepad



D.Smile running the V.Smile boot screen with the CRT shader, silver bezel, purple background and on-screen controller

Features

Play

  • Runs V.Smile cartridge dumps straight away, no BIOS required.
  • Optional system bios import for maximum compatibility. Not necessary for most titles.
  • Save states with thumbnails and timestamps, and per game slot memory.
  • Rewind and fast forward with adjustable speed.

Look

  • CRT shader with barrel curvature, glow, scanlines, aperture grille and vignette, each with effect its own intensity slider.
  • Pixel, sharp, and CRT display modes. For aspect ratio you have 4:3, stretch, and integer scaling.
  • Themed letterbox backgrounds (black, wavy blue, or V.Smile purple) and silver or black TV bezels that wrap the picture.
  • Two renderer options. One that should be fast and perfect for most games, but the second is intended to be a more accurate option for edge cases.

Control

  • An on screen controller modelled on the real thing, with classic orange and pink themes.
  • A full layout editor: drag to move, box select to move groups, resize with a multiplier, save and name your own layouts.
  • Gamepad support with remappable buttons and bindable hotkeys for save, load, fast forward and rewind.

Fit in

  • Launches directly into a game from front ends like iiSU, Daijisho and ES-DE.
  • Lots of QOL features and bug fixes baked-in that a lot of niche emulators fall short on.

Screenshots

CRT shader, classic controller Crisp pixel mode, pink controller

Getting started

  1. Grab the latest D.Smile-x.y.z.apk from Releases and install it (allow installs from your browser if prompted).
  2. Open D.Smile, tap ROM folder, and pick the folder with your .bin dumps.
  3. Tap a game. The menu button in the top corner opens save states, video options, the layout editor and more.

A BIOS is not required. Games boot and play fine without one. Importing a V.Smile system ROM (tap BIOS) is purely optional and only adds a bit of extra compatibility that can help a handful of games. Skip it unless you run into a title that misbehaves.

Launching from a front end

D.Smile exposes an activity that front ends can launch straight into a game. See docs/iisu-integration.md for the iiSU config block and the general intent contract that also covers Daijisho and ES-DE.

Acknowledgements

This project wouldn't exist without the V.Smile reverse engineering work that came before it:

  • veesem by sp1187 (ISC license) — the primary behavioral reference for this emulator. D.Smile's core was verified against veesem instruction-by-instruction during development, and its hardware model (unSP CPU, PPU, SPU, controller handshake) taught this project most of what it knows.
  • MAME — the SPG2xx and V.Smile drivers (Ryan Holtz, Vas Crabb, and contributors) documented the hardware registers, timings and controller protocol that both veesem and D.Smile build on. The accurate-render fade/saturation formulas follow MAME's implementation.
  • V.Frown by Schnert0 — a further reference for controller timing and hardware behavior.
  • Oboe by Google (Apache-2.0) — the low-latency Android audio library D.Smile ships with.
  • The V.Smile research and homebrew community, whose compatibility testing and hardware documentation made a project like this possible.

Where D.Smile's behavior diverges from these projects (controller reporting modes, held-input handling, sprite DMA edge cases), the changes are original findings — documented in the commit history so they can flow back upstream.

License

Personal project. Code written for D.Smile, informed by the references above. Not affiliated with or endorsed by VTech.

About

A Fully-Featured VTech V.Smile Emulator for Android

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages