Original Post

Since about mid February, I had a spell of odd life happenings. Among other things, I moved three times, and ultimately wound up back where I started (just a few thousand dollars lighter). Somewhere in the shuffle, two unfortunate things occurred: 1) the flash drive I kept my Virtual Boy documentation and development backups on went missing, and 2) somehow or other those files aren’t on my hard drive either–apparently the backup is the only copy.

What all was lost? Some little stuff, but also the working v1.0 draft of the Sacred Tech Scroll containing all of the new VSU research, and my work on the audio library and associated composer application. The setback isn’t as profound as it could have been, since I hadn’t spent as much time as I’d liked working on either project, but there was some good headway into both of them and I’ll have to start over. I figured it’d be a good time to try a new approach…

I know I tried this in the past and didn’t stick with it, but I’m still dedicated to the cause, so let’s give it another go. Each month, I will set a goal that benefits this community, and I will do my best to make it happen.
__________

First and foremost, I need to bite the bullet and have some display cables solder-repaired. I never really followed that route before, so who’s the person to talk to about that?

I’ve done some experimenting with it myself, identifying the vias on the motherboard that can be soldered into, and devised a sweet stencil technique for soldering to the display board, but never did find the right stencil substance that can 1) be applied as a liquid, 2) can be soldered against without melting and 3) is electrically insulative. If I could find just the right masking agent, I can wire up my own displays without using the ribbon cables whatsoever. As it is, I’m neither handy enough with a soldering iron nor comfortable enough using lye to do ribbon-solder fix myself, so I’ll need to send the displays in for repairs.

The video issue is important. I have multiple systems at my disposal, was gifted two FlashBoy Plus units for development, and was even granted a prototype link cable to help with the development cause. I very much want to put all these to good use in order to benefit the Virtual Boy scene, but the picture problem kept deterring me from doing much with the hardware. If I can get a reliable image again, I can stop worrying about it. (-:
__________

July 2016

There’s an individual from PVB I’m working with on a personal project. This project has been ongoing, largely waiting on me to finish the music engine before developing in earnest, and I still hold that project at a high priority. These recent events will not prevent me from working on this.

With regards to the community, here’s my goal for the month of July…

I have plans for a Virtual Boy emulator with feature-rich debugging tools. The things I have in mind are sort of the cream of the crop of hacking, but more on that later. This emulator, once it exists, will help the community in three key ways:

• The entire project will be open-source. The core functionality of the emulator (no bells or whistles) will be set up as a simple library that can be incorporated into any existing C-compatible application. Introducing Virtual Boy emulation capabilities into other projects will be very simple to pull off.
• Reverse engineering of games will be easier thanks to flexible-condition breakpoints, step-trace disassembler and even a mechanism that can identify and isolate the program code for individual functions.
• TAS videos will be made possible via flexible recording and playback features, including branching input paths that can be played back in parallel to analyze frame efficiency over the course of a run.

Coming back to my goal for this month… This isn’t intended to be “Guy Perfect’s Virtual Boy Emulator with PVB’s Name on It”. This is intended to be “Planet Virtual Boy’s In-House Emulator.” As mentioned, this will be open-source, but I’m taking it a step further and making it a community-accessible project. Even if I’m the only one who winds up working on it, the invitation will always be there for anyone who is able to pitch in and improve the program.

So for July, I want to do the following things:

• Gauge interest in a collaborative emulator project to best determine the approach to take when carrying it out.
• Research various version-control systems and select the one that is most accommodating for the community. Establish a public repository.
• Draft up design documentation for each main section of the project. Collaborative brainstorming would be incredibly helpful.

Notice that missing from that list is “start development”, because I don’t feel that will be taking place by the end of the month. There’s a lot of planning that needs to take place, and I want to get the community involved, and the only way to know where to go next is to get started…

So let’s get started!

I’ve fired up this thread over here for emulator project discussion. Here’s to a new age of PVB!

6 Replies

Hey Guy:

This sound amazing, if I understand it correctly:

• The entire project will be open-source. The core functionality of the emulator (no bells or whistles) will be set up as a simple library that can be incorporated into any existing C-compatible application. Introducing Virtual Boy emulation capabilities into other projects will be very simple to pull off.

I’m starting to think about a level editor for the VBJaEngine, and having emulator capabilities in it could allow us to avoid the need to have to maintain in sync two versions of the engine. Do you think that it will be feasible to get your core emulator to work inside a custom Eclipse plugin (or any customizable IDE at all)?

Regards,
jorgeche

PM sent re:display soldering…

July 2016 Follow-up

• Gauge interest in a collaborative emulator project to best determine the approach to take when carrying it out.

Like before, measuring interest in the project requires a Geiger counter. While there’s some stealth interest that can only be pressed out of people with a vigorous private message regimen, the overwhelming response is in the form of “I’m going to watch Guy make this emulator, if I can remember to check in on it from time to time.”

Accordingly, the project will be structured in a way that accommodates me working on it by myself. I have a particular way I like to organize my personal projects, and that’s what I’ll be doing with this one until such a time that other people want to get involved.

• Research various version-control systems and select the one that is most accommodating for the community. Establish a public repository.

The vote quickly went to git for this one, but actually setting up a git repository isn’t one of those things I’ve experienced, so I had to look into making it happen. There’s a few options out there, but I’m okay waiting on KR155E to install git-hosting software like he wants to do eventually.

Meaning yeah, for now, no git repository of any kind. And that’s just fine, since it’s me working on the project alone. (-:

• Draft up design documentation for each main section of the project. Collaborative brainstorming would be incredibly helpful.

I decided to nix this in light of working independently, since I have a pretty good picture in my head of the general points I want to hit along the way. If more people get involved, a more rigid roadmap can be established.

__________

August 2016

It’s time to start development! The primary focus of the whole project is of course the emulation core library, and that will be where development begins. Since I’m a cheeky rascal, I’ll approach the first step with a two-pronged attack: basic CPU operation and a simple stepping disassembler.

The goals for the month are as follows:

• Establish naming conventions. This is a lot like ordering toppings on a pizza, so expect a heated discussion on it.
• Specify the structure and functionality of the emulation core. This includes the features that allow debuggers and the like to hook into it.
• Implement all CPU functionality. (Except bit string instructions, since I want to put them through their paces before deciding how to best implement them).
• Implement a simple disassembler GUI that can help verify the CPU emulation works correctly. Needs to allow single-step.

As before, detailed discussion will be happening in the development thread, wherein I’ll be posting occasional source snapshots and their compiled binaries, so get over there and be a part of this!

Good luck man, excited to see what you come up with!

Hiya. I know I’m kind of detached from the community and stuff and mostly lurk, but I’ve been reading your posts on your plans and progress occasionally, and have some comments of my own!

First off, it is really a pity that you lost such useful work. I personally was looking forward to especially the audio composer. But I am also confident that even with this setback, you will succeed. 🙂

The vote quickly went to git for this one, but actually setting up a git repository isn’t one of those things I’ve experienced, so I had to look into making it happen. There’s a few options out there, but I’m okay waiting on KR155E to install git-hosting software like he wants to do eventually.

Meaning yeah, for now, no git repository of any kind. And that’s just fine, since it’s me working on the project alone. (-:

If I were you, I’d start setting up a local Git repository as early as you can anyway. Like, right now. The nice thing about Git is that repositories can live individually on peoples’ computers until the changes are pushed to the main online repository.

The thing is, if you start committing your changes to your local repo sooner rather than later, then you will be able to push not just your code, but every single revision with all of its log comments. That would be very beneficial for other interested developers to see more quickly what you’ve done, how and where you’ve done it, and what still needs to be done. It also makes it easier for yourself to revert/branch off any experiments you might be trying out. Although you probably have a system for yourself in place for that anyway. 🙂

(As for Git hosting: Github is a great place to host this on too, just so you know! An amazing amount of projects is hosted on there, including heavyweights like the Linux kernel, for example.)

Edit: I found this page on why using Git sooner rather than later is probably a good idea, too.

Audio composer for VB? That would have been amazing! I hope to see something like this some day. I wish you the best on everything you are working on 🙂

 

Write a reply

You must be logged in to reply to this topic.