![]() |
![]() |
#1881 | |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
Quote:
I've changed the code to be based on the player position, which works, but it does mean that the zone ordering is being recalculated all the time its not standing still (looking around is ok). This is still better than every frame. Just. |
|
![]() |
![]() |
#1882 | |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
Quote:
![]() build from the current main. edit: I have included a 'readme' for the new key definitions can someone do a quick comparison with an older build on real hardware please Last edited by abu_the_monkey; 05 May 2023 at 00:24. |
|
![]() |
![]() |
#1883 |
Registered User
Join Date: Jun 2015
Location: Germany
Posts: 1,924
|
|
![]() |
![]() |
#1884 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
There's only one pointer, so yes, although you can basically be stood on the boundary of adjoining zones (how complex rooms work is by adjacent convex zones sharing an edge). Unless it's maintained somewhere else that I haven't found.
I don't know that it's saving a ton of time by trying to skip it, but it may help on real hardware. |
![]() |
![]() |
#1885 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
I might be thinking about this the wrong way. Instead of earlying out the ordering of zones every frame because I appear to have not changed zone pointer, what if instead, I ran the zone order code when I detect the zone pointer has changed?
This is trivial for a C code refactor but in assembler I can't make too many assumptions on how decoupled the code is from where it is currently called. |
![]() |
![]() |
#1886 | |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
Quote:
edit: We should start stripping the release binary, it'll be half the size. Mmmmm banana. Almost time. |
|
![]() |
![]() |
#1887 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
Experimental changes pushed to the performance/renderer branch for this idea of lazy zone order evaluation. It works (updates when player location moves) but I don't think it will make much difference. It may help on real silicon by saving some code and cache trashing due to list manipulation.
|
![]() |
![]() |
#1888 |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
@Karlos
are Plr1_RoomPtr_l and Plr1_ZonePtr_l the same thing? I get an undefined reference error with your push to the performance/renderer branch I may have done something wrong |
![]() |
![]() |
#1889 |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
ignore me, my bad
![]() |
![]() |
![]() |
#1890 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
It got renamed because the thing it points to is really a zone. A "room" can be made of multiple connected zones but doesn't appear to be a distinct thing in its own right. That is to say, there doesn't appear to be anything akin to a Sector in Doom.
Last edited by Karlos; 06 April 2023 at 21:06. |
![]() |
![]() |
#1891 |
Registered User
Join Date: Jul 2017
Location: San Jose
Posts: 676
|
I’m surprised it’s not using some form of portal rendering, starting from the player zone branching out into all connected zones all the while shrinking the “clip rectangle” for drawing.
The symbols were included into the executable so that I could use the WinUAE debugger with a little bit of source level debugging. WinUAE will load the symbols and allows you to refer to them when setting breakpoints or inspecting memory. Removing the debugging symbols is definitely something that should be done for a release version. |
![]() |
![]() |
#1892 | ||
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
Quote:
The whole PVS has some issues, as the Dev build can show. Bits of the map being drawn behind solid walls and so on. I just picked this part up to ease myself into the murky world of it. I am pretty sure it is a portal style renderer. When wall drawing is turned off, usually the stuff that would be partially obstructed by them is clipped against where the walls would be. Quote:
|
||
![]() |
![]() |
#1893 |
Registered User
Join Date: Jul 2017
Location: San Jose
Posts: 676
|
Oh, also, wrt to the “doublewidth” test branch: what I tried there was to ignore the dedicated double width rendering routines and then modify the regular rendering routines to achieve doublewidth rendering. The idea being: what are the relevant parts? Can the necessary changes maybe rolled into the outer math and make it “just work”?
I think I made all the necessary changes, but didn’t pursue a “productization” enough. I wanted to make the regular rendering routines switchable, but that’s not as easy to do as I wished for and then I lost a bit of interest. What could be done with the current code, though, is to modify the doublewidth rendering paths in the master branch to use the code used in the doublewidth test branch. |
![]() |
![]() |
#1894 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
I'm taking a bit of a break from the lower level optimisations after eliminating a further 1500-3000 long divisions per frame (up to 8000 in one scene in my mod) arising from the polygon rendering. That's why I decided to take a quick look at the higher up stuff.
|
![]() |
![]() |
#1895 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
@pipper
I think the double height mode offers better bang for buck because you can transfer half as much data over the slow chip ram bus as well as saving on calculation time. With the double width mode, you only get calculation time saving, right? |
![]() |
![]() |
#1896 |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
@Karlos
for the fps counter in the release version you mentioned using the border text/char, I think the border, weapon indicator, ammo and health are on a planar screen which the chunky buffer draws over but I could be wrong. would you just be looking to reuse the 'font' and redirect it to the top left corner of the chunky buffer? |
![]() |
![]() |
#1897 | |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
Quote:
I am probably going to factor out some of the timing code from the dev_inst.s into a common timer file so that there's a single point of definition. I'll also use the same last 8 frames average as it seems to give a pretty reliable measure. But not tonight. I'm beat, lol. |
|
![]() |
![]() |
#1898 |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
that's cool
![]() I am not surprised, only 4 hours sleep a night catches up with you at the best of times. how was the banana by the way ![]() |
![]() |
![]() |
#1899 |
Alien Bleed
Join Date: Aug 2022
Location: UK
Posts: 4,444
|
|
![]() |
![]() |
#1900 | |
Registered User
Join Date: Oct 2020
Location: Bicester
Posts: 2,020
|
sorry, had to comment at this
Quote:
|
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Alien Breed 3D II The Killing Grounds RTG patch | Angus | Retrogaming General Discussion | 63 | 14 December 2022 15:20 |
Alien Breed & Alien Breed '92: SE - delay when picking up items / opening doors | Ian | support.WinUAE | 16 | 23 December 2016 15:50 |
Alien Breed 3D II : The Killing Grounds code booklet | alexh | support.Games | 19 | 10 October 2012 22:17 |
Alien Breed 3D 2 - The Killing Grounds | Ironclaw | support.Games | 12 | 13 September 2005 13:07 |
HD Version of Alien Breed I ? | Kintaro | request.Old Rare Games | 20 | 31 July 2003 10:48 |
|
|