Lectrote 1.3.10

https://github.com/erkyrath/lectrote/releases/tag/lectrote-1.3.10

The only change is bumping Electron to release 11.0.4, and updating the build targets.

(Note that the macos-arm64 is untested, as I don’t have one of them speedy Macs yet! Maybe next year… If someone out there has an ARM Mac, please try the new Lectrote and report back.)

3 Likes

Lectrote arm64 working well on M1 processor.
Thanks!

1 Like

Great, thanks for checking.

Did some more testing.
The app in Lectrote-1.3.10-macos-arm64.dmg contains the intel version (and not the arm).
I found the correct arm version in the Lectrote-darwin-arm64 directory (after i ran the build myself), and the dmg file still contains intel version.

Also it seems that TADS games are not opening (just a white Lectrote screen without the loading image).
The intel version handles opening TADS without any problems.

Huh. Really. I must have picked the wrong directory when going through the signing procedure.

Yeah, I had a script with a hardwired path. This is fixed now; I’ve re-uploaded the correct Mac DMG files.

Also it seems that TADS games are not opening (just a white Lectrote screen without the loading image).

If you hit the “Toggle Developer Tools” menu option, is there an error visible in the console pane?

(Probably all the emglken interpreters have the same problem… if you select Git or Glulxe instead of Quixe, you’ll see the same result.)

I was unable to open developer tools, here is the screenshot.
Tried the rest of Glulx Interpreters, same result.

You’ve got it open, now select the menu item to restart the game.

The “Reset Game” menu item, that is.

Ohhh nice.
Here is the console screenshot.

Hm. Okay. No visible errors; it just doesn’t run.

This may have to wait for debugging help from someone with an M1 Mac. I don’t have any insight into where it could be hanging up.

I have posted an update; this is now release 1.3.11.

https://github.com/erkyrath/lectrote/releases/tag/lectrote-1.3.11

The underlying components have been restructured a bit, but there should be no visible changes.

(I still don’t know what’s going on with the TADS VM on ARM, I’m afraid. So that’s not likely to be fixed.)

We now have a Mac universal build! Notice that it’s twice the size of the single-platform (Intel and ARM) builds. That’s because it’s both of them stitched together.

Most Mac users should download the build for their machine ( macos-x86 for Intel, macos-arm64 for Apple Silicon). The universal build is only important if you need to distribute one binary to a bunch of people.

1 Like

And yet again, 1.3.12.

https://github.com/erkyrath/lectrote/releases/tag/lectrote-1.3.12

Why these quick minor updates? Because I keep fiddling with the library structure, and I don’t think I broke any interpreters, but if I did I’d rather find out sooner.

Colors are not available for z-code (v5, v8) with ZVM?

Not with the version of GlkOte that’s in Lectrote at the moment.

After some debugging with TADS games under M1.
This is the error output (after running electron manually)
Maybe it can help to identify the problem.

./node_modules/.bin/electron main.js

<— Last few GCs —>

[1142:0x7100000000] 42 ms: Scavenge 3.0 (4.3) -> 2.8 (5.1) MB, 0.4 / 0.0 ms (average mu = 1.000, current mu = 1.000) allocation failure
[1142:0x7100000000] 50 ms: Scavenge 4.1 (5.5) -> 3.7 (8.3) MB, 0.4 / 0.0 ms (average mu = 1.000, current mu = 1.000) allocation failure
[1142:0x7100000000] 68 ms: Scavenge 4.8 (8.5) -> 4.4 (9.0) MB, 0.4 / 0.0 ms (average mu = 1.000, current mu = 1.000) external memory pressure

<— JS stacktrace —>

Does the Node version of emglken/TADS run on M1 properly?

Yes, emglken works nicely with TADS files (node is running as arm64 architecture)

Hmm, quite odd it’s not working in Lectrote then. Google has no results for "external memory pressure" m1 wasm either.

Doing more debug, with my unprofessional perspective it looks like the problem is deeper (electron or node).
I’m going to open a bug issue in electron.

I’m attaching a bigger output of the starting process and errors, maybe you’ll get an idea what to check next.


> lectrote@1.3.12 start
> electron .

RL: load_prefs start
RL: load_prefs readFileSync done
[42924:0118/164018.915276:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
[42921:0118/164018.987389:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
    Policy set or a policy with "unsafe-eval" enabled. This exposes users of
    this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)
RL: game_file_discriminate start
RL: game_file_discriminate openSync
RL: game_file_discriminate Buffer.alloc
RL: game_file_discriminate readSync
[42927:0118/164022.179058:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
RL: load_named_game start
RL: load_named_game readFileSync start
RL: load_named_game readFileSync done
[42921:0118/164022.237876:INFO:CONSOLE(225)] "GiLoad: trying pre-loaded load (array)...", source: /Users/duracula/Documents/GitHub/lectrote/quixe/lib/elkote.min.js (225)
[42921:0118/164022.247919:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
    Policy set or a policy with "unsafe-eval" enabled. This exposes users of
    this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)
RL: game_file_discriminate start
RL: game_file_discriminate openSync
RL: game_file_discriminate Buffer.alloc
RL: game_file_discriminate readSync
[42935:0118/164026.267293:ERROR:node_bindings.cc(264)] Most NODE_OPTIONs are not supported in packaged apps. See documentation for more details.
RL: load_named_game start
RL: load_named_game readFileSync start
RL: load_named_game readFileSync done
RL: common_emglken_load start (loading tads)
RL: common_emglken_load created engine
RL: common_emglken_load data created
RL: common_emglken_load returning
[42921:0118/164026.351093:INFO:CONSOLE(225)] "GiLoad: trying pre-loaded load (array)...", source: /Users/duracula/Documents/GitHub/lectrote/quixe/lib/elkote.min.js (225)
[42921:0118/164026.356984:INFO:CONSOLE(40)] "Blorb is not inited after load_run()!", source: /Users/duracula/Documents/GitHub/lectrote/apphooks.js (40)
[42921:0118/164026.357699:INFO:CONSOLE(111)] "%cElectron Security Warning (Insecure Content-Security-Policy) font-weight: bold; This renderer process has either no Content Security
    Policy set or a policy with "unsafe-eval" enabled. This exposes users of
    this app to unnecessary security risks.

For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.", source: electron/js2c/renderer_init.js (111)

<--- Last few GCs --->

[42935:0x7100000000]       44 ms: Scavenge 3.0 (4.3) -> 2.9 (4.8) MB, 0.5 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure 
[42935:0x7100000000]       52 ms: Scavenge 4.1 (5.5) -> 3.7 (8.3) MB, 0.4 / 0.0 ms  (average mu = 1.000, current mu = 1.000) allocation failure 
[42935:0x7100000000]       99 ms: Scavenge 4.8 (8.8) -> 4.4 (9.3) MB, 0.4 / 0.0 ms  (average mu = 1.000, current mu = 1.000) external memory pressure 


<--- JS stacktrace --->

[42922:0118/164026.363858:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. 2D:F7:47:72:BB:D7:45:F0:02:14:9C:1F:FB:23:98:53
[42922:0118/164026.364130:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364163:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364183:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364197:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. A2:95:DD:00:57:0D:3A:46:DF:E7:24:1A:FD:5D:E1:FF
[42922:0118/164026.364214:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364227:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364239:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364252:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. B1:C2:52:0E:1C:C2:B9:3B:E0:A5:5D:09:87:D5:BB:73
Renderer process crashed - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
[42922:0118/164026.364274:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364298:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364316:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.364330:ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. 92:DA:A0:B6:19:71:8D:6D:5C:75:A2:50:C9:F2:10:59
[42922:0118/164026.364347:ERROR:gles2_cmd_decoder.cc(19029)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[42922:0118/164026.364359:ERROR:gles2_cmd_decoder.cc(19050)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.364378:ERROR:gles2_cmd_decoder.cc(13915)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[42922:0118/164026.372338:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372365:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372381:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
[42922:0118/164026.372395:ERROR:gles2_cmd_decoder.cc(19079)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image