VOGONS


Good emulators in DOS

Topic actions

First post, by Niezgodka

User metadata
Rank Member
Rank
Member

What system I can emulate on 486dx2 - Pentium 100 Machine in pure DOS? Are any emulators worth installing, for smooth emulation? (Joystick, sound, framerate)
Gameboy maybe? NEs? C64? ZX?

Reply 1 of 27, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie

NES is pretty much the only one, your best bet is NESTICLE x.xx for DOS or LoopyNES 0.59 Beta - which is what I have on my DX4-100 (which was a DX2-66 up until a month ago).

On a DX2-66 you will experience some lag on larger games.

With NES you might have some trouble with certain dumps of DRagon Warrior IV - I think the old 1MB "bad dump" is the one that actually works on NESTICLE while the 512KB dump more recently does not.

Atari 2600 is doable using Z26 or A26, A26 might run at full speed, but sound is annoying as it's only through the PC Speaker.

I've used GENECYST before (same people who made NESticle) - it works ok, but not great. You either need a good frameskip, or it's good for cheating by slowing Sonic down to MArio's speed by skipping no frames.

ESNES is similar in that case for SNES Games - slow, but it works at least. Mapper support is a bit buggy on that one.

MAME will also work for some light duty old arcade games with not a lot of movement (ie PONG, or older Kee/Atari/Williams/Sterns stuff).

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 2 of 27, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

There is very little reason to use emulators on such an old system. There are the oldies like Callus, Genecyst, Nesticle, CCS64, RAINE, and maybe ZSNES or possibly NeoRage X, but even if they will run, they will probably not be nearly as accurate as anything you can run on Windows on a modern system.

Reply 3 of 27, by leileilol

User metadata
Rank l33t++
Rank
l33t++

ESNES will be very slow. I'd suggest ZSNES for a 486 instead (yes that will be much faster, the real bottleneck is the sound core as that calls for a PMMX at the least to run good)

apsosig.png
long live PCem

Reply 4 of 27, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

hm, according to my tests, the major 8bit and 16bit machines require a PII > 300Mhz in order to work "ok",
but that is far from smooth gameplay and no stuttering gfx and sound.

Retro-Gamer 😀 ...on different machines

Reply 5 of 27, by Zup

User metadata
Rank Oldbie
Rank
Oldbie

NES (NESticle}, ZX Spectrum (x128, Warajevo)... most 8 bits stuff will work if you use older emulators. Modern (cycle acurate) emulators will need faster computers (did anyone said 300 MHz?).

I have traveled across the universe and through the years to find Her.
Sometimes going all the way is just a start...

I'm selling some stuff!

Reply 6 of 27, by leileilol

User metadata
Rank l33t++
Rank
l33t++

Not even. Cycle accurate emulators call for more of the 2ghz territory.

You CAN get by SOME snes games with (low quality) sound on ZSNES with a 486 but it'll be very few and far between. Generally you'd have to avoid games that use echo features and high-frequency samples and figuring that out will be trial and error. and of course figuring the games that use transparency effects the least so there's okay consistently unobscured gameplay (most snes/genesis multiports tend to be of this)

You'll also have to stick to the 2000-2003 date range for the fastest ZSNES versions.

apsosig.png
long live PCem

Reply 7 of 27, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie

Saying you need a 300MHz PC just to emulate an 8-bit or 16-bit machine is B.S., sorry but I'm being brutally honest here, I've been using emulators since 1995 - when all that stuff was new, and the fastest PC one could get was a 100 MHz Pentium.

I'm going to expand on my initial post a little more here since mine was a bit of a quickie last night......

Generally, if you want to start using Emulators, I suggest getting a 486 DX4-100 in there rather than a DX2-66, the DX4-100 is when most things start to become comfortable. Once you get to an AM 5x86 chip, and/or even overclock it, you might actually start having very good performance

Most of these emulators are for DOS - anything for Windows 9x generally tends to run slow, too slow to be usable. Windows Emulation typically starts at around the Pentium 100 or faster CPU speeds, and hit's it's full speed smoothly and consistently at around a Pentum 120 MHz).

THINGS TO KEEP IN MIND
- you will want to use the lowest screen resolution possible, that can sometimes gain you a few framerates using auto-frame-rate to where it does feel like the console, or at least very close
- you may want to sacrifice some sound quality (ie, no 44.1KHz at 16-bit sample rate), which may hurt authenticity a little bit, but it will work and make performance more tolerable
- you will want to avoid things like scaling, faux raster lines, and whatnot, some of these emulators don't even have that stuff, but other ones do.

ATARI 2600 - If you are talking a VERY slow machine, A26 works, I know, slowest machine I've run it on is a 486 DX-33 without any Cache, performance was not full speed but very close and SuperBreakout was quite fun on that setup. Once you get to a DX2-66 it runs at full speed.

Z26 is my emulator of choice for 486 era hardware. My DX4-100 (previously a DX2-66) has it on there. On the DX4 it runs at almost full speed with full sound and at default resolution. Some games like Pitfall II: The Lost Caverns (which had sepecial sound hardware) run a little bit slower than normal to a lot-a-bit slower because of the extra hardware needing to be emulated.

PCAE - PCAE works but it's not nearly as fast as Z26 is. I have also tried Stella, but most of the time, you are going to run into Windows versions, and sometimes those Windows versions won't work nearly as well as their DOS counterparts because DOS tends to leave a lot more stuff open than Windows does - you don't have GDI and all that other crap eating up RAM.

NES - NESticle X.XX is my main choice here. The reason being, NESticle was a THE go-to, must have, can-do-it-all NES emulator, and the in-numbered X.XX version is the most compatible, Dragon Warrior IV runs on it, which is my litmus test as Dragon Warrior/Dragon Quest IV is the biggest, trickiest RPG to get working on NES emulators, and one of the games not-supported by most emulators for a long time. (assuming you have enough base RAM available to load it and have the right dump of the game, you can get it running in NESticle).

LoopyNES Beta 0.59 is another good one that works at full speed on a 486, except Dragon Warrior III and Dragon Warrior IV Cannot use their default save-schemes. It also has the easiest and simplest GUI.

I've used others but most of those lack mapper support, lack sound, and are so old they don't want to work.

SEGA GENESIS - I've only ever used Genecyst, which after upgrading to a DX4-100 only then did it become something I enjoy playing, actually, I kind of enjoy turning Auto Frame-Rate off and playing Sonic at a speed more akin to playing Super Mario Bros. (LOL). But if you do one or two frameskips you'll be fine and it'll feel more than comfortable enough. I find skipping 3 or more frames in most DOS emulators tends to make things feel like a slide show and become unplayable.

SNES - I tried out ZSNES last night in Windows 95 DOS and it does indeed work about the same as ESNES in speed, I have ESNES under DOS 6.22. Those are the only two I'd touch for SNES emulation on a 486.

ESNES - ESNES is a very old emulator, but it works for sound, speed is okay enough, but it's also tricky because it's one of the very old ones without a GUI, so you have to type "E$NES ROM.SFC (put switches here)" to play games with it, making it a tad tricky, I just make batch files for my games configured to what I want to use this one, makes it easier.

ZSNES - This will give you full capability and it has a very nice GUI, performance these days seems comparable to ESNES, especially on a DX4-100. It also supports some of the more advanced games but those might not run so great on something that old.

MAME - I use MAME on my DX4-100 sometimes as well, certain games run at full speed, usually the simpler stuff like Pong or Missile command, but stuff like Centipede I've found or some later arcade titles won't run at full speed because they require more horsepower to generate the more sophisticated graphics and play back bigger, fancier, sound sample packs.

Now, to answer why someone would WANT to do this when there are better emulators.....

TBH, once upon a time, there was a dev scene called "NES ROM Hacking" - and most of the applications for that, at least at onset, were largely DOS based. THAT is what I use this for. And one of the main tools in a NES ROM Hacker's arsenal was the NESticle X.XX emulator. NESticle has a lot of features such as the ability to modify and (non-destructively) edit the shapes tables for all the graphics tiles, change the palette....a lot of the features modern emulators like FCEUX have - started with NESticle. Yes, it's Game Genie support is not 100% accurate (there are usually 2 types of Game Genie codes - those that work with NESticle, and those that work with an actual Game Genie). If you want to dabble with NES Game Development, a good place to start is to get your hands on NESticle, Tile Layer for DOS, and Hexposure (Hex Editor) and look at some old tutorials. A lot of the big infamous ROM hacks were done this way using old DOS machines. I even made a few back in the day under the name Mike_J though I don't think I distributed my work much, if at all.

The reason I still use them is nostalgia - I kind of liked the 320x200 8bpp based GUIs and some of the hokiness that came with those old emulators. It takes me back to a time when all this stuff was new and fresh, and not just "always been there" and just accepted as/is, it was an exciting time in emulation.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 8 of 27, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
creepingnet wrote:

NES - NESticle X.XX is my main choice here. The reason being, NESticle was a THE go-to, must have, can-do-it-all NES emulator, and the in-numbered X.XX version is the most compatible, Dragon Warrior IV runs on it, which is my litmus test as Dragon Warrior/Dragon Quest IV is the biggest, trickiest RPG to get working on NES emulators, and one of the games not-supported by most emulators for a long time. (assuming you have enough base RAM available to load it and have the right dump of the game, you can get it running in NESticle).

Castlevania III was the big one that tended to be mentioned frequently (though of course that is not an RPG).

TBH, once upon a time, there was a dev scene called "NES ROM Hacking" - and most of the applications for that, at least at onset, were largely DOS based.

NES ROM hacking is still around (Super Mario Bros 3Mix is spectacular) but no one uses DOS tools anymore, and I don't think anyone would recommend starting with NESticle these days.

Reply 9 of 27, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie
Jorpho wrote:
creepingnet wrote:

NES - NESticle X.XX is my main choice here. The reason being, NESticle was a THE go-to, must have, can-do-it-all NES emulator, and the in-numbered X.XX version is the most compatible, Dragon Warrior IV runs on it, which is my litmus test as Dragon Warrior/Dragon Quest IV is the biggest, trickiest RPG to get working on NES emulators, and one of the games not-supported by most emulators for a long time. (assuming you have enough base RAM available to load it and have the right dump of the game, you can get it running in NESticle).

Castlevania III was the big one that tended to be mentioned frequently (though of course that is not an RPG).

Good catch, CVIII was another one, I'm not a big Castlevania fan.

NES ROM hacking is still around (Super Mario Bros 3Mix is spectacular) but no one uses DOS tools anymore, and I don't think anyone would recommend starting with NESticle these days.

Shows how in the loop I am on the modern ways. I've stuck with the old stuff because I quit doing it around the time I finally was able to get something more modern than Windows 98SE working on my primary desktop. Still I do prefer Tile Layer Pro for DOS more than the other version because it's easier on my eyes (320X200 vs. Naitive Windows Resolutions, which are way too high for Tile Layer Pro, which was okay when I was still using 640X480 and 800X600 in 2003). Actually, that's what my 486 is used for the most is a lot of low-res, pixel, graphics, retro-game title type work.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 10 of 27, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie
Niezgodka wrote:

What system I can emulate on 486dx2 - Pentium 100 Machine in pure DOS? Are any emulators worth installing, for smooth emulation? (Joystick, sound, framerate)
Gameboy maybe? NEs? C64? ZX?

For C64 look for C64s emulator. For ZX Spectrum try X128.

If I remember correctly they're playable on Cyrix 5x86/100 in DOS. Mail me for binaries.

1) VLSI SCAMP /286@20 /4M /CL-GD5422 /CMI8330
2) i420EX /486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
3) i430FX /K6-2@400 /64M /Rage Pro PCI /ES1370+YMF718
4) i440BX /P!!!750 /256M /MX440 /SBLive!
5) iB75 /3470s /4G /HD7750 /HDA

Reply 12 of 27, by notsofossil

User metadata
Rank Member
Rank
Member
creepingnet wrote:

Saying you need a 300MHz PC just to emulate an 8-bit or 16-bit machine is B.S., sorry but I'm being brutally honest here, I've been using emulators since 1995 - when all that stuff was new, and the fastest PC one could get was a 100 MHz Pentium.

There is a massive difference between emulators for playability and cycle/transistor-level accuracy.

Nesticle can work with as little as a Pentium MMX, but it is extremely inaccurate and has mediocre support for the NES hardware and its hundreds of cartridge mapper configurations. ZSNES can work on very low end DOS hardware, but it is extremely inaccurate, many games don't work properly and even the SPC700 emulation core is broken. BSNES/Higan is an amazingly accurate SNES emulator, it requires a high end PC, Core i5/i7 level hardware.

For an incompatible CPU to emulate the functions of another CPU and additional support hardware, you require a LOT of processing power. Not just double or even squared above the original CPU, multiple times more than that. Pretty much the only reason emulators are being written for massively overpowered incompatible hardware is old console hardware is seldom being manufactured and everyone buys new PC hardware every year.

See this article:

https://arstechnica.com/gaming/2011/08/accura … -snes-emulator/

Thinkpad T42 Win9x Drivers | Latitude D600 Win9x Drivers
Next: Dell Inspiron 8000

Reply 13 of 27, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie
notsofossil wrote:
There is a massive difference between emulators for playability and cycle/transistor-level accuracy. […]
Show full quote
creepingnet wrote:

Saying you need a 300MHz PC just to emulate an 8-bit or 16-bit machine is B.S., sorry but I'm being brutally honest here, I've been using emulators since 1995 - when all that stuff was new, and the fastest PC one could get was a 100 MHz Pentium.

There is a massive difference between emulators for playability and cycle/transistor-level accuracy.

Nesticle can work with as little as a Pentium MMX, but it is extremely inaccurate and has mediocre support for the NES hardware and its hundreds of cartridge mapper configurations. ZSNES can work on very low end DOS hardware, but it is extremely inaccurate, many games don't work properly and even the SPC700 emulation core is broken. BSNES/Higan is an amazingly accurate SNES emulator, it requires a high end PC, Core i5/i7 level hardware.

For an incompatible CPU to emulate the functions of another CPU and additional support hardware, you require a LOT of processing power. Not just double or even squared above the original CPU, multiple times more than that. Pretty much the only reason emulators are being written for massively overpowered incompatible hardware is old console hardware is seldom being manufactured and everyone buys new PC hardware every year.

See this article:

https://arstechnica.com/gaming/2011/08/accura … -snes-emulator/

Ya know, this is getting ridiculous.

I'm not telling the guy that he's going to have a 100% perfect emuation on everything - that's impossible, even on current hardware. I'm just giving him what the best I have experienced on my own using myself over the years is.

Cool blog. But to be completely honest, I don't think the feeling of using the ORIGINAL hardware will ever be fully replicated using a completely different platform. I knew this going into emulators in 95', and I still know it now because I own the systems I still emulate on my machines for convenience or just for a slightly different experience, or for other things.

If you want 100% accurate, your best bet is go to buy an old CRT TV, a Sony WEGA will be the easiest thing to get, then go buy the actual console of your choice, and the games you want to play, and use that. Then you have the actual controllers, actual console, actual games, running on the correct hardware, into the correct kind of TV so light guns work, with the best cabling you can get your hands on. However, it can be expensive for some people, or some people don't know where to look to get good prices on such things.

If you are willing to forego some accuracy for convenience, then Emulation may be the way to go. You'll probably have a different controller (unless you buy a USB look-alike gamepad or joystick), you'll most likely be playing on an LCD monitor if you use a modern system, and that monitor is smaller than a TV screen in most cases, and possibly widescreen aspect ration, so unless you configure it properly, welcome to stretched out graphics.

So why would someone want to run such things on a 486.......

Let me put it this way, I'm nostalgic about emulation like I am the consoles now. In 1995, it was a very strange, interesting experience to be running these console based games on a x86 based PC running DOS or Windows. It was extremely cool in a sense because emulators like NESticle and some others offered some level of tinkering with the games or cheating that was never before available. A Game Genie has slots for only 3 codes on an NES, NESTICLE was unlimited, albeit inaccurate for the reasons you described. Some codes worked on the NES the same as they did on NESticle running on DOS on a 486 DX4-100, some codes worked differently between the two, and some codes just did not work on one or the other due to inaccuracies. Not to mention you could edit the colors, you could make Super Mario Bros. a game that takes place at night if you wanted to, or edit the shapes tables on the fly (albeit not permanent edit).

Everything comes back around as "retro" eventually, even if to a small sect of people. Emulation is bound to be one of those things. I spent the age of 10-15 before I put down the video games and took up guitar hardcore for many years (and I still play and perform) constantly going to the local library, downloading emulators and ROMs, and then playing them at my friend's houses, school, and later on my own computer. It's something I am a tad nostalgic for, even if it seems like a silly, unlikely thing to be so about.

I'm not promising the OP 100% accurate emulation - if you want that, get the original console or at least run it on a modern PC, but for the best experience on a 486, I just posted what I've used that works best. YMMV.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 15 of 27, by creepingnet

User metadata
Rank Oldbie
Rank
Oldbie
Azarien wrote:
notsofossil wrote:

everyone buys new PC hardware every year.

This is not true.

Yeah, I'll second that one. I usually get 7-10 years out of a system before it's time to retire it, and then all I do is swap out the motherboard if I have a good case, and upgrade everything else as it wears out/breaks. And it looks like things might last even longer now considering I have 8+ year old machines at my house that run Windows 10 x64 as well as a brand new one would for my intents and purposes.

~The Creeping Network~
My Youtube Channel - https://www.youtube.com/creepingnet
Creepingnet's World - https://creepingnet.neocities.org/
The Creeping Network Repo - https://www.geocities.ws/creepingnet2019/

Reply 16 of 27, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I agree to what creepingnet said. Even though I grew up with the real thing, I also spent many nights
fiddling with the (now) ancient emulators and surfing through those more or less shady emulation sites. 😉

As he said, "everything comes back around as 'retro' eventually, even if to a small sect of people":
That's true, I believe, as I feel the same. For example, I remember the early 2000s, when I was totally amazed
by pocket computers (the ancients of our smartphones).

My first palmtop was a Palm M100, I believe. Around the time that thing seemed incredible powerful to me.
Before this, I only collected calculators and and the best thing I had was a little BASIC calculator made by Sharp.
Now, with the Palm in my hands I was able have real programs in my pocket for the very first time!

Around this time, we still used Windows 98 at home and I had the Palm Desktop software installed.
So it didn't take too long to find out that Palm also made an Emulator available (as a part of the SDK). WoW!
Now I was able to run my PalmOS programs on my desktop! I know this sounds silly by todays standards,
but it really felt exciting to run software written for another type of machine on an actual PC.

A bit later I even found an GameBoy emulator, Phoinix. Speed was mediocre, but acceptable for slow paced games.
Of course, it was in no way "accurate". But I didn't care, it was fun. And that was the most important part.
It was the same story with that PalmOS "video player" I had. Resolution and audio(!) quality was a joke.
But it was fun, too. To this day, I still remember that b/w sample video with the little hedgehog (no, not Sonic). ^^

Perhaps I'm just one out of a few people who had such memories ? I don't know.
Telling this story to you may sound like an old grandpa is talking about the good ol' times when he was
cruising with his paddle steamer (steamship) across the Mississippi River, haha. 😅

phoinix.png
Filename
phoinix.png
File size
531.83 KiB
Views
4716 views
File comment
Phoinix on a Palm IIIx, running Pokémon Yellow.
File license
Fair use/fair dealing exception

@notsofossil Thanks a lot for the link about that article from '11! I really enjoyed reading it. 😁
And I totally agree with what you said, and what the article said about accuracy beeing important.
For preservation purposes or scientific research, I think, accuracy totally makes sense.

However, do we really need high accuracy for having fun ? I thought games are meant to be played, to inspire people.
I sold my NES a while ago (I had to), but kept the few favorite games of mine along with a compatible console.

When playing Super Mario Bros., I do notice the slight difference in colour and tone.
But that doesn't stop me from having fun (speaking as someone who grew up with the real thing, too).

So I doubt that future generations will miss something vital without them having *perfect* emulation (see Sega Firecore 😁 ).
That's why I think that this article is somewhat overstated/sided viewed at one point:

"I see no reason why we should not be utilizing every last ounce of power that we have available today"

Have "we" ? Or should I ask "Will 'we' ever have enough power available ?" Where does this accuracy thing come to an end ?
Does it have to go down to to the level of simulating the results of thermal impact inside of the chipset or the
inclusion of characteristics of the indvidual transistor(s) ? Or is it mandatory to investigate Sony's exact
implementation of the SPC700's Gaussian algorithm (in case of SNES emulation) ?
The whole matter sounds a bit like some geniuses are gonna trying to calculate Pi every time a bit "better"
(it never ends; esp. when reading that part about DICE)! 😉

Really, this sounds somewhat arrogant to me. Not everyone has an overkill-machine at home, nor wants to own one.
I mean, okay, there are retro fanatics who *need* pixel-perfect graphics and crystal clear sound,
paired with cycle-exact timings. That's okay, I have respect for that. It's a hobby inside of a hobby. A challenge. Sports.
(Just like us building DOS machines, even though good ol' DOSBox is just fine for most of the games.)

But I'm afraid the writer forgets about the people out there who are happy with just having ordinary laptops or Tablet PCs.
Or doesn't he ? "The older emulators are not going away: they are still there for folks with older, slower hardware."
I hope so. I think these folks are very thankful for the less accurate, but playable emulators.
There's just one problem: I'm afraid they are just nolonger maintained then or less maintained by then.
Who wants to be the author of or responsible for an "inferior" emulator ? That's quite discouraging, I assume. 🙁

Plus, I imagine a normal -but very nostalgic- person would at first glance rather try to get his/her hands on an
antique TV set -along with the original console- before spending a large amount of money/time for building a
super-computer running a perfect masquerade (emulation).

Or perhaps that very same person would also assemble the console from the good parts of broken consoles
(not that hard, many do already) ? - Maybe he/she would also assign someone to repair these antiques. Who knows..

Or in the future, a normal (ie, non-geek) person would try to get -or even make- a replica of the original thing :
With the upcoming technology (just think of 3D printers and such) it should be possible to replicate the processor's die 1:1.
And that's not even utopian, repair cafés are already becoming popular these days.

So etching a chip design from the 1970/80s shouldn't be that hard in the future (in small quantities/ f. personal use).
Well, at least I hope so.

This gives me another idea - Wouldn't it be cool if someone would put the (heavy to emulate) core parts of
the NES/SNES/.. hardware on a PCI-e card or inside of a USB box, similar to those Z80 CPU cards for home computers of the 1980s ?
I'd be more economic than running CSNES on a hexa-core machine with rotary current-driven PSUs (just kidding!). 😉

(PS: What I wrote was no response to/against what notsofossil said, these where just my thoughts regarding that article.
I also apologize for the poor English. No rant intended, even though it might look like that.. 😅 )

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 17 of 27, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

While I can understand that the need for excessive accuracy might be questionable, I think it nonetheless remains that unusually low accuracy of the sort you'd likely get from an ancient DOS emulator is also not particularly desirable.

Jo22 wrote:

This gives me another idea - Wouldn't it be cool if someone would put the (heavy to emulate) core parts of
the NES/SNES/.. hardware on a PCI-e card or inside of a USB box, similar to those Z80 CPU cards for home computers of the 1980s ?
I'd be more economic than running CSNES on a hexa-core machine with rotary current-driven PSUs (just kidding!). 😉

I don't think it would be particularly more economic, actually. Custom hardware of that nature is expensive to design. But there is some precedent: there's such a thing as a "HardSID" for devoted fans of Commodore 64 music, and Brian Provinciano put an NES PPU on a card back in the days when he was heavily into NES development.

Reply 19 of 27, by Scali

User metadata
Rank l33t
Rank
l33t
notsofossil wrote:

There is a massive difference between emulators for playability and cycle/transistor-level accuracy.

I'd like to add that even 'cycle-accurate' doesn't seem to mean the same to everyone.
I think there are two schools of thought on the matter:
1) The emulator emulates all hardware as a state-machine at every clock cycle.

2) The emulator emulates all hardware so that any externally observable effects of any component are emulated at the correct state for every clock cycle.

I personally always assumed definition #2 by default, until I found that some people (even emulator devs) actually interpret it as definition #1.
In practice, both would have 'perfect' emulation of the system, but the second one can be implemented much more efficiently (which is my natural leaning as a developer).

An example: take a timer chip, which counts down from an initial value to 0 at each cycle, and generates an interrupt when it reaches 0.
For method #1, you would actually simulate the timer at each cycle, so you have an actual counter, and you actually count it down by 1, and everytime you do, you check if the counter has reached zero, and if so, you issue the interrupt.

For method #2, you do 'lazy evaluation': You timestamp the moment that the timer is started, and you record the initial value it was stored with.
You know in advance at which cycle the interrupt will occur, so you already set a marker for that cycle in your overall state machine, so the interrupt will get issued once your core emulation passes that cycle.
Other than that you do nothing, except when an instruction is emulated that wants to read the current counter value. At that point you calculate the exact timer value for that cycle, based on the delta between the recorded timestamp and the current cycle.

Clearly, method #2 has a lot less work to do per cycle, since most of the cycles (which could be thousands), the timer will not be read, and the interrupt will not be fired. In other words, nobody is observing any effects of the timer's state, and therefore there's no reason to explicitly have that state available.
Whenever any external observer needs the state, it is always readily available.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/