Breaking engines into executable modules

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

NiQ
Posts: 7
Joined: Sun Oct 17, 2010 11:52 am

Breaking engines into executable modules

Post by NiQ » Wed Aug 07, 2019 8:24 pm

The ScummVM 2.0.0 executable binary is ~35MB in size and as more engines are added it'll inevitably get bigger. This may be an issue with low-end devices in the future. There's no real reason to have a game engine for a game that you don't even own when you're low on storage and there's no real reason to load any game engine into RAM except for the one for the game you're currently playing.
I wonder whether it's worth the effort to break the game engines into different executable modules (.so / .dll etc.) that can be distributed separately (e.g. you could apt-get install the specific engines you need). When a game is played only the relevant game engine will be loaded, greatly reducing the RAM footprint.
Could this be considered?

User avatar
criezy
ScummVM Developer
Posts: 643
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Re: Breaking engines into executable modules

Post by criezy » Wed Aug 07, 2019 11:04 pm

This is already, and has been for some time, an issue with low-end devices. In the past we had some platforms for which we needed to split a release into several executables. And this is why we have added (about 10 years ago I think) the ability to build engines as plugins instead of having everything in a single executable. Plugins are however only used by default on platforms with low memory, and for desktop computers the default is to build a monolithic executable.

And also, independently of the plugin vs monolithic option, when you compile ScummVM yourself you can also select which engines to include.

Kasenshlogga
Posts: 7
Joined: Thu Jul 18, 2019 1:31 pm

Re: Breaking engines into executable modules

Post by Kasenshlogga » Mon Aug 12, 2019 3:10 pm

How "low-end" are we talking? I mean even the $5 Raspberry Pi zero has 512 MB which is plenty and that's about as low-end as you can get.

User avatar
MusicallyInspired
Posts: 1033
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Re: Breaking engines into executable modules

Post by MusicallyInspired » Mon Aug 12, 2019 3:40 pm

The Nintendo DS port had to be split into various engines because of memory issues (the original Nintendo DS has 4 MB of RAM and 256 kB of Serial Flash Memory). And even then, Full Throttle and The Dig had to be split from the rest of the SCUMM games into their own build and used with a GBA port-loaded memory-expanding cart. IIRC, Curse of Monkey Island wasn't supported at all.
Last edited by MusicallyInspired on Mon Aug 12, 2019 6:55 pm, edited 2 times in total.

User avatar
criezy
ScummVM Developer
Posts: 643
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Re: Breaking engines into executable modules

Post by criezy » Mon Aug 12, 2019 5:26 pm

And we had some discussions on our Discord/IRC channel recently about the PSP and possibly PS Vita hitting their limits as well (the Vita currently doesn't use plugins and we have to disable some engines in the daily builds as otherwise it crashes). The PSP for example only has 32 Mb of memory (or 64 Mb on some models). The Dreamcast doesn't even have that much (it has 16 Mb or RAM i believe). As you can see the Raspeberry Pie zero is actually pretty high-end compared to some other platforms we support :wink:

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Mon Aug 12, 2019 9:15 pm

Just for the sake of curiosity...what are the pros and cons of such dynamic engine modules?

Will the overall RAM/memory consumption go down (as in it will only load the engine module of the game i'm playing?)
I have yet a long way to hit the memory border (1.5 GB) but it's always good to know there are alternatives.

Will the overall memory consumption go down when comiling/linking?
Will it make it more complicated to maintain than with static builds or will it maybe even make it easier?

Thank you

PS: I have already read the wiki entry for plugins, that would be a nice project for the holidays...given there is no coding involved.

Kasenshlogga
Posts: 7
Joined: Thu Jul 18, 2019 1:31 pm

Re: Breaking engines into executable modules

Post by Kasenshlogga » Tue Aug 13, 2019 1:14 pm

criezy wrote:
Mon Aug 12, 2019 5:26 pm
And we had some discussions on our Discord/IRC channel recently about the PSP and possibly PS Vita hitting their limits as well (the Vita currently doesn't use plugins and we have to disable some engines in the daily builds as otherwise it crashes). The PSP for example only has 32 Mb of memory (or 64 Mb on some models). The Dreamcast doesn't even have that much (it has 16 Mb or RAM i believe). As you can see the Raspeberry Pie zero is actually pretty high-end compared to some other platforms we support :wink:
Yeah but then I wonder are there actually people who use ScummVM on such ancient platforms. I guess the PSP is still a nice way to play IF you can find one with a battery that still works. On the Dreamcast it's nice to have, but also kinda silly these days with all the alternatives available.

User avatar
MusicallyInspired
Posts: 1033
Joined: Fri Mar 02, 2007 8:03 am
Location: Manitoba, Canada
Contact:

Re: Breaking engines into executable modules

Post by MusicallyInspired » Tue Aug 13, 2019 1:16 pm

The Nintendo DS port is no longer updated and is unsupported. But the functionality was made out of its necessity at the time. It doesn't make sense to remove a feature like this just because there doesn't (yet) seem to be a use for it. Especially when it's optional.

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Sun Aug 25, 2019 9:24 pm

Which engine feature dynamic module building?

If i want to configure them to do so, do i really have to give every single engine to --enable-engine-dynamic= ?
As i can --disable-all-engines and --enable-all-engines, why not --enable-all-engines-dynamic?

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Sat Sep 21, 2019 6:18 pm

No one has a list of available egines to be built as plugins?

Or maybe i misunderstood and have to add plugin code to all the engines myself?

User avatar
criezy
ScummVM Developer
Posts: 643
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Re: Breaking engines into executable modules

Post by criezy » Sat Sep 21, 2019 8:53 pm

All engines can be built as dynamic plugins. The easiest way to do so is to use --default-dynamic.

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Sun Sep 22, 2019 1:03 am

@criezy

I know about the configure switch and already tried it, but it seems it needs some more "configuring" (at least on my platform), since in my test compile all the engines were still build static into the executable.

Anything else i should have take a look?

Thank you

edit: Hmm, does compiling a static app with --enable-static contradicts compiling executable modules (--default-dynamic)?

edit: I figured it out and it compiled a plugin of the scumm engine, but now i either get a crash on starting scummvm or no engine is found at all (if i move libscumm.so to any place other than "plugins/")...help?

Code: Select all

Crash log for task "scummvm"
Generated by GrimReaper 53.19
Crash occured in module libc.so at address 0x7F5439EC
Type of crash: DSI (Data Storage Interrupt) exception
Alert number: 0x80000003

Register dump:
GPR (General Purpose Registers):
   0: 7EC8B6CC 4EC05B70 00000000 00000004 00000190 7F5502EC 7F564B7C 4C1B7790 
   8: 00039060 60147944 00000002 00000000 00000154 4EF4A428 00000000 52A2A340 
  16: 7EC9E7B4 00000000 4C67D280 45B80DE0 02B30000 02B30000 00000000 00000001 
  24: 6FF8C180 00000001 45B6686C 45B66868 7ECB4E1C 4EC05DF0 517D724C 4EC05CA0 


FPR (Floating Point Registers, NaN = Not a Number):
   0:              nan     -4.4678e+307     -4.4678e+307     -4.4678e+307 
   4:     -4.4678e+307     -4.4678e+307              260              104 
   8:              156              104             2550       4.5036e+15 
  12:       4.5036e+15               -1                0                0 
  16:                0                0                0                0 
  20:                0                0                0                0 
  24:                0                0                0                0 
  28:                0                0                0               -0 

FPSCR (Floating Point Status and Control Register): 0x82002000


SPRs (Special Purpose Registers):
           Machine State (msr) : 0x0000B030
                Condition (cr) : 0x7ECB4E1C
      Instruction Pointer (ip) : 0x7F5439EC
       Xtended Exception (xer) : 0x4EC05DF0
                   Count (ctr) : 0x517D724C
                     Link (lr) : 0x4EC05CA0
            DSI Status (dsisr) : 0x4677DDD0
            Data Address (dar) : 0x021AD048



680x0 emulated registers:
DATA: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
ADDR: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
FPU0:                0                0                0                0 
FPU4:                0                0                0                0 



Symbol info:
Instruction pointer 0x7F5439EC belongs to module "libc.so" (PowerPC) 
Symbol: __NewlibCall + 0x4 in section 9 offset 0x00000CBC

Stack trace:
    System:SObjs/libc.so:__NewlibCall()+0x4 (section 9 @ 0xCBC)
    System:SObjs/libstdc++.so:_Znwj()+0x108 (section 10 @ 0x75904)
    [backends/plugins/sdl/sdl-provider.cpp:90] scummvm:_ZN13DynamicPlugin10loadPluginEv()+0x300 (section 1 @ 0x13CA50)
    [backends/plugins/sdl/sdl-provider.cpp:65] scummvm:_ZN9SDLPlugin10loadPluginEv()+0xcc (section 1 @ 0x13CE3C)
    [base/plugins.cpp:434] scummvm:_ZN13PluginManager13tryLoadPluginEP6Plugin()+0x68 (section 1 @ 0x1DE60)
    [base/plugins.cpp:194] scummvm:_ZNK6Common8MemFunc1IbP6Plugin13PluginManagerEclEPS3_S2_()+0x90 (section 1 @ 0x218E8)
    [base/plugins.cpp:82] scummvm:_ZNK6Common9Binder1stINS_8MemFunc1IbP6Plugin13PluginManagerEEEclES3_()+0x38 (section 1 @ 0x20EEC)
    [base/plugins.cpp:145] scummvm:_ZN6Common8for_eachIPP6PluginNS_9Binder1stINS_8MemFunc1IbS2_13PluginManagerEEEEEET0_T_SA_S9_()+0x54 (section 1 @ 0x1FE0C)
    [base/plugins.cpp:378] scummvm:_ZN13PluginManager14loadAllPluginsEv()+0x148 (section 1 @ 0x1D978)
    [base/main.cpp:444] scummvm:scummvm_main()+0x598 (section 1 @ 0x9984)
    [backends/platform/sdl/amigaos/amigaos-main.cpp:79] scummvm:main()+0x264 (section 1 @ 0x79F4)
    native kernel module newlib.library.kmod+0x000020a4
    native kernel module newlib.library.kmod+0x00002d0c
    native kernel module newlib.library.kmod+0x00002ee8
    scummvm:_start()+0x170 (section 1 @ 0x1AB8)
    native kernel module dos.library.kmod+0x000255c8
    native kernel module kernel+0x000420ac
    native kernel module kernel+0x000420f4

PPC disassembly:
 7f5439e4: 4bfffe78   b                 0x7F54385C
 7f5439e8: 3d600000   lis               r11,0
*7f5439ec: 800b0000   lwz               r0,0(r11)
 7f5439f0: 7d6c002e   lwzx              r11,r12,r0
 7f5439f4: 7d6903a6   mtctr             r11

System information:

CPU 
 Model: P.A. Semi PWRficient PA6T-1682M VB1 
 CPU speed: 1800 MHz 
 FSB speed: 900 MHz 
 Extensions: altivec 

Machine 
 Machine name: AmigaOne X1000 
 Memory: 2097152 KB 
 Extensions: bus.pci bus.pcie 

Expansion buses 
 PCI/AGP 
  00:1D.0 Vendor 0x1959 Device 0xA004 
   Range 0: 007F03F8 - 007F0400 (IO) 
  00:1D.1 Vendor 0x1959 Device 0xA004 
   Range 0: 007F02F8 - 007F0300 (IO) 
  00:1A.0 Vendor 0x1959 Device 0xA007 
  00:00.0 Vendor 0x1959 Device 0xA001 
  00:01.0 Vendor 0x1959 Device 0xA009 
  00:14.3 Vendor 0x1959 Device 0xA005 
  00:1C.0 Vendor 0x1959 Device 0xA003 
   Range 0: 007F0200 - 007F0240 (IO) 
  00:1C.1 Vendor 0x1959 Device 0xA003 
   Range 0: 007F0240 - 007F0280 (IO) 
  00:1C.2 Vendor 0x1959 Device 0xA003 
   Range 0: 007F0280 - 007F02C0 (IO) 
  00:11.3 Vendor 0x1959 Device 0xA002 
  00:11.2 Vendor 0x1959 Device 0xA002 
  00:11.1 Vendor 0x1959 Device 0xA002 
  00:11.0 Vendor 0x1959 Device 0xA002 
  00:10.2 Vendor 0x1959 Device 0xA002 
  00:10.0 Vendor 0x1959 Device 0xA002 
  00:03.0 Vendor 0x1959 Device 0xA00C 
  00:04.0 Vendor 0x1959 Device 0xA00A 
  00:05.0 Vendor 0x1959 Device 0xA00A 
  00:08.0 Vendor 0x1959 Device 0xA000 
  00:09.0 Vendor 0x1959 Device 0xA000 
  00:15.0 Vendor 0x1959 Device 0xA006 
  00:1B.0 Vendor 0x1959 Device 0xA00B 
  00:1E.0 Vendor 0x1959 Device 0xA008 
   Range 0: 007F0400 - 007F0500 (IO) 
   Range 1: 007F0500 - 007F0600 (IO) 
  0A:12.0 Vendor 0x1002 Device 0x4380 
   Range 0: 00001030 - 00001038 (IO) 
   Range 1: 00001050 - 00001054 (IO) 
   Range 2: 00001048 - 00001050 (IO) 
   Range 3: 00001058 - 0000105C (IO) 
   Range 4: 00001020 - 00001030 (IO) 
  0A:13.0 Vendor 0x1002 Device 0x4387 
   Range 0: A0306000 - A0307000 (MEM) 
  0A:13.1 Vendor 0x1002 Device 0x4388 
   Range 0: A0307000 - A0308000 (MEM) 
  0A:13.2 Vendor 0x1002 Device 0x4389 
   Range 0: A0308000 - A0309000 (MEM) 
  0A:13.3 Vendor 0x1002 Device 0x438A 
   Range 0: A0305000 - A0306000 (MEM) 
  0A:13.4 Vendor 0x1002 Device 0x438B 
   Range 0: A0304000 - A0305000 (MEM) 
  0A:13.5 Vendor 0x1002 Device 0x4386 
   Range 0: A0309800 - A0309900 (MEM) 
  0A:14.0 Vendor 0x1002 Device 0x4385 
   Range 0: 00001000 - 00001010 (IO) 
   Range 1: A0309400 - A0309800 (MEM) 
  0A:14.1 Vendor 0x1002 Device 0x438C 
   Range 0: 00001040 - 00001048 (IO) 
   Range 1: 00001058 - 0000105C (IO) 
   Range 2: 00001038 - 00001040 (IO) 
   Range 3: 00001050 - 00001054 (IO) 
   Range 4: 00001010 - 00001020 (IO) 
  0A:14.2 Vendor 0x1002 Device 0x4383 
   Range 0: A0300000 - A0304000 (MEM) 
  0A:14.3 Vendor 0x1002 Device 0x438D 
   Range 0: 00000000 - 00100000 (MEM) 
  0A:14.4 Vendor 0x1002 Device 0x4384 
  06:00.0 Vendor 0x10EC Device 0x8168 
   Range 0: 00003000 - 00003100 (IO) 
   Range 2: A0104000 - A0105000 (MEM) 
   Range 4: A0100000 - A0104000 (PREF.MEM) 
  02:00.0 Vendor 0x1002 Device 0x679A 
   Range 0: 90000000 - A0000000 (PREF.MEM) 
   Range 2: A0000000 - A0040000 (MEM) 
   Range 4: 00002000 - 00002100 (IO) 
  02:00.1 Vendor 0x1002 Device 0xAAA0 
   Range 0: A0060000 - A0064000 (MEM) 

Libraries 
 0x625dd8e8: ISO-8859-15.charset V52.1 
 0x625dd6e8: english_ISO-8859-15.language V52.1 
 0x02a8b092: exec.library V53.89 
 0x61084b68: camdmidi.usbfd V53.5 
 0x6feab508: cgxvideo.library V42.1 
 0x4c4910d0: 8svx.datatype V53.2 
 0x4d489db4: amissl_v111a.library V4.3 
 0x4eb9f2a8: amisslmaster.library V4.3 
 0x4e2e9bc8: update.library V53.16 
 0x4e907700: expat.library V53.6 
 0x4d448ca0: fuelgauge.gadget V53.8 
 0x60b6f668: RAMDock.docky V50.4 
 0x60b6f568: GFXDock.docky V50.4 
 0x60b6f068: CPUDock.docky V50.5 
 0x60b6f3e8: pthreads.library V53.11 
 0x60b6e0e8: timesync.library V53.7 
 0x529e8bd8: SMARTDock.docky V53.2 
 0x4e3af3f8: X1kTemp.docky V53.10 
 0x529eb7c8: DateTime.docky V52.11 
 0x529e4580: datebrowser.gadget V53.7 
 0x4e5437c0: texteditor.gadget V53.24 
 0x529eb730: jpeg.datatype V53.7 
 0x52a929c8: Mixer.docky V52.6 
 0x618c37a8: sliderbar.gadget V53.21 
 0x52a92448: NetDock.docky V51.6 
 0x52a92348: KeymapSwitcher.docky V52.3 
 0x61803ad8: smartsubdock.docky V50.8 
 0x52a5ce98: Spacer.docky V53.2 
 0x61cbc738: smartbutton.docky V50.8 
 0x618c34b0: getcolor.gadget V53.10 
 0x53b3e030: gradientslider.gadget V53.6 
 0x618aff24: colorwheel.gadget V53.7 
 0x5b116dc8: radiobutton.gadget V53.9 
 0x52acda38: Separator.docky V53.2 
 0x5fd56ad8: screenblanker.library V53.6 
 0x5b116048: speedbar.gadget V53.12 
 0x618af840: slider.gadget V53.15 
 0x618af7a0: getfont.gadget V53.9 
 0x61d75660: shared.image V2.1 
 0x5b1144d0: anim.gadget V53.1 
 0x618af5c0: getfile.gadget V53.12 
 0x5b0de024: clipview.library V1.10 
 0x5b1142c8: progressbar.gadget V53.11 
 0x5b116108: clicktab.gadget V53.44 
 0x5b291bc0: requester.class V53.18 
 0x61cd0a50: integer.gadget V53.12 
 0x5fd0ca08: wav.datatype V54.4 
 0x61d75748: sound.datatype V54.6 
 0x61cd09b0: arexx.class V53.5 
 0x5fd0c758: chooser.gadget V53.21 
 0x61cd0910: penmap.image V53.5 
 0x61cd0870: bitmap.image V53.9 
 0x5fd0c944: mpega.library V2.4 
 0x61cd07d0: checkbox.gadget V53.9 
 0x61cd0730: space.gadget V53.6 
 0x5fd0c3d4: device.audio V6.2 
 0x61cd2018: filesave.audio V6.5 
 0x6fb3c3c8: listbrowser.gadget V53.62 
 0x6fef7c50: string.gadget V53.20 
 0x602e2040: scroller.gadget V53.14 
 0x60b43bd8: hdaudio.audio V6.23 
 0x602e2220: ilbm.datatype V53.3 
 0x6fc1b5d4: usergroup.library V4.30 
 0x60b89490: bsdsocket.library V4.307 
 0x60e827e0: mathieeedoubbas.library V52.1 
 0x61476dbc: hid.usbfd V53.12 
 0x61054264: camd.library V53.6 
 0x61145eec: textclip.library V53.1 
 0x6fd4a8c4: xpkmaster.library V5.2 
 0x625b8a5c: xadmaster.library V13.2 
 0x625c7d70: button.gadget V53.21 
 0x625c7e10: glyph.image V53.3 
 0x614a2b50: window.class V54.7 
 0x613beca8: popupmenu.class V53.2 
 0x627f2578: popupmenu.library V53.11 
 0x625c7c30: label.image V53.13 
 0x625c7af0: drawlist.image V53.3 
 0x6feab5f8: layout.gadget V54.2 
 0x613bebb0: bevel.image V53.6 
 0x625c7a50: png.datatype V53.10 
 0x625dfc64: picture.datatype V53.7 
 0x614a20f4: asl.library V53.49 
 0x6283b9d8: timezone.library V53.8 
 0x625cb408: application.library V53.12 
 0x6295fd6c: ft2.library V53.2 
 0x625e3390: Picasso96API.library V54.9 
 0x6fef808c: workbench.library V53.53 
 0x625d05c0: gadtools.library V53.7 
 0x625c60cc: commodities.library V53.7 
 0x6282d140: datatypes.library V54.6 
 0x6295fa74: png.iconmodule V53.1 
 0x627fd8cc: icon.library V53.16 
 0x6fdc2920: z.library V53.9 
 0x625dd068: version.library V53.15 
 0x625e0490: iffparse.library V53.1 
 0x6ffb9ccc: locale.library V54.2 
 0x6ff3d7ac: diskfont.library V53.9 
 0x6fd4ada8: petunia.library V53.6 
 0x6fd4ace8: diskcache.library V3.31 
 0x6fe97220: dos.library V53.158 
 0x6fdc20a4: usbprivate.library V53.12 
 0x6fef4f3c: massstorage.usbfd V53.83 
 0x6feabe4c: hub.usbfd V53.10 
 0x6fef4ea8: bootkeyboard.usbfd V52.3 
 0x6fef4e28: bootmouse.usbfd V53.3 
 0x6fef4d28: mounter.library V53.19 
 0x6feab7fc: usbresource.library V53.12 
 0x6ff8f518: hunk.library V53.4 
 0x6feab6f4: elf.library V53.27 
 0x6ff494d0: intuition.library V54.26 
 0x6ff622c0: keymap.library V53.9 
 0x6ff3e5a0: cybergraphics.library V43.0 
 0x6ff8e9a0: RadeonHD.chip V3.6 
 0x6ffb8420: graphics.library V54.156 
 0x6fffe4f0: layers.library V54.12 
 0x6ff34150: rtg.library V54.89 
 0x6ff8e824: PCIGraphics.card V53.15 
 0x6ff8f0e4: nonvolatile.library V53.5 
 0x6ffab258: newlib.library V53.30 
 0x6ff8d1ac: utility.library V54.1 
 0x6ffa8398: expansion.library V53.1 
 0x611501fe: rexxsyslib.library V53.4 (Legacy) 

Devices 
 0x61150ad4: netprinter.device V1.15 (Legacy) 
 0x529e8764: printer.device V53.1 
 0x4e3af6d4: serial.device V54.1 
 0x61d750c4: clipboard.device V53.3 
 0x6fd90cf4: ahi.device V6.6 
 0x60b43278: rtl8169.device V53.4 
 0x614c4c94: diskimage.device V53.4 
 0x6ff8dd10: usbsys.device V53.12 
 0x6ff8faf0: ehci.usbhcd V53.24 
 0x6ff8fa50: ohci.usbhcd V53.21 
 0x6ff3c7a4: cfide.device V53.0 
 0x6fef45b4: sb600sata.device V53.20 
 0x6ff8d448: console.device V53.99 
 0x6ff3c530: ramdrive.device V52.6 
 0x6ff6250c: input.device V53.5 
 0x6ff3d3b4: keyboard.device V53.11 
 0x6ff3c050: timer.device V53.2 

Tasks 
 AmiDock (Waiting) 
  Stack: 0x5b2c5004 - 0x5b2d4ffc, pointer @ 0x5b2d4910 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00240000 
  State: Process (Waiting) 
 rhd_gc (Waiting) 
  Stack: 0x6fea2000 - 0x6feaa000, pointer @ 0x6fea9f40 (Cookie OK) 
  Signals: SigRec 0x80000001, SigWait 0x00000000 
  State: Task (Waiting) 
 ahi.device Unit Process (Waiting) 
  Stack: 0x61c99004 - 0x61ca8ffc, pointer @ 0x61ca8f20 (Cookie OK) 
  Signals: SigRec 0xf000c000, SigWait 0x00000100 
  State: Process (Waiting) 
 camdmidi.usbfd (Waiting) 
  Stack: 0x60e9d004 - 0x60eacffc, pointer @ 0x60eacf60 (Cookie OK) 
  Signals: SigRec 0x60001000, SigWait 0x00000100 
  State: Process (Waiting) 
 ClickToFront (Waiting) 
  Stack: 0x5b17b004 - 0x5b18affc, pointer @ 0x5b18a9f0 (Cookie OK) 
  Signals: SigRec 0xc000d000, SigWait 0x00000100 
  State: Process (Waiting) 
 input.device (Waiting) 
  Stack: 0x6fe82000 - 0x6fe92000, pointer @ 0x6fe91f00 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Task (Waiting) 
 sound.datatype process (Waiting) 
  Stack: 0x46c7d004 - 0x46c9cffc, pointer @ 0x46c9ce40 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x40002000 
  State: Process (Waiting) 
 sound.datatype process (Waiting) 
  Stack: 0x61c75004 - 0x61c94ffc, pointer @ 0x61c94e40 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x40002000 
  State: Process (Waiting) 
 SFS DosList handler (Waiting) 
  Stack: 0x62ff2004 - 0x62ff5ffc, pointer @ 0x62ff5f20 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Process (Waiting) 
 USB stack (Waiting) 
  Stack: 0x6fe9a000 - 0x6fe9e000, pointer @ 0x6fe9df20 (Cookie OK) 
  Signals: SigRec 0xf8007000, SigWait 0x00000000 
  State: Task (Waiting) 
 OHCI Controller Task Unit 4 (Waiting) 
  Stack: 0x6fd31000 - 0x6fd39000, pointer @ 0x6fd38f10 (Cookie OK) 
  Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State: Task (Waiting) 
 OHCI Controller Task Unit 0 (Waiting) 
  Stack: 0x6fdb9000 - 0x6fdc1000, pointer @ 0x6fdc0f10 (Cookie OK) 
  Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State: Task (Waiting) 
 OHCI Controller Task Unit 1 (Waiting) 
  Stack: 0x6fd91000 - 0x6fd99000, pointer @ 0x6fd98f10 (Cookie OK) 
  Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State: Task (Waiting) 
 EHCI Controller Task Unit 0 (Waiting) 
  Stack: 0x6fd05000 - 0x6fd0d000, pointer @ 0x6fd0cf10 (Cookie OK) 
  Signals: SigRec 0xbe009000, SigWait 0x00000000 
  State: Task (Waiting) 
 OHCI Controller Task Unit 2 (Waiting) 
  Stack: 0x6fd75000 - 0x6fd7d000, pointer @ 0x6fd7cf10 (Cookie OK) 
  Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State: Task (Waiting) 
 OHCI Controller Task Unit 3 (Waiting) 
  Stack: 0x6fd4d000 - 0x6fd55000, pointer @ 0x6fd54f10 (Cookie OK) 
  Signals: SigRec 0xbc009000, SigWait 0x00000000 
  State: Task (Waiting) 
 sb600sata.device - chip 0 port 0 (Waiting) 
  Stack: 0x6fe48000 - 0x6fe50000, pointer @ 0x6fe4ff20 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x20000000 
  State: Task (Waiting) 
 page_sweep (Waiting) 
  Stack: 0x6fde8004 - 0x6fdefffc, pointer @ 0x6fdefe90 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Task (Waiting) 
 sb600sata.device - chip 0 port 1 (Waiting) 
  Stack: 0x6fe18000 - 0x6fe20000, pointer @ 0x6fe1ff20 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x20008000 
  State: Task (Waiting) 
 cfide.device task (Waiting) 
  Stack: 0x6fdf0000 - 0x6fdf8000, pointer @ 0x6fdf7f40 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Task (Waiting) 
 reaper.task (Waiting) 
  Stack: 0x62947004 - 0x6294effc, pointer @ 0x6294ee50 (Cookie OK) 
  Signals: SigRec 0x00007000, SigWait 0x00000000 
  State: Process (Waiting) 
 hid.usbfd (Waiting) 
  Stack: 0x60e48004 - 0x60e4fffc, pointer @ 0x60e4fe90 (Cookie OK) 
  Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 HID Mouse (Waiting) 
  Stack: 0x60b8e004 - 0x60b9dffc, pointer @ 0x60b9df20 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 SSD0/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x6fb1c004 - 0x6fb1fffc, pointer @ 0x6fb1feb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 ICD1/CDFileSystem 53.4  (Waiting) 
  Stack: 0x60da1004 - 0x60db0ffc, pointer @ 0x60db0f30 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 ICD0/CDFileSystem 53.4  (Waiting) 
  Stack: 0x60e0c004 - 0x60e1bffc, pointer @ 0x60e1bf30 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CD0/CDFileSystem 53.4  (Waiting) 
  Stack: 0x62fd6004 - 0x62fd9ffc, pointer @ 0x62fd9f30 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 SSD2/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62de0004 - 0x62de3ffc, pointer @ 0x62de3eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 hid.usbfd (Waiting) 
  Stack: 0x60e54004 - 0x60e5bffc, pointer @ 0x60e5be90 (Cookie OK) 
  Signals: SigRec 0xe0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 HID Keyboard (Waiting) 
  Stack: 0x60baa004 - 0x60bb9ffc, pointer @ 0x60bb9f10 (Cookie OK) 
  Signals: SigRec 0x90001000, SigWait 0x00000000 
  State: Process (Waiting) 
 RAM/ram-handler 53.172  (Waiting) 
  Stack: 0x62859004 - 0x6285cffc, pointer @ 0x6285cd40 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 SSD1/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62ec5004 - 0x62ec8ffc, pointer @ 0x62ec8eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 SSD5/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62b6d004 - 0x62b70ffc, pointer @ 0x62b70eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 SBU/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62a94004 - 0x62a97ffc, pointer @ 0x62a97eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 SSD4/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62c3e004 - 0x62c41ffc, pointer @ 0x62c41eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 SSD3/SmartFilesystem 1.293  (Waiting) 
  Stack: 0x62d0f004 - 0x62d12ffc, pointer @ 0x62d12eb0 (Cookie OK) 
  Signals: SigRec 0xe0000100, SigWait 0x10000000 
  State: Process (Waiting) 
 MainIPH0/CrossDOSFileSystem 53.11  (Waiting) 
  Stack: 0x60c9a004 - 0x60ca9ffc, pointer @ 0x60ca9eb0 (Cookie OK) 
  Signals: SigRec 0x40000100, SigWait 0x00000000 
  State: Process (Waiting) 
 MainIPC0/CrossDOSFileSystem 53.11  (Waiting) 
  Stack: 0x61162004 - 0x61171ffc, pointer @ 0x61171eb0 (Cookie OK) 
  Signals: SigRec 0x40000100, SigWait 0x00000000 
  State: Process (Waiting) 
 pager (Waiting) 
  Stack: 0x62923004 - 0x62942ffc, pointer @ 0x62942ef0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 WinFrame 1 Process (Waiting) 
  Stack: 0x4f0c4004 - 0x4f103ffc, pointer @ 0x4f103eb0 (Cookie OK) 
  Signals: SigRec 0xff800000, SigWait 0x00000000 
  State: Process (Waiting) 
 IDF1/FastFileSystem 53.2  (Waiting) 
  Stack: 0x60fe3004 - 0x60ff2ffc, pointer @ 0x60ff2ed0 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 IDF0/FastFileSystem 53.2  (Waiting) 
  Stack: 0x60f96004 - 0x60fa5ffc, pointer @ 0x60fa5ed0 (Cookie OK) 
  Signals: SigRec 0xa8000100, SigWait 0x00000000 
  State: Process (Waiting) 
 rtl8169.device.0 (Waiting) 
  Stack: 0x6020f004 - 0x6021effc, pointer @ 0x6021ef00 (Cookie OK) 
  Signals: SigRec 0x78008000, SigWait 0x00000100 
  State: Process (Waiting) 
 IPH0/CrossDOSFileSystem 53.11  (Waiting) 
  Stack: 0x60cb6004 - 0x60cc5ffc, pointer @ 0x60cc5ee0 (Cookie OK) 
  Signals: SigRec 0x00010100, SigWait 0x00000000 
  State: Process (Waiting) 
 IPC0/CrossDOSFileSystem 53.11  (Waiting) 
  Stack: 0x6117e004 - 0x6118dffc, pointer @ 0x6118dee0 (Cookie OK) 
  Signals: SigRec 0x00010100, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_filedir_notify (Waiting) 
  Stack: 0x6fb6d004 - 0x6fb70ffc, pointer @ 0x6fb70ad0 (Cookie OK) 
  Signals: SigRec 0x40001000, SigWait 0x80000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x4f118004 - 0x4f127ffc, pointer @ 0x4f127e20 (Cookie OK) 
  Signals: SigRec 0xb0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 ENV/env-handler 54.5  (Waiting) 
  Stack: 0x6291b004 - 0x6291effc, pointer @ 0x6291eef0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 RANDOM/Random-Handler 52.1  (Waiting) 
  Stack: 0x60e69004 - 0x60e78ffc, pointer @ 0x60e78ef0 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 URL/launch-handler 53.38  (Waiting) 
  Stack: 0x60eef004 - 0x60f69ffc, pointer @ 0x60f65fb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x615ab004 - 0x615baffc, pointer @ 0x615bae20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x61668004 - 0x61677ffc, pointer @ 0x61677e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x61726004 - 0x61735ffc, pointer @ 0x61735e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x617ce004 - 0x617ddffc, pointer @ 0x617dde20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x5b123004 - 0x5b132ffc, pointer @ 0x5b132e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x5b21b004 - 0x5b22affc, pointer @ 0x5b22ae20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x5b2b1004 - 0x5b2c0ffc, pointer @ 0x5b2c0e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x61944004 - 0x61953ffc, pointer @ 0x61953e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x619f2004 - 0x61a01ffc, pointer @ 0x61a01e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x6281b004 - 0x6282affc, pointer @ 0x6282ae20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 AUDIO/AHI-Handler 6.2  (Waiting) 
  Stack: 0x60d03004 - 0x60d13004, pointer @ 0x60d12ed0 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 Camd Wait Proc (Waiting) 
  Stack: 0x61018004 - 0x61030ffc, pointer @ 0x61030f10 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 APPDIR/appdir-handler-in-dos 53.158  (Waiting) 
  Stack: 0x628c7004 - 0x628ceffc, pointer @ 0x628cedc0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x62977004 - 0x6297effc, pointer @ 0x6297ee20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 RAW/con-handler 53.78  (Waiting) 
  Stack: 0x6299b004 - 0x629a2ffc, pointer @ 0x629a2e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 CON/con-handler 53.78  (Waiting) 
  Stack: 0x629bf004 - 0x629c6ffc, pointer @ 0x629c6e20 (Cookie OK) 
  Signals: SigRec 0xa0000100, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_nbmd_process (Waiting) 
  Stack: 0x6fb7d004 - 0x6fb80ffc, pointer @ 0x6fb80f30 (Cookie OK) 
  Signals: SigRec 0x00001100, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_lock_handler (Waiting) 
  Stack: 0x6fb85004 - 0x6fb88ffc, pointer @ 0x6fb88f00 (Cookie OK) 
  Signals: SigRec 0x00001100, SigWait 0x00000000 
  State: Process (Waiting) 
 RexxMaster (Waiting) 
  Stack: 0x60bde004 - 0x60bee004, pointer @ 0x60bedf70 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 7 (Waiting) 
  Stack: 0x60c6a004 - 0x60c7dffc, pointer @ 0x60c7dc50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 5 (Waiting) 
  Stack: 0x60d72004 - 0x60d85ffc, pointer @ 0x60d85c50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 4 (Waiting) 
  Stack: 0x60ddd004 - 0x60df0ffc, pointer @ 0x60df0c50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 0 (Waiting) 
  Stack: 0x60f76004 - 0x60f89ffc, pointer @ 0x60f89c50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 1 (Waiting) 
  Stack: 0x60fc3004 - 0x60fd6ffc, pointer @ 0x60fd6c50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 diskimage.device unit 6 (Waiting) 
  Stack: 0x6103d004 - 0x61050ffc, pointer @ 0x61050c50 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000100 
  State: Process (Waiting) 
 TEXTCLIP/textclip-handler 53.1  (Waiting) 
  Stack: 0x60ec2004 - 0x60ed1ffc, pointer @ 0x60ed1eb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 compose.task (Waiting) 
  Stack: 0x5fed6000 - 0x5fede000, pointer @ 0x5feddf30 (Cookie OK) 
  Signals: SigRec 0x00000021, SigWait 0x00000000 
  State: Task (Waiting) 
 Workbench (Waiting) 
  Stack: 0x60b15004 - 0x60b24ffc, pointer @ 0x60b24ea0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Process (Waiting) 
 ScreenBlanker Library. (Waiting) 
  Stack: 0x52afd004 - 0x52b0dffc, pointer @ 0x52b0df00 (Cookie OK) 
  Signals: SigRec 0xb4001000, SigWait 0x00000100 
  State: Process (Waiting) 
 ramlib (Waiting) 
  Stack: 0x6286d004 - 0x62885ffc, pointer @ 0x62885f20 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 Workbench DosList Notify (Waiting) 
  Stack: 0x61d13004 - 0x61d22ffc, pointer @ 0x61d22f40 (Cookie OK) 
  Signals: SigRec 0x00003000, SigWait 0x00000100 
  State: Process (Waiting) 
 texteditor.gadget Clipboard Server (Waiting) 
  Stack: 0x4e324004 - 0x4e33cffc, pointer @ 0x4e33cf00 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 ContextMenus Command Dispatcher (Waiting) 
  Stack: 0x4e362004 - 0x4e371ffc, pointer @ 0x4e371f30 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 string.gadget server (Waiting) 
  Stack: 0x61ce3004 - 0x61cf2ffc, pointer @ 0x61cf2db0 (Cookie OK) 
  Signals: SigRec 0x40000000, SigWait 0x00000100 
  State: Process (Waiting) 
 Workbench Clipboard Server (Waiting) 
  Stack: 0x5fd63004 - 0x5fd72ffc, pointer @ 0x5fd72f00 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000100 
  State: Process (Waiting) 
 NotificationServer (Waiting) 
  Stack: 0x61a0e004 - 0x61a2dffc, pointer @ 0x61a2db10 (Cookie OK) 
  Signals: SigRec 0xbf001000, SigWait 0x00000100 
  State: Process (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fc89004 - 0x6fc90ffc, pointer @ 0x6fc90f10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 TCP/IP Control (Waiting) 
  Stack: 0x60274004 - 0x60283ffc, pointer @ 0x60283dc0 (Cookie OK) 
  Signals: SigRec 0xf8009080, SigWait 0x00000000 
  State: Process (Waiting) 
 Background CLI [wait] (Waiting) 
  Stack: 0x46801004 - 0x46810ffc, pointer @ 0x46810f00 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 ELF Collector (Waiting) 
  Stack: 0x62fde004 - 0x62fedffc, pointer @ 0x62fede70 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fcb1004 - 0x6fcb8ffc, pointer @ 0x6fcb8f10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fc7d004 - 0x6fc84ffc, pointer @ 0x6fc84f10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fcbd004 - 0x6fcc4ffc, pointer @ 0x6fcc4f10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fca5004 - 0x6fcacffc, pointer @ 0x6fcacf10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fc95004 - 0x6fc9cffc, pointer @ 0x6fc9cf10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 Background CLI [smbfs.os4_2.2 '//Fritz.Box/Nosgoth/Fritz_HDD/'] (Waiting) 
  Stack: 0x4f046004 - 0x4f055ffc, pointer @ 0x4f0555a0 (Cookie OK) 
  Signals: SigRec 0x8000f080, SigWait 0x00000100 
  State: Process (Waiting) 
 TCP/IP Superserver (Waiting) 
  Stack: 0x60290004 - 0x6029fffc, pointer @ 0x6029f9f0 (Cookie OK) 
  Signals: SigRec 0xd0000080, SigWait 0x00000000 
  State: Process (Waiting) 
 TCP/IP Configuration (Waiting) 
  Stack: 0x602bc004 - 0x602cbffc, pointer @ 0x602cbe10 (Cookie OK) 
  Signals: SigRec 0xf8003000, SigWait 0x00000000 
  State: Process (Waiting) 
 ScreenBlankerEngine (Waiting) 
  Stack: 0x615c7004 - 0x615d6ffc, pointer @ 0x615d6be0 (Cookie OK) 
  Signals: SigRec 0xd8001000, SigWait 0x00000100 
  State: Process (Waiting) 
 ARexx (Waiting) 
  Stack: 0x4f008004 - 0x4f018004, pointer @ 0x4f017d70 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 Wet (Waiting) 
  Stack: 0x617ea004 - 0x617f9ffc, pointer @ 0x617f61e0 (Cookie OK) 
  Signals: SigRec 0x6e001000, SigWait 0x00000100 
  State: Process (Waiting) 
 Mounter GUI (Waiting) 
  Stack: 0x611d4004 - 0x611e7ffc, pointer @ 0x611e7e10 (Cookie OK) 
  Signals: SigRec 0x80007000, SigWait 0x00000000 
  State: Process (Waiting) 
 DiskImageGUI (Waiting) 
  Stack: 0x618cf004 - 0x618deffc, pointer @ 0x618dedc0 (Cookie OK) 
  Signals: SigRec 0xd7009000, SigWait 0x00000100 
  State: Process (Waiting) 
 application.library messageserver (Waiting) 
  Stack: 0x61528000 - 0x61528fa0, pointer @ 0x61528f10 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Task (Waiting) 
 Background CLI [SYS:System/AmiUpdate/AmiUpdate] (Waiting) 
  Stack: 0x4ee13004 - 0x4ee92ffc, pointer @ 0x4ee92350 (Cookie OK) 
  Signals: SigRec 0xec001000, SigWait 0x00000000 
  State: Process (Waiting) 
 Background CLI [RX] (Waiting) 
  Stack: 0x4e845004 - 0x4e854ffc, pointer @ 0x4e854e20 (Cookie OK) 
  Signals: SigRec 0x00000100, SigWait 0x00000000 
  State: Process (Waiting) 
 ContextMenus (Waiting) 
  Stack: 0x61684004 - 0x61693ffc, pointer @ 0x61693c80 (Cookie OK) 
  Signals: SigRec 0xe0001000, SigWait 0x00000100 
  State: Process (Waiting) 
 AsyncWB (Waiting) 
  Stack: 0x61a69004 - 0x61a78ffc, pointer @ 0x61a78eb0 (Cookie OK) 
  Signals: SigRec 0xc0001000, SigWait 0x00000100 
  State: Process (Waiting) 
 « IPrefs » (Waiting) 
  Stack: 0x61557004 - 0x61566ffc, pointer @ 0x61566980 (Cookie OK) 
  Signals: SigRec 0x0000f000, SigWait 0x20000100 
  State: Process (Waiting) 
 clipview.library server (Waiting) 
  Stack: 0x61813004 - 0x61832ffc, pointer @ 0x61832e00 (Cookie OK) 
  Signals: SigRec 0xd8003000, SigWait 0x00000000 
  State: Process (Waiting) 
 KeymapSwitcher.docky (Waiting) 
  Stack: 0x529d3004 - 0x529e2ffc, pointer @ 0x529e2ef0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 smartbutton.docky (Waiting) 
  Stack: 0x52a41004 - 0x52a50ffc, pointer @ 0x52a50ec0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 MouseBlanker (Waiting) 
  Stack: 0x61906004 - 0x61915ffc, pointer @ 0x61915a00 (Cookie OK) 
  Signals: SigRec 0xc000d000, SigWait 0x00000100 
  State: Process (Waiting) 
 CapsLock (Waiting) 
  Stack: 0x6173a004 - 0x61749ffc, pointer @ 0x61749b90 (Cookie OK) 
  Signals: SigRec 0x70001000, SigWait 0x00000100 
  State: Process (Waiting) 
 UsbSound (Waiting) 
  Stack: 0x61960004 - 0x6196fffc, pointer @ 0x6196fc40 (Cookie OK) 
  Signals: SigRec 0xc0001000, SigWait 0x00000000 
  State: Process (Waiting) 
 datatypes.library (Waiting) 
  Stack: 0x61489004 - 0x61498ffc, pointer @ 0x61498e30 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 RAWBInfo (Waiting) 
  Stack: 0x5b1bb004 - 0x5b1caffc, pointer @ 0x5b1caec0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 DefIcons (Waiting) 
  Stack: 0x5b237004 - 0x5b246ffc, pointer @ 0x5b246dc0 (Cookie OK) 
  Signals: SigRec 0x80009000, SigWait 0x00000100 
  State: Process (Waiting) 
 Background CLI [Tools:Audio/Tools/CamdTools/MidiThru/MidiThru] (Waiting) 
  Stack: 0x6011b004 - 0x6012affc, pointer @ 0x6012ab50 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000100 
  State: Process (Waiting) 
 TCP/IP Log (Waiting) 
  Stack: 0x602d0004 - 0x602dfffc, pointer @ 0x602dff00 (Cookie OK) 
  Signals: SigRec 0x80003000, SigWait 0x00000000 
  State: Process (Waiting) 
 ConClip (Waiting) 
  Stack: 0x60c4e004 - 0x60c5dffc, pointer @ 0x60c5deb0 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x00000000 
  State: Process (Waiting) 
 USB stack Process (Waiting) 
  Stack: 0x611ec004 - 0x611fbffc, pointer @ 0x611fbee0 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Process (Waiting) 
 MassStorage Notifier (Waiting) 
  Stack: 0x6fdc5000 - 0x6fdccd00, pointer @ 0x6fdccc70 (Cookie OK) 
  Signals: SigRec 0x80001000, SigWait 0x00000000 
  State: Task (Waiting) 
 DST watcher (Waiting) 
  Stack: 0x614b1004 - 0x614c0ffc, pointer @ 0x614c0f10 (Cookie OK) 
  Signals: SigRec 0xc0000000, SigWait 0x00000000 
  State: Process (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fba9004 - 0x6fbb0ffc, pointer @ 0x6fbb0f10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 hub.usbfd (Waiting) 
  Stack: 0x6fbb5004 - 0x6fbbcffc, pointer @ 0x6fbbcf10 (Cookie OK) 
  Signals: SigRec 0x30000000, SigWait 0x00000000 
  State: Task (Waiting) 
 Shell Process [scummvm] (Crashed) 
  Stack: 0x4ebb4004 - 0x4ecadffc, pointer @ 0x4ec05b70 (Cookie OK) 
  Signals: SigRec 0x00000010, SigWait 0x00000000 
  State: Process (Crashed) 
 Background CLI [Tools:Utilities/CANDI/data/Dandelion] (Ready) 
  Stack: 0x528ae004 - 0x528bdffc, pointer @ 0x528bd6c0 (Cookie OK) 
  Signals: SigRec 0x00000010, SigWait 0x14000100 
  State: Process (Ready) 
 ramlib.support (Waiting) 
  Stack: 0x6288a004 - 0x628a2ffc, pointer @ 0x628a2f00 (Cookie OK) 
  Signals: SigRec 0x80005000, SigWait 0x00000000 
  State: Process (Waiting) 
 Mounter Task (Waiting) 
  Stack: 0x6fdd5000 - 0x6fde3a60, pointer @ 0x6fde3970 (Cookie OK) 
  Signals: SigRec 0xb0001000, SigWait 0x00000000 
  State: Task (Waiting) 
 Mounter Companion Process (Waiting) 
  Stack: 0x61215004 - 0x61224ffc, pointer @ 0x61224f40 (Cookie OK) 
  Signals: SigRec 0x80003000, SigWait 0x00000000 
  State: Process (Waiting) 
 CANDI (Waiting) 
  Stack: 0x5b13f004 - 0x5b14effc, pointer @ 0x5b14e800 (Cookie OK) 
  Signals: SigRec 0x70005000, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_signal_server (Waiting) 
  Stack: 0x6fb75004 - 0x6fb78ffc, pointer @ 0x6fb78f10 (Cookie OK) 
  Signals: SigRec 0x0000f000, SigWait 0x00000000 
  State: Process (Waiting) 
 dos_appdir_server (Waiting) 
  Stack: 0x6fb51004 - 0x6fb58ffc, pointer @ 0x6fb58d40 (Cookie OK) 
  Signals: SigRec 0x80005000, SigWait 0x00000000 
  State: Process (Waiting) 
 CPUDock_idleTask (Ready) 
  Stack: 0x60b7a000 - 0x60b7e000, pointer @ 0x60b7df00 (Cookie OK) 
  Signals: SigRec 0x80000000, SigWait 0x40000000 
  State: Task (Ready) 
 idle.task (Ready) 
  Stack: 0x6ff61000 - 0x6ff62000, pointer @ 0x6ff61fd0 (Cookie OK) 
  Signals: SigRec 0x00000000, SigWait 0x00000000 
  State: Task (Ready) 

User avatar
sev
ScummVM Lead
Posts: 2008
Joined: Wed Sep 21, 2005 1:06 pm
Contact:

Re: Breaking engines into executable modules

Post by sev » Sun Sep 22, 2019 1:48 pm

Code: Select all

./configure --enable-plugins --default-dynamic
In order to test faster, add

Code: Select all

--disable-all-engines --enable-engine=testbed
, and then you can test the testbed engine (or any enigne of your choice, just testbed engine is quite small).


Eugene

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Sun Sep 22, 2019 3:11 pm

@sev

Thank you for chiming in

I figured it out myself and was using the scumm engine solely, because i wanted to be able to test a game after compiling as well.

It works now, but i need to compile the whole app with shared objects (a static app with shared engines access doesn't work here as it will trigger aforementioned crash)...here goes my plans to never touch .so's again :-/

Ah well, i'll need to switch to plugins since scummvm grew so big that i'm about to hit the memory border on compiling (i have about 100-150 MB left, so one or more new engines will probably exceed that), so thank you very much for this ability to break scummvm up into modules.

I have yet to test a full build and will compile 2.1.0 still static (since i lack any testing on the other engine modules) and will soon add to configure as amigaos needs some special flags in the module linking part.

Thank you all very much again for caring and helping out noobs

User avatar
Raziel
ScummVM Porter
Posts: 1120
Joined: Tue Oct 25, 2005 8:27 am
Location: a story that hasn't been written yet

Re: Breaking engines into executable modules

Post by Raziel » Tue Oct 08, 2019 6:22 pm

I know that a shared build of scummvm can be stripped, just like a static build, but what about the engine plugins?
Should those be stripped as well for release?

Post Reply