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

Topics - Daniel3D

#41
Here you can post Bugs and issues you have found in the re-release that are not present in the original game.
Give your bug report a new subject to easier keeping track if issues and replies to it within the topic.

Bugs will be added to the list below.
#42
Is there a way to find out how, what and where stunts stores temporary information.
I'm referring to the Global variables.
I can see they are set in some cases, like here at the end of seg000:
set_default_car proc far

    mov     gameconfig.game_playercarid, 43h ; 'C'
loc_146E9:
    mov     gameconfig.game_playercarid+1, 4Fh ; 'O'
loc_146EE:
    mov     gameconfig.game_playercarid+2, 55h ; 'U'
loc_146F3:
    mov     gameconfig.game_playercarid+3, 4Eh ; 'N'
loc_146F8:
    mov     gameconfig.game_playermaterial, 0
loc_146FD:
    mov     gameconfig.game_opponenttype, 0
loc_14702:
    mov     gameconfig.game_opponentmaterial, 0
loc_14707:
    mov     gameconfig.game_playertransmission, 1
loc_1470C:
    mov     gameconfig.game_opponentcarid, 0FFh
locret_14711:
    retf
set_default_car endp
seg000 ends


Curiously, the player car is set by the four letters of the car individually.
But the opponent car id is a single value. 0FFh. (255 in decimal, but it could mean something else)
#43
Stunts Chat / easy making lists
November 04, 2021, 10:34:11 AM
I noticed that some dont use the standard way of listing as given by the options above.

[list]
[li]Line 1[/li]
[li]Line 2[/li]
[/list]

This looks like this:

  • Line 1
  • Line 2
I just discoverd that this does the same:

[*]Line 1
[*]Line 2

Like this:
  • Line 1
  • Line 2

    Importand? No.. Easy.. YES  8) 8)
#44
Stunts Chat / about moving Topics.
November 02, 2021, 10:24:46 AM
In the last months, some changes have been taking place that have resulted in modified versions of Stunts.
Because there are more ideas and wishes there is a sub forum in reverse engendering.

Some current topic have evolved to fit better in the sub forum (stunts modifications) and some just fit there better.

But before is start asking Duplode to overhaul the forum and drag topics around, I would like other opinions.

The topics I want to move to begin with are.
Stunts V11 M10 etc.. topic
The Ferrari edition topic
changing the color of the needle topic.

and at the moment moved topics get a reminder topic (like the deep dig topic in reverse engineering)
I would like to propose we don't do that for topics moved to stunts modifications but log them here to keep the forum cleaner.
#45
Stunts Chat / Programming help wanted.
September 15, 2021, 12:38:59 PM
Hi guys.

As many of you have noticed, I'm full of ideas
But I lack the skills to do it all myself.

So far I have been leaning on CAS for the majority of the programming and code changes but he is quite busy and I want to give him some breathing room.

For the new release of stunts he has written a new setup program. Setup of video and sound works exactly like the original.

But an installation function is not available yet.
Also there are some things I would like to add.
Most importantly a car manager/swapper.

Who can help with adding the additional functionality?
It's currently written in quickbasic.
Source code is available.

Thanks in advance.
Daniël
#46
Quote from: Daniel3D on September 21, 2021, 09:24:49 AMSTUNTS 1.1 MODIFICATION 1.0
IS AVAILABLE FOR DOWNLOAD

You can find it on my mega,
link below.
-- UPDATE 24 OCT --  Zipfile added to first post ---
You cannot view this attachment.

While reading up on Restunts and reengineering of the game files, some things caught my attention.
  • Load.exe builds an executable in memory with the chosen graphics mode.
  • The above-mentioned process hurts performance and is not done in favor of gameplay
  • 4D boxing had a later edition without load.exe but separate executables per video mode
  • The separate executables take up more space and Stunts would not have fit on 2 disks that way
  • The separate executables are very much like the restunts executable
  • Load.exe is likely a post-production/marketing decision to use fewer disk to favor sales
  • Copy protection is by now an obsolete part of the game that also is part of marketing/sales and not game development.

Because the game runs a bit better without load.exe (at least, it has a quicker startup and takes up less ram)
I can run on old hardware better than with load.exe.
It will not make your lap times faster, but it may be able to run at the higher frame rate or with more scenery.

With a lot of help from llm and CAS we have now the executables for all graphic modes except Hercules.
We also have a new setup program that creates STUNTS.BAT to start the game.
I want to have an installation feature working in setup to have a new original version that is equal to Stunts 1.1

-----
Why do I want it?
-----
Restunts is basically working on the same basis. So if modifications (like the Ferrari edition) are made they will never work in combination with load.exe. I think it's a good idea to have a baseline to build form.
En other thing is the before-mentioned better support of old hardware for the purists among us. (except for Hercules monitors for now)

If new modifications are made, we can use new version numbers (1.1.2 and so on as long as it is still compatible with 1.1) so if someone has trouble we know the mod based on the version number for better support and understanding.

A new version to tamper with in order to leave the originals as they are. Beautiful in their own way..
-------
I plan to release STUNTS 1.1.1 later this month.
@those running old hardware 286, 386 and 486 computers. Will you test it please?

Also. We can modify setup as it is newly written.
We have plans for a dos based car manager (carswapper) to 'setup' the car list that is available in game.

So without touching the game itself (working on that, is quite difficult and the game engine can probably not be changed)
What dos based feature would you like included in the Setup?
- it may take a while because the programming bit falls mostly on the shoulders of CAS, and he currently has a limited amount of time to work on this.
#47
After finding that a later version of 4D boxing didn't have load.exe some things about stunts became possible.

  • load.exe saves space on disk that made 2 disk release possible.
  • load.exe uses more ram and is more demanding on the system.
  • the restunts executable resembles those of 4D boxing

From this i deducted the following.
This is not hard fact. It's my believe it is true. But believing doesn't make it so.
Load.exe is a post-production/marketing program to make it small enough to fit 2 diskettes (or 4 floppies)
Load.exe is not part of the actual game and hurts performance.
The restunts executable is a recreation of the actual executables as intended by the creators.
Lose executables per graphic mode is as was intended and preforms better on original hardware than the released version.

For the purist under us (and for future reference, the files as they would have been (including copy protection)
cracks wont work, so keep your answer ready.  8)
#48
While searching for original stunts images in response to llm I obviously came across some cracked versions.

That made me wonder a couple of things that I'd like to share because somebody may wonder the same.
(if not, feel free to say so or just ignore my post)

First thing.
As learned form dstien's restunts SVN repository the copy protection can be permanently disabled by setting a 0 to a 1 on two locations.
Why then are the cracks so elaborate?

my guess:  it was not the goal back then, you wanted to show off your work and it has a more visual appeal to have it work with enter in stead of been completely absent.

But it may also have been easier to do so. I don't know how difficult it is to find this bit in the original file and change it. I can 'see' how you can see the check for the right answer with debugging software and make sure the answer is always accepted. And my guess is that that is how it's done.

Most cracks just work as a preloader and continue with stunts.com that reads form setup.dat and feeds that to load.exe.
||st.com and stunts_k don't work without stunts.com||
I believe the only exception to this is the red sector crack, they replaced stunts.com with their own version,
RS-stunts.com calls stunts.ovl that reads setup.dat and calls back to RS-stunts.com which feeds that into load.exe

I don't know for sure if they work this way.
But it seems logical. Please correct me if i'm wrong.

list of known crack files.

Crackes that seem to flip the byte
  • ST4DLDR
#49
Stunts Chat / track element renaming suggestion.
July 01, 2021, 12:18:08 PM
At the moment, we identify two very different track elements with the term corkscrew.
Corkscrew l/r
and
Corkscrew u/d

For the first use it is a very good name because it is a stunt and in other fields (airplane acrobatics or rollercoasters) the same term is used
For the latter, I don't think it suits the track element very well.
It is a more normal road element that exists in real life. Its shape is a helix (a corkscrew technically as well, but that is not the point).
I think the term helix would fit better. You can also more easily clarify what type orientated from driving direction, like; Down left or up left. Down right or Up right,
In the attached image, I used a chicane /L with a helix u/l and a helix d/r ..

I think it helps in describing things.

If we ever create a track element that lets you ride the wall up or down, then the corkscrew would be appropriate again  8) 8)

Any opinions?
#50
Chat - Misc / Personal bad news.
June 11, 2021, 09:32:13 PM
I may be away for a bit.
My mother has MSA, (multi system atrophy)
And has decided today that it has been enough.
#51
So. Kris Hatlelid has agreed with an interview.
The one man behind the KMS file format
He worked on the music of stunts as well as the software for it.

I'm collecting questions. So, if you have any ::)
#52
Ok,

Since we (me for sure) know that the entire code is readable in assembly and creates a almost bit by bit copy of the game when reassembled we know everything is there. And i have seen calls to the various menu's.

I would like to make a flow of the menu parts that are connected and place the relevant pieces of code here.
One post per piece of code with notes and findings.

My hope is to build knowledge about the workings and maybe find a way to either hijack a button for our own purpose or add a button.
Since this part was written in c, i think it should be possible to add something and still have a working game after reassembly.

- Daniel.
#53
Stunts Modification Projects / Menu buttons
May 30, 2021, 11:23:13 AM
Yesterday I was going through the restunts data looking for the main menu.
I found the part that cycles through the button selection https://bitbucket.org/dreadnaut/restunts/src/master/src/restunts/asmorig/seg000.asm#lines-496

This part is difficult to edit right now.

But I also found the highlighted squares with their coordinates. That could be changed by CAS.
https://bitbucket.org/dreadnaut/restunts/src/master/src/restunts/asmorig/dseg.asm#lines-2141

Also the default car selection was found. But not all checks for the file.
https://bitbucket.org/dreadnaut/restunts/src/aa1e714a66f8f9bd0d78bb1c0c3ab6b69252721d/src/restunts/asmorig/seg000.asm#lines-7329

That together made the Ferrari edition possible.

@CAS. Can you give some explanation on the technical side of this?
#54
Hi Guys.

I have been working on a special edition of stunts.
With all the cars Ryoma has been producing I really wanted a Ferrari only edition.

With help of CAS we.

  • Identified the menu button locations in the source and changed them.
  • Added a few new graphics.
  • Changed the hard coded default car from lamborghini Countach to the Ferrari GTO.

still to do.
- Remove the checks that looks for the Countach (we found one, but there are more)

For now a work around so you can Play the Stunts 30th anniversary Ferrari Edition

https://www.dropbox.com/s/uss5x6p0yevrf55/StuntsFerrari.zip?dl=0

EDIT:
I updated the link. Everything is in there now.
Everything we worked on is tested and works.

Download package in attachment below.
I don't expect other things to be broken, but we did alter the game so unexpected weirdness is bound to happen.
#55
I'm going through existing documentation to see if there is anything of interest.
And i think i've found something to get started.

In the docs i've found Flow.text


_main:
Setup ppTrakdataNN-pointers
call near ptr SetDefaultCar
call LoadBinaryFile("default.trk" -> trakdata14 and trakdata15)
... (intro and menu) .. jmp _lblDoGame0:
Setup trakdata20 (copy of trakdata14 + extra stuff)
call SetupTrack
- read from trakdata7, trakdata14, trakdata15, trakdata21, trakdata22,
- write to trakdata, trakdata2, trakdata6, trakdata7, trakdata8, trakdata9, trakdata10, trakdata14, trakdata17, trakdata18, trakdata19, trakdata21, trakdata22, trakdata23,
call InitGameState(0xFFFF) ; set up 20*1120 elements
call ShowWaiting
call RunGame

RunGame:
call near ptr SetupCarGameEtc
call SetupAeroTrakdata(player)
- write to trakdata4, trakdata5
call SetupAeroTrakdata(if opponent)
call SetupOppTrakdata(if opponent)
- write to trakdata3
call InitSfxEngine(player)
call InitSfxEngine(if opponent)
call near ptr SetupCarShapes
call near ptr RplyMouseSpriteStuff(0, 0, 0, 0)
call AltLocateShape(plan)
call AltLocateShape(wall)
call LoadSdgame2Shap
call LoadSkybox
call LoadGame3dShpes
call InitGameState(0xFFFF)
Setup car position
call SetupCarShapes(1) ; 1 = roof and dashboard
while {
call UpdateGameState
call PlayerOp
call UpdateCarState
call near ptr sub_471_40A2
call near ptr CvxOpSimdTrack
call TrkPlanSimd
call TrkTerrainWall
call near ptr InitCarCvx64_64
call Trakdata1_2_17_21_22 ; this returns something based on the position
call OpponentOp (if opponent)
call UpdateFrame
call SetupCarShapes(2)
}


actually need to port rungame itself

more trakdatas:

Trakdata11 = runtracksmenu, highscore
Trakdata12 = security check
Trakdata13 = load replay

trakdata16 - her er tastetrykk/recordbuffer??

which covers all bases yes?

#56
Ok, welcome.

Replacing the main menu sounded simple. Its the lobby of the game and it seems just a crossroad between the different parts of the game.
But it is not that simple. The game was programmed by only one programmer and concessions were made for speed and memory usage.
So it could wel be that most of the code of this menu is fragmenteded al over the main engine.

we'll see.
#57
Disclaimer: this post is subject to change.

I have a dream.. and as with so many of them I lack the time, knowledge and skill to make it happen by myself.

But I asked around and the idea is solid, it can be done, but it is a lot of work.
There are two phases in this project.

  • Dissecting a specific part of the game code containing the main menu and its i/o
  • Replacing that part of code with newly assembled code.

The first part connects to the restunts project and we can continue on that base.
The second part will be mostly assembly programing on the back of CAS (sorry dude, more work)

Because phase one has a lot of unknowns, I can not be sure if we can reach phase 2.

Me, Duplode and CAS think it will be great and will get started.

Do you want to know what it's all about?
(I'm hesitant to tell the exact plans here because i'm not sure what is possible and how much can be done)
But if you opt in you'll get full disclosure, and you'll know why I'm hesitant.

This journey should not be started if you only care for the end goal and not the adventures along the way

But anyone is welcome to travel with us.

To get a feel of what you'll be facing, check http://forum.stunts.hu/index.php?topic=3714.0

#58
Stunts Related Programs / Stunts font
March 11, 2021, 08:20:21 AM
Stunts font as true type font.
(At least one of the three, the one in the menu's)
#59
Custom Cars with Stressed / Concept car: Ferrari Modulo
January 31, 2021, 01:51:19 PM
I will make a attempt to model this car.
#60
Chat - Misc / 21st......
January 21, 2021, 09:21:20 PM
21st second of the
21st minute of the
21st hour of the
21st day of the
21st year of the
21st century...

Important? Nah.
Special? Pretty special...

Edit: @CAS tx..