> I am currently up to this point about now so I assume that I will be releasing it a few months from now
Well, good luck when you do release it.
I'm not wrong on what drives software to be popular, but I'd sure like to be, so if your emulator really is better than everything else, I hope it succeeds.
> And about an entire frame of guaranteed lag. Not that I'm defending it; I'm just trying to reverse engineer the rationale that led to it.
Yes, you're absolutely right there. Adding a compositor adds up to one extra frame of lag. I'd much rather take the extra frame of lag than not be able to Vsync, though. Even better, I'd love to be able to turn the compositor off when gaming fullscreen.
And I used to be able to, and I did just that when going fullscreen with higan. And then Microsoft took the option to disable DWM away in Windows 8. So I just gave up on it and scrapped that feature. It never worked well on Linux anyway (all the windows go blank when you toggle Metacity and Xfce's compositors.)
> Are the diagonal stripes in Dr. Mario "blending effects" or "degradation" to you?
NES is trickier. There was no way to get RGB output from it (shy of the Playchoice which had different colors and that's really an abuse of the system to swap chips like that.) The SNES is more clear cut.
Basically, I want the video output to look like the real thing in the most pristine possible conditions. So that includes emulating NES composite output (staircasing and bleeding), SNES RGB output (bleeding), GB output (vomit green), GBA output (motion blur, horrendous and dim color palette), etc.
> Or perhaps you could figure out some practically implementable subset of Verilog, and mappers written in that could be shared among INL-ROM, PowerPak, and your emulator.
Yeah, it's all a matter of where to draw the line. You can take this down to the transistor level. Or you could just have Python mappers and bundle an interpreter with your emulator.
> But if I open an iNES ROM, change a few bytes, open it again, change a few bytes, and open it again, do I end up with three copies of the board manifest, PRG ROM, and CHR ROM in an invisible folder? Or does it execute the old cached copy without checking whether it's been updated?
If it gets an exact SHA256 match on an input file, it will name the file according to the database entry, and generate a 100% perfect board mapping.
If not, the game folder gets the same filename as the ROM you loaded. So if you have lots of generic names, like "test1.nes", you'd be in trouble there. It'll overwrite the old ROM if the file has changed (newer timestamp.)
If you really want to develop with higan, you should use the game folder format and load the games that way. Write a simple shell script to dd copy chunks from a merged file after building it if you must. Developers are more capable of working with the limitations.
> Some people would consider that grounds to convert to NES 2.0, not to abandon iNES entirely.
And that's fine, too.
I emulate the NES, SNES, GB, GBC, GBA, and NDS. I want a consistent format that can tackle the challenges of every system.
Again, it's just me trying some new things in my own way. There's a twelve-page bitchfest about me on ngemu for it, and it's just ridiculous. I don't understand why people are so bothered by me trying something different with my own software.
RetroArch uses bsnes v092 and runs regular game files directly, no game folders period. As does OpenEmu, Mednafen, Bizhawk, and lsnes. You have options, even with my own code.
I want to have technical discussions on the best way to handle this. But I don't want to deal with people who simply don't like that I am doing things differently. It's my software, until you start paying me, I will do what I want with it.
> People not supporting the stuff you come up with doesn't seem to have stopped you before... If you think that's an interesting experiment you should try it anyway. Isn't that how you work now?
Well, yes. But the only benefit to external mappers would be for more than one emulator to use it. Not all, of course, but a few.
Otherwise, if it's just for one emulator, they may as well be internal C++ implementations.
SNES has chips inside the carts, too. Only its coprocessors are 10-20x more complex than even the MMC5.
> nothing prevents it from simply running it instead of saving new files to the hard disk, technically.
You're right. It's doable. It's just that every single file handling routine would have to have a lot more code wrapped around it to choose between loading a game folder file, and loading a chunk of a merged file. The former with the game folder path and fixed filenames, the latter with user-definable paths for each file type, based off the game filename. And the GUI would have to re-add user selectable paths again.
It would be a lot of work to write, and a lot of work to maintain. I have done it before in bsnes v070-089. So I'm speaking from actual experience.
> Yep, that's my point -- bad UI design.
I'll unfortunately have to agree. But in Marty's defense, Nestopia is absolutely filled to the brim with features galore.
Developing software and designing user interfaces are really two different mindsets. I make my own GUI with myself in mind, and I'm painfully aware of how it's confusing to new users.
We need more people who are willing to write just the GUI portions for emulators. Every time someone tries to do this for my emulator, they end up forking off and making a multi-system, multi-emulator codebase. Eg RetroArch.
> I thought the developers of FCEUX were focusing on Bizhawk
BizHawk is fun. But they load up their imported emulator codebases with snarky comments on their design
