How difficult is it to add features to an emulator? 
Author Message
User avatar

Joined: 2018-06-05 22:42
Posts: 43
 How difficult is it to add features to an emulator?
Stuff like a hex editor, lua scripting, etc.

2018-06-28 15:04
User avatar

Joined: 2014-09-27 09:29
Posts: 2188
Location: Soviet Venezuela
 Re: How difficult is it to add features to an emulator?
It can go anywhere from "easy as pie" to "oh hell no!".

Depends on the complexity of the feature itself, the skills of the particular developer (not all low-level wizards can do high-level things like user interfaces or scripting engines properly), personal interest often plays a big role on this (as a developer, if I really like the feature I'll accept the challenge no matter if I have previous experience or not... but if I hate dealing with UI toolkits, no amount of money in the world will convince me to make a hexeditor). Oh, and the underlying architecture of your emulator matters a lot: some emulators are simply not designed to allow such degree of interaction with the internals, while others are designed with being very hackable/extensible in mind. Another factor to consider: is your emulator opensource, closed source freeware, or a paid product? Ah, and developer ego, never forget that!

It's not an easy question to reply, so "it depends" is usually the best answer you will get from most emudevs out there. And this doesn't apply only to emulators, but to any piece of software in the world. And as a software developer myself, I often can relate how annoying can be some feature requests from my end users, while how fun/interesting/challenging can become the ride (maybe you're going to implement something trivial... yet you end refactoring everything, or starting from scratch!)

Licensed PirateĀ® since 2006

2018-06-28 16:29
User avatar

Joined: 2014-09-27 09:38
Posts: 897
Location: New York, NY, USA
 Re: How difficult is it to add features to an emulator?
To expand on what tomman said about interaction with the internals, I would gather that the ease of implementation is also dependent on whether there are hooks for any of those features in the base code or not, and how easy and/or simple it would be to expose such interactivity. How would one read RAM contents, for example, if reading RAM isn't necessarily exposed in the emu's API?

NB: My own experience writing an emulator is primarily based on my work porting VGM audio chip code to JavaScript.

Apollolux Digital Designs :: website development
Alex Rosario Type :: typeface and font design and development
President, ACM - CUNY Hunter College chapter
:: A student at Hunter? Interested in tech? Find us!

2018-06-28 20:49