L-Spiro / BeesNES

A sub–cycle-accurate Nintendo Entertainment System emulator.
MIT License
42 stars 3 forks source link

Cross-platform port? #2

Open MetalMaxMX opened 5 months ago

MetalMaxMX commented 5 months ago

Just wanting to know if this will have a cross-platform version for OSes like macOS or GNU/Linux

Cheers! MetalMxMX.

L-Spiro commented 5 months ago

It will! I am using a UI library that is not portable, but I am carefully sectioning off that code so that creating UI’s for other platforms isn’t as much hell as it first seems!

MetalMaxMX commented 5 months ago

Oh awesome! Would love to try this first as a libretro port and then maybe with its own UI later, that would be quite cool to see and experiment!

I'll leave the issue open for any updates to the codebase relevant to that!

0CCULTIST commented 2 months ago

It will! I am using a UI library that is not portable, but I am carefully sectioning off that code so that creating UI’s for other platforms isn’t as much hell as it first seems!

Might I suggest Tk?

Very minimal UI toolkit written in C that's cross-platform.

L-Spiro commented 2 months ago

Thank you for the suggestion but that’s okay! I need to develop my UI library for another project, where it is non-negotiable (MHS X). Doing 3 UI’s isn’t such a hassle, and I know for-sure I will have no problems integrating Vulkan, Direct3D 12, and Direct3D 9 all at once, plus the iOS UI will have be completely redesigned anyway.

TheBoxGame commented 4 weeks ago

a android port ?

L-Spiro commented 4 weeks ago

Well, I don’t personally do Android development, and have devices for testing etc. But no doubt someone will make one!

TheBoxGame commented 4 weeks ago

@L-Spiro the question is whether an hdmi filter for fceux would be suitable

L-Spiro commented 4 weeks ago

Well, if people want to port some of my filters to FCEUX, they are always allowed, but BeesNES is planned to support the full set of TAS features (plus extra ones I can imagine), so in the end you should just be able to use either one, unless of course we are talking about a platform that BeesNES does not support (and maybe we are!)

In that case, if you just want the look of BeesNES but in an FCEUX core, again, people are allowed to work on it, but there might be a lot of deep rewriting if you want to get the exact look. I’m an R&D graphics programmer so I’ve added a lot of my own custom algorithms to make BeesNES look distinct and more authentic, and some of these routines are as fundamental as the up-scalers. When I resize the internal image to the display size, I use my own custom routine that bakes a scanline effect into the up-scaling. So you’d have to replace a routine that FCEUX uses fairly routinely and is low-level if you want to replicate that look. It would be worth it and improve the appearances of all of their output, but it’s just an example of how low-level you would have to renovate in order to get the proper look. I also handle the CRT’s pow-based gamma so that it comes out correctly on PC monitors, which currently no other emulator does.

With a little effort, you could get an approximate BeesNES look in FCEUX, but a proper look might require some overhauling. Both of these customizations apply even when simply drawing a paletted output, which is what I am calling “HDMI Mod” in some screenshots. The “HDMI” screenshot is Blargg’s filter with my customizations.

On Mon, Jun 3, 2024 at 5:00 PM TheBoxGamePL @.***> wrote:

@L-Spiro https://github.com/L-Spiro the question is whether an hdmi filter for fceux would be suitable

— Reply to this email directly, view it on GitHub https://github.com/L-Spiro/BeesNES/issues/2#issuecomment-2144525403, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABYFQ2TS4NQ7JIFEJT3GGTLZFQPATAVCNFSM6AAAAABCELCRFOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBUGUZDKNBQGM . You are receiving this because you were mentioned.Message ID: @.***>

TheBoxGame commented 4 weeks ago

@L-Spiro let me tell you, there is someone who programs emulators in C++ and he made a NES.Emu emulator based on fceux but there is no hdmi and pixel perfect filter because I have my famicom and I connect it to the hdmi cable on the new TV and it looks nice and such a filter in fceux would be useful

https://github.com/Rakashazi/emu-ex-plus-alpha

TheBoxGame commented 4 weeks ago

Screenshot_2024-06-03-10-47-01-922_com explusalpha NesEmu Screenshot_2024-06-03-10-47-06-588_com explusalpha NesEmu Screenshot_2024-06-03-10-47-21-453_com explusalpha NesEmu Screenshot_2024-06-03-10-47-33-127_com explusalpha NesEmu Screenshot_2024-06-03-10-47-37-409_com explusalpha NesEmu

L-Spiro commented 4 weeks ago

So you are requesting I add something to FCEUX?

TheBoxGame commented 4 weeks ago

@L-Spiro yes of course, if it was possible to add this if fceux can handle such a filter

L-Spiro commented 4 weeks ago

I’m sure it can but I’m not interested in working on someone else’s emulator! My hands are full just working on mine, and there is no way I could pause the exciting new features I am adding right now to learn an entire new codebase and etc.!

But my code is here if anyone wants to do it! If anyone has questions about my custom features or filters I am happy to answer them!