News:

Herr Otto Partz says you're all nothing but pipsqueaks!

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - llm

#1
QuoteI guess "calvin" forgot to pack his cl.exe in the tools.

i think the cl.exe is a more recent microsoft cl compiler - so VS2010-VS2013 or something of that time

this compiler-suite is GBs in size and it makes not sense to add it to the repo

Quote...problem in the makefile...

i think thats the case - this stuff just needs a fix :)
#2
does someone builds the repldump-orginal (not repldump) without errors?

for me using the same environment like for restunts/restunts-original it fails


        cd ..
        cd repldump
        if exist makefile make /DTARGET=original
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
        bcc /c /u- /mm /v /nbuild\original /DRESTUNTS_DOS /DRESTUNTS_ORIGINAL -I../c  repldump.c
Borland C++ 5.2 Copyright (c) 1987, 1997 Borland International
Mar 19 1997 17:29:40
repldump.c:
Warning repldump.c 122: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 125: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 131: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 134: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 143: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 146: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 149: Suspicious pointer conversion in function init_trackdata
Warning repldump.c 204: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 208: Call to function 'init_main' with no prototype in function stuntsmain
Warning repldump.c 209: Call to function 'init_div0' with no prototype in function stuntsmain
Warning repldump.c 212: Call to function 'file_load_resfile' with no prototype in function stuntsmain
Warning repldump.c 212: Nonportable pointer conversion in function stuntsmain
Warning repldump.c 214: Call to function 'file_load_resource' with no prototype in function stuntsmain
Warning repldump.c 214: Nonportable pointer conversion in function stuntsmain
Warning repldump.c 215: Call to function 'file_load_resource' with no prototype in function stuntsmain
Warning repldump.c 215: Nonportable pointer conversion in function stuntsmain
Warning repldump.c 222: Call to function 'init_unknown' with no prototype in function stuntsmain
Warning repldump.c 224: Call to function 'init_kevinrandom' with no prototype in function stuntsmain
Warning repldump.c 226: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 227: Call to function 'file_load_replay' with no prototype in function stuntsmain
Warning repldump.c 228: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 231: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 233: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 242: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 244: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 245: Call to function 'track_setup' with no prototype in function stuntsmain
Warning repldump.c 246: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 248: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 250: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 252: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 253: Call to function 'init_game_state' with no prototype in function stuntsmain
Warning repldump.c 254: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 258: Call to function 'get_kevinrandom' with no prototype in function stuntsmain
Warning repldump.c 266: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 267: Call to function 'setup_player_cars' with no prototype in function stuntsmain
Warning repldump.c 284: Call to function 'restore_gamestate' with no prototype in function stuntsmain
Warning repldump.c 285: Call to function 'restore_gamestate' with no prototype in function stuntsmain
Warning repldump.c 286: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 295: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 299: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 302: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 306: Call to function '_printf' with no prototype in function stuntsmain
Warning repldump.c 310: Call to function 'update_gamestate' with no prototype in function stuntsmain
Warning repldump.c 315: Call to function '_printf' with no prototype in function stuntsmain
Fatal: '..\c\build\dos\fileio.obj' does not exist - don't know how to make it

** error 1 ** deleting repldump-original

someone fixed that problem already?
#3
using latest VS2022/x86 + SDL1 libs/includes are found (sitting under src/sdl)
but the build fails with some errors

im a long time (>20 years C/C++,... developer) so im normaly knowing very well what im doing - but i never built that project before

S:\src\restunts>make restunts-sdl
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
        cd sdl
        if exist makefile make
MAKE Version 5.2  Copyright (c) 1987, 2000 Borland
        cl /MD /c /EHsc /Is:\src\sdl\include /I../c /DRESTUNTS_SDL /Zi /Fobuild\main.obj main.cpp
Microsoft (R) C/C++-Optimierungscompiler Version 19.43.34808 für x86
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

main.cpp
S:\src\restunts\c\math.h(56): error C2143: Syntaxfehler: Es fehlt "," vor "*"
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(24): error C2039: "fabs" ist kein Member von "`global namespace'".
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(24): error C3861: "fabs": Bezeichner wurde nicht gefunden.
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(28): error C2039: "fabsf" ist kein Member von "`global namespace'".
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(28): error C3861: "fabsf": Bezeichner wurde nicht gefunden.
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(32): error C2039: "fabsl" ist kein Member von "`global namespace'".
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\cstdlib(32): error C3861: "fabsl": Bezeichner wurde nicht gefunden.
S:\src\restunts\c\shape3d.h(42): error C2732: Bindungsangaben widersprechen vorheriger Angabe für "polarAngle"
S:\src\restunts\c\shape3d.h(42): note: Siehe Deklaration von "polarAngle"
main.cpp(192): warning C4838: Konvertierung von "unsigned int" zu "long" erfordert eine einschränkende Konvertierung
main.cpp(221): warning C4838: Konvertierung von "int" zu "char" erfordert eine einschränkende Konvertierung
main.cpp(222): warning C4838: Konvertierung von "int" zu "char" erfordert eine einschränkende Konvertierung
main.cpp(377): warning C4838: Konvertierung von "int" zu "short" erfordert eine einschränkende Konvertierung

** error 2 ** deleting build\main.obj

** error 1 ** deleting restunts-sdl

S:\src\restunts>

someone got a working build and can tell me what to do? what compiler version is used?
in the make file is cl called (i think the microsoft cl.exe compiler) - but i don't know
if that initally was a very old version or something

#4
Quote from: HerrNove on February 03, 2025, 02:19:37 PMSince I got the attention of the experts, let's try to squeeze some of their knowledge...

Last weekend I wasted a couple of hours by trying to alleviate the memory problems of my program. My plan was
* modify dseg.asm create an extra data segment, called fseg
* move the big containers for the runtime graphics data (polyinfoptr and co.) there
* add an `assume fs:fseg` directive so that the linker can keep using 16-bit pointers. Put some assembly at program start to load the FS register with the fseg segment address

The plan failed, but I think it's because I am not expert enough in assembly programming. In particular, when I put in a C file the assembly fragment to set FS, the Borland compiler complained that FS is not a valid name (this despite me adding the -3 option, that should compile for 386 processors). The linker also complained about "fixup errors"; changing the model to `huge` alleviated that but I think this is wrong since we should be able to keep working with 16-bit pointers.

Ideas are welcome.

thats a hard one,

Quote* modify dseg.asm create an extra data segment, called fseg

that should work if its at the very end - or before stack with some fixes for the stack start

Quote* move the big containers for the runtime graphics data (polyinfoptr and co.) there

1. works only if there are no non-symbolic offsets in the assembler(or C) refering to this data
2. the other (non yours) polyinfoptr and co. using code needs to use then fs instead of ds (or whatever register is use at that point to the segment)

big pain-point with restunts for me was always - there are offsets in the code that are non-symbolic

#5
Quote from: HerrNove on February 02, 2025, 03:07:42 PM
Quote from: llm on February 01, 2025, 03:10:00 PMproblem with IDA is: we used the commercial version of IDA in the beginning and everyone needs to have the same IDA version user with older or freeware versions are not able to open the IDA file

I am a beginner with Ghidra and not so willing to (pirate and) learn a different debugger, so I will be pragmatical: after I cleanup the code I will submit my labelings made with search-and-replace. This will put the .asms out of sync with the IDA database, but one can always adjust that at a later time.

Ghidras support for 16bit DOS segmen/offset stuff etc. is in a very early stage and often buggy

and i think there is no one on this forum who can currently change the IDB besides me :) - maybe dstien is around, clvn is not active for a long time
#6
i've started(with help of others) something similar for porting a different DOS game

its an EXE loader that loads another exe and can hook functions/code in the loaded executeable detouring it to the loader C code

a very early proove of concept but seems to work so far

only the relative exe-image addresses of variables/functions etc. is needed
#7
nice project  :o

Quote from: HerrNove on January 27, 2025, 11:17:58 PM* The renames of the global variables must be performed on the asm code too. I could do it easily with a search-and-replace but it is my understanding that the asm files are somehow generated by IDA Pro, so the clean thing to do would be to update the IDA database. Do you know how the process works?

i helped starting the restunts project (but mainly driven by users clvn/dstien) - i wrote the drvcombiner tool in the src folder

IDA process is: changing the names in IDA + running the src/idc/anders.idc script from IDA - that generates the complete asm code

problem with IDA is: we used the commercial version of IDA in the beginning and everyone needs to have the same IDA version user with older or freeware versions are not able to open the IDA file

i always wanted to change the assembler from Turbo Assembler to UASM or WASM and using a recent linker like WLINK or ULINK - so multi/cross platform builds are esier doable - but never found the time
#8
neuviemeporte's strategy is to reverse the disassembly function by function into C code that produces the same binary code as in the original executable

using the old MSC 5.1 compiler that was originaly used to compile the game (which is the exact same compiler that was used for Stunts)

this strategy is very time consuming and will take easily years to finish - what is typical for reverse projects - for example BladeRunner in ScummVM took more then a decade to finish

the reconstructed C source will be more or less exact the same as the original (except symbol-names, comments, etc.)

based on this C source everything will be possible - porting as is over to other platforms (keeping the software renderer etc.) or replacing the 3d engine with OpenGL, Vulkan, Raytracing... stuff, Resolution changes etc. just everything someone can think of

there is an discord for technical discussion: https://discord.com/channels/819897993624682516/1155564470828007434

#9
Quote from: Daniel3D on November 07, 2023, 03:31:34 PMhttp://anders-e.com/code/browser/restunts/trunk/restunts

i've got a recent svn backup
but i think that xor2003 and Duplodes fork are recent - there wasn't changes in the last years
#10
Quote from: Daniel3D on November 07, 2023, 06:59:33 AMI know nothing about clvn. So impossible to tell for me if he maintains a copy..

last change to the "official" svn server (seems to be down) from clvn is from ~2015
#11
Quote from: dreadnaut on November 05, 2023, 12:50:14 PMI know @dstien put stunpack online, not sure if restunts also exists somewhere.

dstien isn't the initial creator/svn maintainer of restunts - clvn is - so he never controlled the source
#12
Quote from: dstien on July 12, 2023, 01:16:17 PMBrøderbund Stunts 1.0 support

nice!

anything planned for Stressed - also a move to the new github repo, ..., extensions?
#13
Stunts Chat / Re: Combining two tracks into one
June 02, 2023, 05:58:41 PM
Quote from: mrdries on June 02, 2023, 04:01:21 PMI'm using Stressed 0.2.1 now, which is very cool. Though I'm not sure I'm losing a lot of functionality or not.

0.2.1 seems latest so you're not losing anything
#14
Stunts Chat / Re: Combining two tracks into one
June 02, 2023, 12:43:36 PM
QuoteI found the source in the Github. But then I'd have to compile it myself. I'll give that a try.

done that for you: ~6MB, stressed20230602.7z, fresh VS2019 x64 build of the stressed source code, using Qt 5.15.2

https://easyupload.io/pmo3nr
#15
Wow, great Stuff

Do you think it could be possible to export all that information to created a Blender movie from replays?