Category Archives: VNAnd

Any-Yes: A Cycle-Accurate Java NES emulator

I present Any-Yes, my attempt at a cycle-accurate NES emulator. I’ve been spending a lot of my free time lately working on this project, and I think it’s good enough for an initial release.
Any-Yes 0.1.0

I have some cool plans for Any-Yes, I plan to carve out some unexplored niches in NES emulation with it.

I’ll let some screenshots and the readme text do the rest of the talking:

Some features of note include NTSC simulation, gameplay recording, mid-instruction cycle-accuracy, game genie support.
Currently Supported Mappers: 0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 16, 19, 28, 66, 69, 71, 118, 119, 140, 163, 228, 232

Many difficult to emulate games work correctly, such as BattleToads, Bee-52, Mig 29 Soviet Fighter, and Crystalis to name a few.

> Operating Any-Yes
To run: You must have Java installed. Simply double click the .jar file if you are in Windows.
If that doesn’t work, or you are in Linux, run this command:
java -jar any-yes.jar

Put ROMs in the included ROMS folder, which is the easiest method of accessing them.
You can also navigate to whereever they are using the built-in file browser, but it’s still somewhat of a work in prgress.

The file browser is simply a frontend. To set key mappings and other options, you must launch a game.
To navigate, click files or directories. To go up to a previous directory, click the folder name in the top bar.
If you need to change the start-up directory, edit last_dir.txt, which is in the loader/config/all/ subdirectory of the config location (see below)

You can make the window large by double clicking the title bar, or dragging the edges to resize. True fullscreen support will come soon.

Zip support is very temperamental, some zip files refuse to open currently. If you run into this problem, please unzip the rom and try again.

> Configuration
To map controller controls:
Press Escape while in a game
Click “Map Controls”
Currently cannot remap keyboard controls.

All config data currently is put in:
Windows: :/vnand/
Linux: ~/vnand/
(VNAnd is the name of a larger multi-emulator platform I am working on, of which Any-Yes is a module)
Any-Yes specific data and configs are in the engine_data/any-yes subdirectory.

> Recordings

Some notes about the recording system:
Press R or click “Create” in the menu to begin recording.
Press R again or click “Finish” to complete the recording.
Press T to play the recording. Currently you can only have one recording at a time per game, to have more, move the recording file for that game.
You can make a recording over multiple play sessions by saving the state (F5) while recording. If you load the save state later, it will continue recording.

> Key list

Escape: Toggle Pause / Menu

Q – toggle NTSC simulation
W – toggle linear screen filter
S – toggle scanline overlay

` – hold for fast forward

R – toggle recording
T – play recording

F1 – quick save state
F2 – quick load state

F5 – save state file
F6 – Load state file

Arrow key – D-Pad
Z – B
X – A
Tab – Select
Enter – Start

> Upcoming Features

Some lofty and not-so-lofty upcoming features I plan on supporting:

– Rewind
– Game Manual / Cover archival
– Better frontend
– Android (Mostly working)
– Neural Network to learn to play games (via reinforcement learning, think Mar I/O)
– Javascript plugins
– External hardware simulation (plug and unplug virtual controllers, TVs, etc in a visual way)
– Fast cycle-innacurate core

VNAnd release 0.1.0

Here is the initial release of VNAnd, my multi-game interpreter! This version comes with support for a few different game engines, namely VNDS, ZZT, Chip-8, and Knytt Stories.

I included some free games with it, and details for where to find other games are included in the manual.

Download VNAnd 0.1.0 for Windows, Linux, Mac

Android version soon to follow.

To play it, just unzip the downloaded file and run the included .jar file! For more details check the included readme.txt and files.

I’ll open source it before long, too.

Here are some screenshots of VNDS in action, click on them to check them out:


VNDS is collection of game interpreters I’ve been working on for a few years. It started life as an Android interpreter for the visual novel format VNDS. As time went on I added interpreters for other formats I was interested in hacking around with.

There is a universal loading menu that recognizes games in compatible formats, and launches the proper interpreter for the game:

VNAnd menu

The list of formats currently recognized (in varying levels of completion):

I’ll be writing more about the different capabilities of VNAnd, as well as posting downloads soon.