AROS World Exec

General => General Chat => Topic started by: korban on February 08, 2022, 11:10:07 PM

Title: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post 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   :)
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on February 09, 2022, 12:57:13 AM
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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: korban on February 09, 2022, 02:22:52 AM
Using a dedicated scripts though?
With my idea you uncompress any dos software archive and its ready to run. No further preparation needed.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on February 09, 2022, 02:54:12 AM
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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: korban on February 09, 2022, 11:35:16 AM
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on February 19, 2022, 01:49:35 AM
@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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 23, 2022, 09:32:09 AM

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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 23, 2022, 03:33:02 PM
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.

Quote
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:
Code: [Select]

- 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  ;)

Quote
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 !
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 23, 2022, 04:16:01 PM

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 !
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 23, 2022, 04:54:59 PM
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.

Quote
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 ?

Quote
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 23, 2022, 05:19:38 PM

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 !
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 23, 2022, 05:49:28 PM
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  :)

Quote
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 23, 2022, 06:04:27 PM
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

Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 23, 2022, 07:00:32 PM
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)

Quote
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 24, 2022, 02:08:42 AM
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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 24, 2022, 07:14:20 AM
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).
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 24, 2022, 07:30:09 AM
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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 24, 2022, 08:02:10 AM
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)
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 24, 2022, 08:06:31 AM
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: magorium on May 24, 2022, 08:33:53 AM
@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
Code: [Select]
[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:
Code: [Select]
[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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 24, 2022, 10:05:39 AM
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
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: paolone on May 25, 2022, 02:10:05 AM
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 25, 2022, 05:28:20 AM
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.
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: paolone on May 25, 2022, 04:06:02 PM
Grazie!!! Thank you so much!
Title: Re: Possible "Cheat" To Run MSDOS Software Just By Double Clicking It's .Exe
Post by: AMIGASYSTEM on May 26, 2022, 08:51:30 AM
I'm glad to have been helpful  :D