Are you, in fact, a pregnant lady who lives in the apartment next door to Superdeath's parents? - Commodore

Create an account  

 
MOO (not another patch) patch

(June 2nd, 2022, 19:20)mxb2001 Wrote: Well I may have found a bug in this non-patch <g>. Or not.

So I started a small ave 2 player game as sili vs darlok and was exterminating the darloks. I started this game using the other patch I call MOO140M2. M1 being the one that fixed the battle scanner display, M2 fixing the endless saves every turn filling HD's and M3 being the one in this thread that combines the 1&2. So after I found M3 I used it to start 2 new games but I also decided to try using it to finish the game started with M2 and well it crashed in a very weird way.

I attach a screenshot of the crash screen. Also the last SAVE7.GAM from before it crashed. I alas didn't have the presence of mind (being a Silly Coid I've rocks for brains) to screen cap the game screen when it started acting weird just before the crash.

So I describe it.
There is (was) a Darly colony 5 parsecs from me (I had range 4 only) but on this turn it simply vanished and there were darly transports leaving it in the direction of the, uh map edge (which it lay quite near to).
Weirder yet all my fleets were permitted to fly to it with 4 fuel range even though they needed 5. No extra tanks I swear.
Then when I clicked on the darly ship in orbit the program crashed.

Thanks for the savefile, I have some time now so I'll see if I can reproduce it.

[edit] Well, I was able to reproduce it and tried loading it from the original vanilla v1.3 version where it also crashed. It'd be hard to isolate whether the save-game data corruption was caused by any of kyrub's or our changes or if it was also originally there with the vanilla version unless you also had a save prior to that distant planet disappearing.
Reply

Hey all -
This patch is built on 1.40m from @kyrub.  However, I found a 1.40n version from 2015 which fixes a couple more bugs.  See here: https://www.realmsbeyond.net/forums/show...p?tid=7331

Since changelogs indicated these two tackled different issues, I produced IPS patches against the base 1.40m for each, and compared the results.

Code:
File: m_to_n.ips

Offset End    Size  Type IPS Offset IPS End  IPS Size
------ ------ ----- ID  00000000  00000004 5       
017838 017838 1    PAT  00000005  0000000A 6       
0178C8 0178C8 1    PAT  0000000B  00000010 6       
017AFC 017AFC 1    PAT  00000011  00000016 6       
019F3C 019F3F 4    PAT  00000017  0000001F 9       
01A02F 01A052 36    PAT  00000020  00000048 41     
045C08 045C08 1    PAT  00000049  0000004E 6       
045C12 045C12 1    PAT  0000004F  00000054 6       
045C1C 045C1C 1    PAT  00000055  0000005A 6       
068A32 068A32 1    PAT  0000005B  00000060 6       
068A4B 068A4B 1    PAT  00000061  00000066 6       
068A74 068A86 19    PAT  00000067  0000007E 24     
068AB1 068AB7 7    PAT  0000007F  0000008A 12     
------ ------ ----- EOF  0000008B  0000008D 3       
Rows: E (14), Patches: C (12), Modified: 4A (74)

Code:
File: m_to_sdragon.ips

Offset End    Size  Type IPS Offset IPS End  IPS Size
------ ------ ----- ID   00000000   00000004 5       
008B95 008BA9 21    PAT  00000005   0000001E 26      
00C079 00C0CD 85    PAT  0000001F   00000078 90      
00C0F5 00C103 15    RLE  00000079   00000080 8       
00C104 00C148 69    PAT  00000081   000000CA 74      
00E653 00E65F 13    PAT  000000CB   000000DC 18      
052CC9 052D01 57    PAT  000000DD   0000011A 62      
0530E3 0530F0 14    PAT  0000011B   0000012D 19      
053574 053585 18    PAT  0000012E   00000144 23      
05381B 05390C 242   PAT  00000145   0000023B 247     
05391C 053920 5     PAT  0000023C   00000245 10      
056BA6 056BA6 1     PAT  00000246   0000024B 6       
056BD0 056BD0 1     PAT  0000024C   00000251 6       
056C27 056C27 1     PAT  00000252   00000257 6       
056C47 056C47 1     PAT  00000258   0000025D 6       
06C3CF 06C3D0 2     PAT  0000025E   00000264 7       
06C400 06C400 1     PAT  00000265   0000026A 6       
06E359 06E35A 2     PAT  0000026B   00000271 7       
06E3AF 06E3AF 1     PAT  00000272   00000277 6       
0708C2 0708C2 1     PAT  00000278   0000027D 6       
070901 070901 1     PAT  0000027E   00000283 6       
070920 070920 1     PAT  00000284   00000289 6       
070945 070945 1     PAT  0000028A   0000028F 6       
077F32 077F32 1     PAT  00000290   00000295 6       
077F5B 077F5D 3     PAT  00000296   0000029D 8       
07879F 0787A1 3     PAT  0000029E   000002A5 8       
078831 078831 1     PAT  000002A6   000002AB 6       
07C166 07C167 2     PAT  000002AC   000002B2 7       
07C189 07C18A 2     PAT  000002B3   000002B9 7       
07C813 07C843 49    PAT  000002BA   000002EF 54      
07C898 07C8A8 17    RLE  000002F0   000002F7 8       
------ ------ ----- EOF  000002F8   000002FA 3       
Rows: 20 (32), Patches: 1E (30), Modified: 277 (631)

Not seeing any overlaps here, I naïvely thought to apply 1.40n IPS over SDragon's and produce a unified 1.40o patch smile  See how it fares.

Download:


Attached Files
.zip   1.40o.zip (Size: 274.55 KB / Downloads: 12)
Reply

(April 27th, 2023, 14:01)hornpipe2 Wrote: Hey all -
This patch is built on 1.40m from @kyrub.  However, I found a 1.40n version from 2015 which fixes a couple more bugs.  See here: https://www.realmsbeyond.net/forums/show...p?tid=7331

Sounds good, thanks for doing this.

Ya, I didn't use the 1.40n version as I hadn't been following it too closely and didn't want any confusion as to whether any new issues were caused by my changes or from the 'n' version so I stayed with the more thoroughly played 'm' version.
Reply

As you would expect, kyrub's patch cannot even be analyzed to the end; new bugs have been added
It's quite strange that people prefer to do this rather than look for errors in 1oom which is essentially an open book
Reply

MyName, is this the list of bugs and changes in that 1oom mod you're talking about: https://gitlab.com/Tapani_/1oom/-/blob/m...pbxnum.txt ?

I can tell a lot of work went into it, and it seems like they found a lot of bugs. But, I think it suffers from the typical open-source problem of being tough to read and use. A normal person doesn't really want to go delving into source code just to find out what's going on in their game mod...
Reply

Have a bit of time, I tend to hibernate in winter. Can anyone describe the factory construction bug? I'm not very familiar with it. If it could be broken down into what the manual describes how the function should work versus what seems to be occurring in game I could get a sense of where to look.

I know most people have moved on from playing the original DOS version, but it'd still be good to fix any issues in it that can be done.

Cheers
Reply

For anyone that was looking to change the Galactic High Council behavior, there are a couple places you can modify.

Hex Address CC6A: B8 19 00 - mov bx, 19

Basically the frequency that the Council convenes, so you could increase the number to 32 if you wanted every 50 years, or any number of your choosing (remember the number is Hex).

Hex Address CC7B: 83 7E FA 02 - cmp [bp+num_alive], 2

This check skips the Council if there's essentially only 2 players left in the game since then there would be no point in having it. That means that you can change the 2 number to any number you want to stop having the Council show up. If you set it to a higher number then there are players in the game (50 for instance), then the Council will never show up. If you set it to 4, then the council will show up if there are 5 players still in the game, but once there's only 4, it will stop showing up.

Since this is a personal preference, I won't be making a patch for it, players can patch their own games as they like.
Reply

Thanks for all your work and discoveries on the secrets of this terrific old game, SDragon!

(11 hours ago)SDragon Wrote: Can anyone describe the factory construction bug?  I'm not very familiar with it.  If it could be broken down into what the manual describes how the function should work versus what seems to be occurring in game I could get a sense of where to look.

If I understand which but you mean, here's what I know of the way it actually works:

- The cost of building any factory at any time is equal to [current Industrial Tech level, which starts at 10] * [current Robotic Controls level, which starts at 2] / 2.  (Not sure if it's floor or ceiling.)  Exception:  For the Meklar, the cost of building any factory at any time is equalt to [current Industrial Tech level], under all circumstances.

- Unless you are Meklar, when you acquire a new Robotic Controls tech or first conquer a rival's colony with factories in place, you have to pay a "refit" cost for your existing factories before you can build the "new" factories.  This cost is extremely small (e.g. the cost of refitting exactly one factory) and failing to pay it doesn't appear (as far as I can tell) to affect your ability to work factories up to the number allowed by your population and best RC.  I'm also not sure when this cost is applied, but it might be when your factory count reaches (or has surpassed, as sometimes happens when conquering colonies or after bio attacks) the number the planet's max population would have been able to support with your old (pre-refit) RC tech.  Note Meklar never have to pay refit costs.

- There is a display bug associated with these "refit" costs:  When you spend on Industry on a planet that still "needs" to refit its factories, the display to the right of the slider displays "REFIT" at the appropriate times, but does not recognize that after refitting you will also be building more factories.  Thus, if you've maxed a UR world at RC2 as Klackons with Industrial Waste Elimination, IIT2, and tech level 99 in planetology, and then you get RC3, double the planet's output from the treasury, and slam the whole slider into INDustry, the display shows "REFIT" for that planet.  But the next turn, you'll find that you not only fully refitted all the existing factories but maxed the planet again with RC3 and created an enormous amount of reserves to restock the treasury.

How it's supposed to work is a much more difficult question.  I can try to look it up in the manual again, but I don't think it specifies certain crucial details. My off-the-cuff thoughts: 
If (as in Remnants of the Precursors) between maxing old-RC factories and building even your very first new one, you need to pay to refit every one of your existing factories, it would massively decrease the value of RC technology* (and consequently, non-intuitively, most IIT) - though if you can still build the "cheap" RC2 factories up until the planet does max out with those, at least pulling RC3 from an early artifact world wouldn't be a poison pill.  My view is that the best result within (what I think is) the existing savefile format would be something like this:  Factories can be built at a cost of [IIT level] until factory count reaches twice the planet's max pop.  Beyond that, (for non-Meklar) the cost per factory becomes [IIT level] * ([RC level needed to build this factory] - 0.5).  (Thus 2.5 * IIT level until you're at thrice max pop, then 3.5 * IIT, etc.)  This means you end up paying the full "refit" cost, but it's spread out among all the factories you build that require it, resulting in a much faster return on your investment than if you have to pay all the refit costs up front before building any new factories.
Reply



Forum Jump: