1mo
@draeand @nick If we want to rewrite the world, the actually correct way to do this is write ECI64.dll, that's just a shim to call the 32-bit DLL, and then have anything at all that's a 64-bit process and wants to use eloquence load ECI64.dll. The primary reason I haven't done that is lack of talent. Though in hindsight, it probably would have actually been simpler than what I did wind up doing.
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick You can't load a 32-bit DLL into a 64-bit address space though, which is the fundamental issue. I mean okay, I'll be a pedant and say that theoretically you could in fact load a 32-bit DLL into a 64-bit process, but it would be very very painful and require a bunch of low level hacks and black magic (and I'm pretty sure you would need to in effect be the library loader at that point). Not worth it unless you have a really really good reason or you like over-engineering things.
1
0
0
0
1mo
@draeand @nick No, but you could have ECI64.dll handle all of the IPC stuff, using what ever method you want, behind the scenes in a way that's largely invisible to the 64-bit app. And then every single app that wants to use eloquence doesn't have to do its own IPC.
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Very true, that's probably the best route unless you really want to learn how an operating system works. Which I would encourage, if only to learn new things!
1
0
0
0
1mo
@draeand @nick Hah. I'm a guy who forgot to clean up a process on close and left it that way for, like, months. I'm far away from doing low level OS work.
2
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Damnit, now the nerd side of me is working through actually making that work -- loading a 32-bit DLL into a 64-bit address space... Oooof
2
0
0
0
1mo
@draeand @nick And there is a thing you can license that will do exactly that: load 32-bit libraries into 64-bit apps. But the guy wants like $3000 to license it. His target market is businesses with old codebases they can't modernize. And he doesn't offer a demo.
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Boooooooo. I'll just implement it myself then. Maybe use Unicorn to act as the 32-bit emulator and hook win32 functions
1
0
1
0
1mo
@draeand @nick I mean if you toss up a repo, I'll switch my addon over to it if the code looks okay. :-)
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Ugh, that's going to be very very annoying to actually implement. Very fun too but very annoying 😂
2
0
1
0
1mo
@draeand @nick Also remember that, for extra fun, eci.dll is just the rapper and caller. All of the .syn files for each language are dll files of there own that ECI.dll needs to load.
2
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Funny thign is that you could probably patch the .syn files if you wanted to to fix them, I'm surprised nobody has actually do that
1
0
0
0
1mo
@draeand @nick The .obj files aren't available for the actually good versions of eloquence. That's why openevv used IBM's viavoice, with all new and improved bugs added by IBM. Because IBM left all the debug and linker stuff in their builds. Without that, patching the .syn files would, I guess, be possible in theory. But if you're going to do that you might as well just hand-rewrite eloquence in assembler.
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Fair. I hope OpenEVV is able to clean itself up eventually -- it does a lot that I don't believe is actually necessary even to get byte-identical PCM samples. The implementation internals can be different while delivering the same output after all, and I don't think the author of OpenEVV intended for Claude to do "emulate the exact semantics of this binary down to the very byte but in 64-bit mode"
1
0
0
0
1mo
@draeand @nick That may be the only way to start to reverse Engineer the delta system, the custom language the rules were actually written in. Based on the papers and time and place the founder was at when she commercialized the system, it’s probably some kind of lisp like.
1
0
1
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick Probably but IMO that shouldn't be the final product
1
0
0
0
1mo
@draeand @nick Why not? If it’s not, all you’re doing is writing a new tts engine. And people would like to update the existing rules. If something new is the goal, there’s TGSpeechBox. But unless the output is pcm identical to eloquence, nobody is interested.
2
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick As long as the algorithms are correct, you can implement the engine however you want
1
0
0
0
1mo
@draeand @nick Sure, but that requires knowing the algorithm. We don’t. So getting the delta system out of the blobs we have is the only first step I can imagine. Once we know what it does, only then can we have useful conversations about what it should do differently.
1
0
0
0
User avatar
Ethin Probst @draeand@the-gdn.net
1mo
@fastfinge @nick True. Although I'd argue that's what RE would be for, before you write any code at all. But Idk, time will tell what happens I suppose, I don't know if there's really a correct answer here
1
0
0
0
1mo
@draeand @nick There are just bad answers and worse answers lol
0
0
0
0