AROS World Exec
General => General Chat => Topic started by: korban on February 08, 2022, 11:10:07 PM
-
As far as I know the only proviso is you need to be using Dopus Mag.
Beyond that, it's as simple as:
1). Download AROS version of "RunInDOSBOX".
2). Install it to Sys:C
3). Create a root folder for your ms-dos software (Doesn't matter where, and folder structure from within that doesn't matter from then-on-end).
4). Create an assign for the folder you've just created in sys:s/user-startup. Doesn't matter what. For me it will be "assign ms-dos: emulation:computers/pc/ms-dos/software" (without quotes) for example.
And this is where it's a little vague when going off the top of my head. Im not in front of my AROS box. Im on my laptop on a train, had the idea, and dint want to forget before I got home, so thought Id share the idea.
I'll update this for clarity (ie. exact syntax) when I get a chance. The more experienced will probably be able to work it out for now though still.
5). Set up Dopus Mag to use "RunInDOSBOX" every time "ms-dos: ?#.exe" (and ?#.bat (ie. 2 separate entries)) are double clicked.
And that should be it.
Untested in this form, but I do use it for a few specific msdos games/apps. The theory is the same, the method in this post should hopefully just be less work, for all games/apps rather than specific ones.
n.b. please excuse any mistakes in the instructions. As mentioned Im going by memory. Couldn't remember if wildcard is #? or ?# for eg. Same with an assign. Drawing a blank if you put a ":" at the end of the path being assigned to. Pretty sure not, but cant test.
I'll test when I get home, but wont be for a few days, so if anyone wants to give it a try in the meantime, feel free :)
-
I didn't quite understand what you mean by Dopus Mag, anyway on AROS One v1.6 with RunInDOSBOX you can run an MS-DOS executable from Wanderer as well, see my attached video:
https://www.youtube.com/watch?v=PkfTMLwchrQ
-
Using a dedicated scripts though?
With my idea you uncompress any dos software archive and its ready to run. No further preparation needed.
-
No no script created, I just assigned the DosBOX path, created a "Datatypes" Descriptor and all the executables through the def_MSD.info are associated to C:RunInDOSBOX
In this way any executable will have its icon preconfigured with RunInDOSBOX and the MS-DOS executable will be started automatically with a simple click, if I want I can also create a second Descriptor to start all .bat files as well
-
Ah, ok, great.
This didnt work last I was using a AROS a few years ago, which is why I was using Dopus Mag.
It's how RunInDosBOS was originally untended to be used, so nice to hear it can be used without workarounds in AROS these days.
-
@korban:
for AROS i wrote a utility named wbxcli (it is located at the AROS archives) that offer support for each individual file to have its own project icon and pass a cli commandline to AROS, including customised parameters. That way you can configure things the way you wish them to be. I did not bother to compile it for 68k as there are plenty such tools available on aminet for 68k.
wbxcli works in a similar fashion as iconx but without the requirement of a script. The file type recognition as mentioned in the thread is a nice bonus, but in case you do not wish all .exe's to start up a single designated program then wbxcli can be helpful. You can even use wbxcli for a default icon if you wish to do so.
-
for AROS i wrote a utility named wbxcli (it is located at the AROS archives) that offer support for each individual file to have its own project icon and pass a cli commandline to AROS, including customised parameters.
I have successfully used "wbXcli" to be able to associate MIDI files and CDXL Files from Wanderer, I discussed it HERE (https://ae.amigalife.org/index.php?topic=774.msg10711#new).
However, I can't get "wbXcli" to work with the Player SID "Tinysid" either the Standard or SDL version. the problem is that "Tinysid" requires a high Stack and if placed in the Icon it doesn't work, you have to somehow get the Stack given before running "Tinysid".
From the Shell "Tinysid" works fine with a Stack 70000 or higher.
-
I have successfully used "wbXcli" to be able to associate MIDI files and CDXL Files from Wanderer, I discussed it HERE (https://ae.amigalife.org/index.php?topic=774.msg10711#new).
I'm glad to hear wbXcli is useful for/to you.
However, I can't get "wbXcli" to work with the Player SID "Tinysid" either the Standard or SDL version. the problem is that "Tinysid" requires a high Stack and if placed in the Icon it doesn't work, you have to somehow get the Stack given before running "Tinysid".
From the wbxcli readme:
- STACK
The STACK Tool Type defines the number of bytes (size) that is used for
the stack that the executed program or script will use.
The default stacksize is:
STACK=40960
(Please note that the stacksize given in the project-icon, is the stack-
size that is used for the wbXcli utility itself, and not for the program/
script that is going to be executed. You need to define the above
described STACK Tool Type for that).
That should solve your issue ;)
From the Shell "Tinysid" works fine with a Stack 70000 or higher.
E.g. add STACK=70000 (or higher number) to the list of tooltypes of the icon.
Try to keep the project icon stacksize field (that you can set in wanderer/Magellan/workbook GUI) as low as possible because it is only used for Wbxli itself (that is OS default behaviour that can not be changed)
Please let me know if that solved your issue or not.
Have fun !
-
E.g. add STACK=70000 (or higher number) to the list of tooltypes of the icon.
This is the first thing I tried, but it doesn't work :(
I made a small video showing the test on CLI (with Stack and without Stack), and a Test on Wanderer, in the video you can see the settings I used, here is link to download the 5MB video !
https://drive.google.com/file/d/1izYxHKeZ_cG6qdOq6Crn0StSpCHEdOug/view?usp=sharing
I also tried recompiling "Tinysid" on AROS One with the new GCC 6.3.0. but nothing changed !
-
This is the first thing I tried, but it doesn't work :(
Have you tried with using a higher number ? You can go crazy there, e.g. set the stack tooltype to 700000 for example.
I made a small video showing the test on CLI (with Stack and without Stack), and a Test on Wanderer, in the video you can see the settings I used, here is link to download the 5MB video !
I have seen the video (thank you for that).
To be honest I have no idea what could be wrong there atm. Perhaps it is the interactive nature of tinisyd (accepting keys, interacting with the user).
Could you add a file literally named "wbXcli.debug" (no quotes) next to the wbXcli executable (the file can be completely empty, it just have to exist), then try the tinysid example again and paste the output from wbXcli here ?
I also tried recompiling "Tinysid" on AROS One with the new GCC 6.3.0. but nothing changed !
If you know something about the technical aspect of AROS: wbXcli is just a systemtag slave so that means that whatever commands you can give on the shell should also be possible to do with wbXcli. If a program does not work (correctly) on the shell then wbXcli will not solve the problem(s) and will also fail to run the program.
Your video shows that it is possible to run tinysid using a shell command, so in theory wbXcli should also be able to run it. This is the first time I have heard of a program that does not seem to work nice with wbXcli.
Thus afaik there is no need for recompilation of tinysid but thank you for trying.
-
Could you add a file literally named "wbXcli.debug" (no quotes) next to the wbXcli executable (the file can be completely empty, it just have to exist), then try the tinysid example again and paste the output from wbXcli here ?
From the translation I could not understand, should I create an empty text file named wbXcli.debug and copy it to the path where wbXcli resides ?
Yes I also tried much higher Stacks but nothing changes !
-
From the translation I could not understand, should I create an empty text file named wbXcli.debug and copy it to the path where wbXcli resides ?
Yes, exactly like that :)
Yes I also tried much higher Stacks but nothing changes !
Ok, so that is not the culprit.
Let's see what the debug output will show us. I am expecting that it will show that things work as intended but you never know if I made a mistake somewhere in my code.
-
After starting it, the wbXcli.debug file remains empty, nothing is written, maybe I need to add something in the Tooltype?
If you want to do some tests too ile two versions of TinySID you can find them on Aros Archive:
http://archives.aros-exec.org/share/audio/play/tinysid.i386-aros.rar
http://archives.aros-exec.org/share/audio/play/tinysid_sdl.i386.zip
-
After starting it, the wbXcli.debug file remains empty, nothing is written, maybe I need to add something in the Tooltype?
The .debug file is suppose to stay empty.
That file being present is only used to indicate to wbXcli that wbXcli needs to output some debug information.
if wbXcli detects that the .debug file is present then it will automatically open a con window and print the output to that con window.
If you do not see a window being opened and text being printed then something is amiss.
On which version of AROS are you testing this ? Is it perhaps the new version that deadwood published a few days ago (version D3 ?).
Because if that is the case then there is something wrong with deadwood's D3 release (or perhaps wrong for an even earlier release of deadwoods alt-ABIv0). And with wrong I mean that something is not working the same way as it was working before on ABiv0. (Thus a possible regression bug)
If you want to do some tests too ile two versions of TinySID you can find them on Aros Archive:
I am a bit busy atm but will check tinysid started by wbXcli myself when I am able to.
-
Ok thank you, I tested with the latest deadwood D3, i will test with my previous versions of AROS One.
EDIT:
The problem is also present on my old AROS One that included the old Nightly Builds.
I should add that with deadwood's D3, TinySID with Dopus4 and Stack 70000 works fine, see screenshot
The Problem may be due to Wanderer, I reported this anomaly some time ago:
https://ae.amigalife.org/index.php?topic=798.msg10150#msg10150
-
Arrgh, my bad AMIGASYSTEM. Sorry.
It has been such a long time that I forgot how the debug output is suppose to work :-[
1) make sure you have a file names wbXcli.debug next to wbXcli executable. The .debug file does not have to contain anything but is allowed to.
2) start sashimi
3) start your project icon that uses wbXcli
Then Sashimi should output some debug information that wbXcli prints out. You can see for yourself if it accepts the stack parameter or not (amongst other things).
If you are able to paste the output from sashimi or make a screenshot (don't forget to resize the sashimi output window so that it contains all output).
-
Sorry I'm coming home now, I was at the beach 8)
Here is the copy-paste of the sashimi log:
Sashimi installed ([Ctrl]+C or "Break 1" to remove)
[wbXcli] enter
[wbXcli] Attempting to process 1 icons
[wbXcli] (1)
[wbXcli] (1) retrieved argument -> "Gunship.sid"
[wbXcli] (1) retrieved filename from lock -> "Gunship.sid"
[wbXcli] (1) retrieved directory from lock -> "AROS:"
[wbXcli] (1) trying to get icon for file "AROS:Gunship.sid"
[wbXcli] (1) found icon for file "AROS:Gunship.sid"
[wbXcli] (1) the icon is a project icon, parsing the icon follows
[wbXcli] (1) tool type WINDOW was not found
[wbXcli] (1) tool type STACK found (= 70000)
[wbXcli] (1) tool type USERSHELL was not found
[wbXcli] (1) tool type WAIT was not found
[wbXcli] (1) tool type DELAY was not found
[wbXcli] (1) tool type WBXCLI found (= C:TinySID "{f}" )
[wbXcli] (1) INFO: wait 100 stack 70000 usershell -1 window CON:0/50//80/wbXcli/Auto
[wbXcli] (1) WBXCLI.command = C:TinySID "AROS:Gunship.sid"
[wbXcli] (1) console window opened ok
[Kernel:000] EROR! Task went out of stack limits
[Kernel:000] - Lower Bound = 0x4adb45c0, Upper Bound = 0x4adbe5c0
[Kernel:000] - SP = 0x4adae1e0
-
Thank you AMIGASYSTEM.
As i suspected wbXcli is doing its job as it is suppose to :)
As said I have little time atm but at first glance tinysid from Fredrik Wikstrom also crashes with a stacklimit (inside AHI device player thread) for me using a normal AROS shell (so not using wbXcli). No matter how high I set the stack to so, i have to look at his tinysid code in order to see what might be wrong. It might even be that there is something amiss with AHI (but can't tell atm so pure speculation at this point).
Tested on official alt ABIv0 linux hosted release (not the new beta versions that deadwood posted for testing)
-
I from a Shell have no problem if I use a Stack of 70000 or higher, TinySID both Standard and SDL work perfectly and qualitatively.
-
@AMIGASYSTEM:
Strange that tinysid work for you (also on older builds). Not saying you should experience the same errors but just strange :)
This is the debuglog when I use a stack of 700000 (yes, 5 zeros) and try to play accompanied Freeze.sid
[CMI8738]: DriverInit()
[CMI8738]: DriverCleanup()
[VIA-AC97]: DriverInit()
[VIA-AC97]: DriverCleanup()
== ahi_pci_init 1
== ahi_pci_init 2
== ahi_pci_init 3
== ahi_pci_exit 1
== ahi_pci_exit 2
== ahi_pci_exit 3
== ahi_pci_exit 4
[Envy24]: DriverInit()
[Envy24]: DriverCleanup()
Envy24HT DriverInit
[KRN] Task TinySID soundcard thread went out of stack limits
[KRN] Lower 00000000, upper f08f7f80, SP f09c50b0
[KRN] Trap signal 11, SysBase f08f61e0, KernelBase f08f6f44
SP=f12cbc00 FP=f12cbc48 PC=ef7dc0d7
R0=00000090 R1=f08f61e0 R2=00000001 R3=0100000e
R4=feb5ad83 R5=f7d9e602
*** stack smashing detected ***: <unknown> terminated
I got a bit further with a stack of 4096000 but after pressing return:
[CMI8738]: DriverInit()
[CMI8738]: DriverCleanup()
[VIA-AC97]: DriverInit()
[VIA-AC97]: DriverCleanup()
== ahi_pci_init 1
== ahi_pci_init 2
== ahi_pci_init 3
== ahi_pci_exit 1
== ahi_pci_exit 2
== ahi_pci_exit 3
== ahi_pci_exit 4
[Envy24]: DriverInit()
[Envy24]: DriverCleanup()
Envy24HT DriverInit
[KRN] Trap signal 11, SysBase f08ab1e0, KernelBase f08abf44
SP=f172ba10 FP=f172ba58 PC=ef78c3ea
R0=f08acf80 R1=f08aa090 R2=ffffffff R3=ffffffff
R4=f1281580 R5=00000000
*** Logged alert:
Program failed
Task : 0xF119C100 - tinysid
Error: 0x80000002 - Hardware bus fault/address error
PC : 0xEF78C3EA
Module kernel Segment 1 .text (0xEF78A000) Offset 0x000023EA
Function tlsf_freevec (0xEF78C380) Offset 0x0000006A
CPU context:
EAX=0xF08ACF80 EBX=0xF08AA090 ECX=0xFFFFFFFF EDX=0xFFFFFFFF
ESI=0x00000000 EDI=0xF1281580 ESP=0xF172BA10 EBP=0xF172BA58
EIP=0xEF78C3EA ESP=0xF172BA10 EFLAGS=0x00010286
Stack trace:
0xEF79AC69 kernel Function nommu_FreeMem + 0x000000B9
0xEF793FCC kernel Function Exec_35_FreeMem + 0x0000007C
0xEF793F1D kernel Function Exec_38_FreeEntry + 0x0000003D
0xEF79609D kernel Function Exec_48_RemTask + 0x000000DD
0xF105DF06 tinysid Function DeleteTask + 0x00000016
0xF105DA1B tinysid Function stop_playing + 0x000000C7
0xF105B577 tinysid Function main + 0x0000010B
0xF105B3C4 tinysid Segment 1 .text + 0x00000154
0xEF810640 dos.library Function CallEntry + 0x00000050
0xEF78F3FB kernel Segment 1 .text + 0x000053FB
-
I don't know maybe Hosted AROS behaves differently.
I created a video where you can also listen to two musics in SID format from both Shell and Dopus4.
In the video I run the two SID musics several times without having any problem, in the TEST I used AROS One + D3 by deadwood.
Even on earlier versions of AROS One TinySID works fine with minimum 70000 stack
https://drive.google.com/file/d/1cYkf5OebuDVtp3xYVZsGHL5VInRVHYLu/view?usp=sharing
-
No no script created, I just assigned the DosBOX path, created a "Datatypes" Descriptor and all the executables through the def_MSD.info are associated to C:RunInDOSBOX
In this way any executable will have its icon preconfigured with RunInDOSBOX and the MS-DOS executable will be started automatically with a simple click, if I want I can also create a second Descriptor to start all .bat files as well
Hi, would you be so kind to explain to me how to create those "Datatypes"? I've tried to understand it so many times, but without luck.
-
Paolo it is simpler than you think, in your last ISO of Icaros you have my Dopus4 ready for this operation, there are two tools "examinedtd" and "createdtd" (see screenshot) which are used one to decompile a Descriptor/Datatatype and the other to recompile it.
That said take any existing datatype and once you decompile it you will get a text file named "dt.txt" that you will need to modify according to your needs, look at a few of each type to understand the mechanism.
The two important items to consider are the "MASK" or "Pattern", you must use only one otherwise conflicts may arise.
MASK= Allows recognition of the file through the acronym that each file type has beginning file by looking at it with a hexadecimal editor, in the case of EXEs MSDOS and the famous "MZ". With "MASK" the file will be recognized even without an extension
Pattern= Allows recognition through its extension, if you delete the extension the file can no longer be recognized, in this case as a parameter the extension is used, example: #?.mp3
Once you have motificated your Descriptor you only need to fill it in with the "createdtd" tool, in my Dopus4 everything is already preset, just highlight "dt.txt" and click on "createdtd"
To complete you will have to create yourself a Def_..... (the name to add to the Def is what you will put in the descriptor, first line), in the Tooltype you will add the tool of your choice to open that type of file.
--- Italiano ---
Paolo è più semplice di quanto pensi, nella tua ultima ISO di Icaros hai il mio Dopus4 già pronto per questa operazione, ci sono due strumenti "examinedtd" e "createdtd" (vedi screenshot) che servono uno per decompilare un Descrittore/Datatype e l'altro per ricomplilarlo.
Detto questo prendi un qualsiasi datatypes esistente e una volta decompilato otterrai un file di testo nominato "dt.txt" che dovrai modificare in base alle tue esigenze, guardane qualcuno per ogni tipologia per capire il meccanismo.
Le due voci importanti da considerare sono il "MASK" o "Pattern", ne devi utilizzare solo uno altrimenti potrebbero crearsi dei conflitti.
MASK= Consente il riconoscimento del file attraverso l'acronimo che ogni tipo di file ha inizio file guardandolo con un editore esadecimale, nel caso degli EXE MSDOS e il famoso "MZ". Con "MASK" il file sarà riconosciuto anche senza estensione
Pattern= Consente il riconoscimento attraverso la sua estensione, se elimini l'estensione il file non potrà più essere riconosciuto, in questo caso come parametro si utilizza l'estensione, esempio: #?.mp3
Una volta motificato il tuo Descrittore ti basterà compilarlo con lo strumento "createdtd", nel mio Dopus4 è tutto già preimpostato, basta evidenziare "dt.txt" e cliccare su "createdtd"
Per completare dovrai crearti una Def_..... (il nome da aggiungere al Def è quello che metterai nel descrittore, prima riga), nel Tooltype aggiungerai lo strumento da te prescelto per aprire quel tipo di file.
-
Grazie!!! Thank you so much!
-
I'm glad to have been helpful :D