Dark Sun Shattered Lands #725
Replies: 3 comments 1 reply
-
Hi, Thank you for your interest in Spice86. Indeed there is a lot of work left to make games besides Dune, Dune 2, Krondor, and Duke Nukem II (among others) work. Here, it's probably because the dsmall.exe file is not in the same folder as the original file. But more than that, our DOS implémentation lacks the LOAD or EXEC function. Right now the ProgramExecutor class launches the input com / exe / bios file and bootstrapping isn't supported. However, contributions are welcome, and Spice86 both has a GDB server and a complimentary internal debugger to see where it goes wrong compared to dosbox staging or other emulator. I'd suggest to grab a debug Build of dosbox and try to implement what's missing. To recap, what is missing is for starters the LOAD/EXEC function (int 21h, function 0x4B, see ralf's DOS interrupt list and Undocumented DOS book for details) and beyond that, the entire process and child process management of DOS. Dosbox or FreeDOS are good examples. Like dosbox, the programExecutor class should not launch the com / exe directly but just mount the folder, start DOS, and ask DOS to launch it. |
Beta Was this translation helpful? Give feedback.
-
Ooh! Dark Sun Shattered Lands! That was my 2nd choice when deciding which game to reverse. When I need a break from Betrayal at Krondor, I will try to get dsun running in Spice86. I wish I didn't need a day job so I could spend more time on these classics. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the replies, so there is a bit of work to do. I'm really just starting out with decompiling and also need to keep my day job, unfortunately, so not sure how much help I'll be to get this working. Replacing code with c# is probably more on my current skill level. I joined the discord, thanks for the invite. |
Beta Was this translation helpful? Give feedback.
-
Hi there,
Just ran Spice86 on Darksun - Shattered Lands.
Any ideas what I'm doing wrong or do the errors indicate that dsun.exe isn't supported?
Love the concept of Spice86.
./spice86.exe --Ems -e dsun.exe
[2024-06-13 15:30:15.271 +10:00] [WARN] [0x464B:0x289/0x46739] FileOperationErrorWithLog: File not found!
[2024-06-13 15:30:15.303 +10:00] [EROR] [0x464B:0x289/0x46739] DOS operation failed with an error. Int will return to 0x464B:0x289/0x46739. . State is Cycles=3686 CS:IP=0xF000:0x24/0xF0024 EAX=0x3D20 EBX=0x8C ECX=0x0 EDX=0x8C ESI=0x0 EDI=0x8C EBP=0xFFE4 ESP=0xFFBE SS=0x534E DS=0x5115 ES=0x5115 FS=0x0 GS=0x0 flags=0x7046 ( Z P )
[2024-06-13 15:30:15.311 +10:00] [WARN] [0x464B:0x289/0x46739] FileOperationErrorWithLog: File dsmall.exe not found!
[2024-06-13 15:30:15.312 +10:00] [EROR] [0x464B:0x289/0x46739] DOS operation failed with an error. Int will return to 0x464B:0x289/0x46739. . State is Cycles=3770 CS:IP=0xF000:0x24/0xF0024 EAX=0x3D20 EBX=0x8C ECX=0x2 EDX=0x8C ESI=0x6EB EDI=0x97 EBP=0xFFE4 ESP=0xFFBE SS=0x534E DS=0x5115 ES=0x5115 FS=0x0 GS=0x0 flags=0x7046 ( Z P )
[2024-06-13 15:30:15.321 +10:00] [WARN] [0x1000:0x1A7/0x101A7] Executed 4086 instructions in 95ms. 43010 Instructions per seconds on average over run.
Beta Was this translation helpful? Give feedback.
All reactions