News:

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

Main Menu

New mod: extended line of sight

Started by HerrNove, January 27, 2025, 01:47:06 AM

Previous topic - Next topic

Matei

So that's why the rendering still had some hiccups. Ok:

485:     + 2*abs(lookahead_tiles_supersight[si].width) <= 4)

HerrNove

#121
Hello guys,

as you might have noticed in the last days I have been working on a new release of SuperSight. Here the main news:

* Reduced exe size by 70% thanks to @llm's work. More space for tracks and cars on your floppy!
* New rendering algorithm: shows up to 180 tiles and tries to scrape every byte of memory to depict as many polygons as possible.
* Removed the bounds on the camera zoom so that you can enjoy the scenes from up high.
* Extended debug infos (F5), including camera angles for easier comparison of given scenes.

The minus side is that the engine really needs CPU power, so I recommend you to configure DOSBox to go fast:

[cpu]
core=dynamic
cputype=auto
cycles=max

The mod works fine on my PC, but before releasing it I'd like to ask anyone interested to test it, so that while you are busy I can stay on top of this month's leaderboard for longer I can be sure that the new version runs on a wide range of configurations and tracks.

Here's a take on last month's track. You can find a couple of other views in my recent posts. Note that I chose the best angles, your mileage may vary.

You cannot view this attachment.

@Matei : if you want to try on your machines, I made it easier to reduce the computational load. Download the branch supersight-next, edit src/restunts/c/frame.c and decrease with the variables TILES_TO_DRAW_MAX and low_detail_priority_thresholds to your satisfaction.

KyLiE

I really appreciate your work on this!  I just tested it and I didn't notice any issues, but you're right, the performance is significantly worse for the same amount of CPU cycles.  A prime example of this is that there is noticeable slowdown on ZCT288 at even 250000 cycles.  Still, removing the bounds on the camera zoom is a great addition!

HerrNove

#123
Quote from: KyLiE on Yesterday at 06:02:12 AMI really appreciate your work on this!  I just tested it and I didn't notice any issues, but you're right, the performance is significantly worse for the same amount of CPU cycles.  A prime example of this is that there is noticeable slowdown on ZCT288 at even 250000 cycles.  Still, removing the bounds on the camera zoom is a great addition!

Thanks for the quick feedback! If you have time, try to test it with the dynamic core using the settings I wrote. In my experience, it provides much better performance than using a fixed # of cycles, however high. On my mid-level laptop (Ryzen 7 5700U) it runs fluidly.

But I agree that it's also important to have a variant that does not require to edit the dosbox.conf file. I have an idea about that, that I'll try to implement in the next days.

KyLiE

My experience is the same.  Using the DOSBox settings that you recommend, I didn't notice any slowdown on ZCT288.  I tested this on an Intel Core i7 6700HQ and an i5 10300H.  What's your idea regarding the CPU configuration?  I know that you can change it in DOSBox using commands.  Is that it?

HerrNove

#125
Quote from: KyLiE on Yesterday at 01:04:36 PMMy experience is the same.  Using the DOSBox settings that you recommend, I didn't notice any slowdown on ZCT288.  I tested this on an Intel Core i7 6700HQ and an i5 10300H.  What's your idea regarding the CPU configuration?  I know that you can change it in DOSBox using commands.  Is that it?

With the DOSBox keyboard commands you can increase or decrease cycles, but you cannot set the dynamic core which is key for top performance. DOSBox uses the dynamic core automatically for protected mode programs, but sticks to the normal core for real mode games, I guess for better compatibility. To force the dynamic core on old games like Stunts you have to edit the .conf file.

My idea is to provide different graphic detail levels so that people with different machines and levels of expertise can find a combination that works for them. I'll check if I can repurpose Stunts' options menu for this goal. Worst case I can instead provide different exes.

KyLiE

Quote from: HerrNove on Yesterday at 01:11:41 PMWith the DOSBox keyboard commands you can increase or decrease cycles, but you cannot set the dynamic core which is key for top performance.

I meant entering "core=dynamic" at the command prompt.

HerrNove

Quote from: KyLiE on Yesterday at 02:02:18 PM
Quote from: HerrNove on Yesterday at 01:11:41 PMWith the DOSBox keyboard commands you can increase or decrease cycles, but you cannot set the dynamic core which is key for top performance.

I meant entering "core=dynamic" at the command prompt.

I did not know you can do that, thanks for the info! Typing config -set "cpu core=dynamic" at the prompt could be easier than fiddling with the config files. I'll add that to the readme file. But I'll still provide the different modes to support older machines, other emulators and even real XX century hardware.

Matei

Quote from: HerrNove on Yesterday at 01:11:41 PMI'll check if I can repurpose Stunts' options menu for this goal.

Not a good idea because the options in Stunts are not saved in a file, so people would have to configure those options every time they start the game. I suppose it's also complicated to do.

QuoteWorst case I can instead provide different exes.

That's the best case, I was going to do it anyway and different exes are already available in the version here:

https://forum.stunts.hu/index.php?topic=4312

SKIDCGA.EXE, SKIDEGA.EXE and SKIDMCGA.EXE.

HerrNove

#129
Quote from: Matei on Today at 08:56:40 AMNot a good idea because the options in Stunts are not saved in a file, so people would have to configure those options every time they start the game. I suppose it's also complicated to do.

Yes, but also the most interesting. And yes, what you say is on point: if I go this way I must also add the (automatic) saving and loading of the settings in a config file, or at least a setup.exe that patches the executable to auto-select the desired level at startup. Should be fast to write nowadays, with AI-assisted tools.

Providing multiple executables is by far the easiest choice. It's also intuitive, but has the problem that it does not scale if I want to add other options: the number of exes grows exponentially.

Which method I choose will depend on how much time I find.

---

If anyone plays with the mod, I recommend trying to put the camera at a distance of about 32768 units. Interesting things happen on the verge of the signed rollover.