Welcome, Guest
Necromancy Research
(1 viewing) (1) Guest

TOPIC: Necromancy Research

Necromancy Research 6 years, 3 months ago #4359

My existing emulator ports, though functional on 10.13, are very clearly on borrowed time given that they're reliant on 32-bit Carbon which will probably drop in the not too distant future. With that in mind, I've been contemplating a streamlined modern rewrite of my shell code to keep things alive for the next decade.

This is not an announcement, or indeed a promise of one, and I'd ask for people not to respect that by not reporting this forum post in other places. If and when there's something I'm prepared to spread more widely it'll be posted on my own site.

There are portions of my existing codebase that can be reused, not least the big collection of blitters (which in many cases are unchanged from the code that worked just fine on System 7.6 two decades ago). However anything even remotely connected with the user interface has to be developed from scratch. I don't want to waste my time writing code that will never be used.

Here's what I think is redundant:

- Frame skipping. (I'm running on a ten year old Mac Pro and everything runs full speed with hq4x).
- Changing the colour of the frame rate display. (You can have any colour you like as long as it's green).
- Switching monitor resolution for full screen mode. (Today's video cards can easily handle the stretch in software).
- Speed controls. (Does anyone ever run at anything other than 100%?)
- Interface controls to pause emulation in certain scenarios.
- Sound controls. (There's almost no performance gain from turning off the emulation, and you can mute your speakers.)
- Filter options (Flip, invert, grayscale, colour channel adjustments. Fun to play with, of no practical use).
- Graphical keyboard configuration. (A list is not as pretty but much faster to configure).

Does anyone have any strong objections to the above?
Last Edit: 6 years, 3 months ago by Richard Bannister.

Re: Necromancy Research 6 years, 3 months ago #4360

Regarding the frame rate display, would it be easier to put that in the title bar instead? Yeah, full screen users lose out, but having it stuck on a single color doesn't sound so great (especially if the game is already full of green).

Filter options: so long as you don't remove the useful ones like hq2x and the like, that sounds fine. It's neat to have the options you listed but they are pretty unpractical.

I use the pausing features of your emulators. Mostly when I need to change a setting immediately without anything further happening in the emulation. However, if savestate functionality was solid, I wouldn't mind making a savestate just to restore it after taking care of business.

I'd slightly miss the graphical keyboard configuration. But if you allow the gamepad configuration to accept keyboard input that would be good enough.

Thanks for the many years of support, Richard!

Re: Necromancy Research 6 years, 3 months ago #4361

As for sound controls, I would like the ability to mute. Getting a FaceTime call or watching a youtube video on how to pass a certain section of the game I'm playing are example scenarios where the game music would interfere but I don't want to actually mute my mac.

Re: Necromancy Research 6 years, 3 months ago #4363

Richard Bannister wrote:
Here's what I think is redundant:

- Frame skipping. (I'm running on a ten year old Mac Pro and everything runs full speed with hq4x).
- Changing the colour of the frame rate display. (You can have any colour you like as long as it's green).
- Switching monitor resolution for full screen mode. (Today's video cards can easily handle the stretch in software).
- Speed controls. (Does anyone ever run at anything other than 100%?)
- Interface controls to pause emulation in certain scenarios.
- Sound controls. (There's almost no performance gain from turning off the emulation, and you can mute your speakers.)
- Filter options (Flip, invert, grayscale, colour channel adjustments. Fun to play with, of no practical use).
- Graphical keyboard configuration. (A list is not as pretty but much faster to configure).

Does anyone have any strong objections to the above?


Your call really and any update is better than no update so I'm willing to agree on the grounds that it'll make your theoretical job easier.

If I were to have my 10 cents though:
- I like fullscreen mode and don't use a particularly modern computer so if it's gonna improve performance then great. Is it very difficult to include?
- Speed controls... fast forward can be really useful in some RPGs if you really just want to zip through some of the dialogue. That's the only reason I've ever changed the speed of a game while playing (i.e. I've read the dialogue before I'm allowed to move forward and just want to skip it... great for when I'm bug/easter egg searching too, e.g. if I have to wait 1 minute for a platform to move back in place every time I mess up and I'm trying to do something weird/obscure that might not even work)
- Pausing can be useful if I'm gaming and my baby starts crying. Uuuum. That said, most games have an in-game pause option and if for some reason it's disabled, you're probably cheating if you pause. I don't like cheats because I find the internet has made games too easy (i.e. you can youtube the solution in 2 seconds whereas in the past I'd spend all summer down at our Ring of Bright Water-esque beach house trying to figure out a lot of simple puzzles in between surfing, home renovations and swimming out to the islands... the fun of having to work everything out myself without any tips/cheats made games last so much longer!) Nostalgic rant aside, pause is useful, but I say that with caution... in principle I have no objection towards removing features that are mostly gonna be used by cheaters...

Again, I'm happy to see all 3 go if implementing them is gonna be a deal breaker. However, I felt it was worth putting up an argument for their inclusion given the lack of input.
Last Edit: 6 years, 3 months ago by jetboy.

Re: Necromancy Research 6 years, 2 months ago #4365

Okay, some brief commentary on the points raised above:

- Blitters (hq2x/Super Eagle/etc) are in the redesign. Filters (changing colour channels/etc) are not.

- Pausing can be achieved at any time by putting the emulator into the background. I don't propose to provide any functionality beyond that.

- I will consider providing the ability to turn sound off.

- Full screen mode is in the redesign. Switching resolution is not.

- Speed controls are not part of the redesign, however the "Turbo" key is (which turns off speed limiting while pressed).

Re: Necromancy Research 6 years, 2 months ago #4366

- Switching monitor resolution for full screen mode. (Today's video cards can easily handle the stretch in software).


No problems there. I actually dislike forced resolution switching. See: Diablo 2 for OS X - it forces 800x600 and doesn't even use OpenGL stretching. The result? Super blurry video and black bars on the screen. So long as we at least get to retain the choice between proper aspect ratio and/or stretching to fill the screen entirely, you're right, this isn't an issue anymore. Even Apple's lowly mobile GPU lineup in their machines can handle this. Hell, even Intel's IGPs can handle it. Well, mostly. IGPs still suck for other reasons.

- Speed controls. (Does anyone ever run at anything other than 100%?)


For RPGs, yes, we do. Turbo functionality really saves a ton of grind time in RPGs. But note that I said turbo mode, so if you leave in just the ability to set a turbo speed and a turbo keybind, you can ditch the rest of the speed controls and nobody would ever really notice. I've never actually configured the turbo speed though, so as long as the core turbo function remains, then it would be just as it has been all along for people like me that used turbo but never changed the speed from your presets.

- Interface controls to pause emulation in certain scenarios.


Useful in certain circumstances, but especially so in situations where the user experiences odd behaviour when switching to and from fullscreen mode while in an app (it's a bug in OS X that keeps resurfacing and is currently afflicting quite a few non-emulation games when using CMD-TAB). But it's really your call whether or not you want to work around yet another Apple bug. (Side note: The AMD wake from sleep bug is back in 10.13 so any users using that OS that sleep their machines while using your emulators that report slowdowns are experiencing this one and there is no workaround except for Apple to fix it yet again; it has literally come back every other major (10.X) OS version since Mountain Lion).

- Sound controls. (There's almost no performance gain from turning off the emulation, and you can mute your speakers.)


Useful if you're trying to record a playthrough without sound. Also useful for when you want a game w/o sound while either listening to other audio or a video as mentioned above. Sometimes it's nice to just rock out to a soundtrack other than the game's own when grinding...

- Filter options (Flip, invert, grayscale, colour channel adjustments. Fun to play with, of no practical use).


Outside of using them for filters for youtube videos and whatnot, you're right. But I can't remember the last video I ran into that used any of these, so... *eyeballs dumpster*

- Changing the colour of the frame rate display. (You can have any colour you like as long as it's green).


Don't ask me how I managed to never see that dialogue button, but I didn't and wish I did (neon green is a bit bright and I'd have changed it to a more neutral color). That said, I've lived with neon green this long so...take that for what you will.

- Pausing can be useful if I'm gaming and my baby starts crying. Uuuum. That said, most games have an in-game pause option and if for some reason it's disabled, you're probably cheating if you pause. I don't like cheats because I find the internet has made games too easy (i.e. you can youtube the solution in 2 seconds whereas in the past I'd spend all summer down at our Ring of Bright Water-esque beach house trying to figure out a lot of simple puzzles in between surfing, home renovations and swimming out to the islands... the fun of having to work everything out myself without any tips/cheats made games last so much longer!) Nostalgic rant aside, pause is useful, but I say that with caution... in principle I have no objection towards removing features that are mostly gonna be used by cheaters...


I've had to answer the phone constantly lately. Robocalls + scam calls + family calls and I never know which is which because of rampant caller ID spoofing and/or blocking (my family blocks caller ID and has unlisted numbers so I get to answer the phone all. The. Time. A keybind/controller bind to pause is still appreciated, though I can understand it being removed if it makes life more difficult for you in terms of the rewrite. It's a "love to have it" item, but if push came to shove I'd probably just have to live without it.

Rose Tinted Glasses Moment: I kind of miss the simplicity of the UI for the InputSprocket controls. The current gamepad mapping methodology is slightly less intuitive than one might prefer, but if you haven't gotten any complaints about it from anyone else just consider this one a nitpick.

What I'm more concerned with long term is OpenGL. Your emulators hook into it specifically for the stretching and resizing functionality, yes? Well, OpenGL hasn't been updated at all since Mavericks, and with Apple having switched to Metal development only, they have effectively deprecated OpenGL. I honestly wouldn't be surprised to see it dropped in 10.14. World of Warcraft for example will almost certainly have to drop OpenGL support at that time, and the writing's been on the wall with regard to its demise on OS X for some time now. So just out of curiosity (this is only a question, not a request), how big is the roadblock with regard to switching from OpenGL to Metal with your emulators? I get the feeling that would be more complicated than the UI rewrite itself.

Oh, and it goes without saying that since this is a fairly hefty rewrite you're looking at no matter how you slice it, I have no qualms about having to pay to upgrade EE to modern functionality with the OS either.
Last Edit: 6 years, 2 months ago by Squishy Tia.

Re: Necromancy Research 6 years, 1 month ago #4373

Rose Tinted Glasses Moment: I kind of miss the simplicity of the UI for the InputSprocket controls. The current gamepad mapping methodology is slightly less intuitive than one might prefer, but if you haven't gotten any complaints about it from anyone else just consider this one a nitpick.


Supporting HID devices today is still an enormous pain in the ass.

There's a shiny new framework for Apple-approved pads but for everything else it involves a whole load of code. If I thought I could get away with it I wouldn't support HID devices at all; that's how bad it is.

What I'm more concerned with long term is OpenGL. Your emulators hook into it specifically for the stretching and resizing functionality, yes? Well, OpenGL hasn't been updated at all since Mavericks, and with Apple having switched to Metal development only, they have effectively deprecated OpenGL. I honestly wouldn't be surprised to see it dropped in 10.14. World of Warcraft for example will almost certainly have to drop OpenGL support at that time, and the writing's been on the wall with regard to its demise on OS X for some time now. So just out of curiosity (this is only a question, not a request), how big is the roadblock with regard to switching from OpenGL to Metal with your emulators? I get the feeling that would be more complicated than the UI rewrite itself.


Moving from OpenGL isn't a particularly big deal; I could do it if I had to. The main problem is that going Metal only would break older OS X machines (including my primary dev box, which is stuck on 10.11. Thanks Apple).

I have no qualms about having to pay to upgrade EE to modern functionality with the OS either.


That's a very useful data point. I hope others feel the same way

Almost two months after my initial post on this subject I can report that my research into necromancy continues to make progress. There is no announcement to make yet – nor do I plan one in the near future – but when Apple decides to kill off 32-bit applications altogether it is not beyond the bounds of possibility that I'll be ready.
Last Edit: 6 years, 1 month ago by Richard Bannister.

Re: Necromancy Research 6 years, 1 month ago #4374

Supporting HID devices today is still an enormous pain in the ass.

There's a shiny new framework for Apple-approved pads but for everything else it involves a whole load of code. If I thought I could get away with it I wouldn't support HID devices at all; that's how bad it is.


Eww. I thought one of the biggest benefits of OS X was its thorough HID support. I wonder why it's so much of a clusterfudge for ya. I mean, while I liked the InputSprockets UI, I know you didn't like having to code for it. OS X HID is even worse than that then, I take it?

Moving from OpenGL isn't a particularly big deal; I could do it if I had to. The main problem is that going Metal only would break older OS X machines (including my primary dev box, which is stuck on 10.11. Thanks Apple).


MacPro1,1? Or did you have a nicer MP3,1? I know that lack of 10.12+ support was due to SIMD4/SSE4 support being required which wasn't on the first two generations of Mac Pro CPUs. Still wish Apple had brought over OpenGL 4.5. At least then some of the games would get things like HBAO+. Metal's nice, but it's still missing a ton of features that even DX11 has had for years on the Windows side.

As for my machine, I had to relegate my Mac Pro 1,1 to Windows XP machine duty for my grandpa (the apps and games he plays require XP and don't work in Windows 7's XP Compatibility mode). I run a hackintosh now, built with very carefully chosen components and with a proper clean DSDT (the only changes I needed for the DSDT was when Apple so thoughtfully began hardcoding their USB EHCI/XHCI frameworks because their engineers were so awful that the OS couldn't be trusted to look up Apple's own DSDTs properly!). This thing is more stable than my "real" Mac ever was, and thanks to upgradeable GPUs at full speed, will last me longer too. It helps that I have overkill cooling in my system as well. I'm just sad I can't afford a GPU right now. $1300+ for a GTX 1080Ti is freaking nuts.

This is a pic of my system.



It even weighs more than a Mac Pro does.

And I'm still miffed that the MP1,1/2,1 never got a 64-bit EFI update. Crippling it with a 32-bit EFI on 64-bit hardware was...just ugh. ^_^
Last Edit: 6 years, 1 month ago by Squishy Tia.

Re: Necromancy Research 6 years, 1 month ago #4375

Squishy Tia wrote:
Eww. I thought one of the biggest benefits of OS X was its thorough HID support.


The support is thorough, but low level. Apple's new framework is what should have existed all along, but it doesn't work with older pads/joysticks (which seems asinine to me, but that's what we've got).
Last Edit: 6 years, 1 month ago by Richard Bannister.

Re: Necromancy Research 6 years, 1 month ago #4377

Sounds a lot like XInput on Windows TBH. :/

Re: Necromancy Research 6 years, 1 month ago #4384

Okay, I'm at the stage where I need a volunteer or two who might be interested in some pre-release testing.

At the moment this is a very small scale thing – one or two people at most.

If you're interested, email me with the emulator that you'd like to play with.

Re: Necromancy Research 6 years, 1 month ago #4385

Richard, what OS versions are you looking for people to test with?
Last Edit: 6 years, 1 month ago by Squirrel. Reason: Clarification

Re: Necromancy Research 6 years, 1 month ago #4387

10.11 is the minimum supported.

Re: Necromancy Research 6 years, 1 month ago #4388

I'm definitely interested. Which emulators have you gotten far enough on with Metal support to test with?

Also, you might want to consider putting a big ginormous caveat warning for 10.11 users into your apps that 10.11/El Capitan support is "as is" due to bugs in the Metal drivers. 10.11's Metal drivers are exceedingly buggy, especially with the nVidia GPUs and Intel IGPs. I would actually peg "official" support at 10.12.6 and later to be honest. It'll save you a shitload of headaches, as 10.12.6's Metal drivers are at least halfway decent. I would require 10.13 for Intel graphics users though, as all of 10.11 and 10.12's Intel IGP drivers have a plethora of crash bugs in them that didn't get fixed until High Sierra.

I'll shoot you an email via your website.

Re: Necromancy Research 6 years, 1 month ago #4390

I'm not using Metal. I don't see any reason to for now.

The heavy lifting was the rewrite of the shell code in Cocoa and (in some cases) fixing the underlying emulators so that they play nice when compiled in 64-bit mode.

Migrating from OpenGL to Metal at some point in the future – if necessary at all – will be considerably simpler.

Re: Necromancy Research 6 years, 1 month ago #4391

That's good to hear. Hopefully Apple doesn't actually drop OpenGL entirely from its OS in the near future. It's fairly rare for them to keep tech in their operating systems that they haven't updated in years (OpenGL's last update was in Mavericks).

Re: Necromancy Research 6 years, 1 month ago #4392

Squishy Tia wrote:
That's good to hear. Hopefully Apple doesn't actually drop OpenGL entirely from its OS in the near future. It's fairly rare for them to keep tech in their operating systems that they haven't updated in years (OpenGL's last update was in Mavericks).


I think it unlikely. They'd break a lot of things.

Re: Necromancy Research 6 years, 1 month ago #4393

I wouldn't put it past them. They are after all dropping 32-bit app support from the OS even though there's no real reason to since the kernel can handle both types of userspaces. Apple is known for killing off anything it doesn't like, after all.

Re: Necromancy Research 6 years, 1 month ago #4394

Squishy Tia wrote:
I wouldn't put it past them. They are after all dropping 32-bit app support from the OS even though there's no real reason to since the kernel can handle both types of userspaces. Apple is known for killing off anything it doesn't like, after all.


There's no reason to compile Cocoa as 32-bit, and they want to get the Carbon overhead out of the OS. That makes sense to me.

Re: Necromancy Research 6 years ago #4395

It's also worth noting that there's a new Vulkan compatability layer for Metal -- so if OpenGL did go away for some reason, at least there's Vulkan to replace it (finally).

Time to create page: 0.27 seconds