Sword of Moonlight > Devs

EXIT: Long time no update! (Sorry about that)

<< < (3/4) > >>

Holey Moley:
Important Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip

I'm not sure when this started, but I just noticed the Brightness option was disabled. It turned out a whole file (http://svn.swordofmoonlight.net/code/SomEx/dx.ddcaps.inl) was excluded from the build by a // programming comment, that I swear I doubt I inputted. Sometimes the editor inserts random things into text based on esoteric key combinations.

In this case it probably made the video card seem to have no functionality. Fortunately the brightness (gamma) functionality was the only thing I noticed trouble with, but it could have further reaching effects.

I've updated the TOOL folder with the previous patch. The last patch also probably breaks synchronization of the "systemwide" events on map change. (This one--hopefully--fixes it.)

I've been working furiously the past 2 days on shuffling a lot of things around to decouple loading MPX files from the global game level state so more than one map can be managed at a time. There's a good chance this will cause some fallout afterward as sometimes its hard to remember what has been manipulated to change SOM's behavior. It's dicey to publish patches with this degree of changes in play but in this case the bug is too great to ignore. That "decoupling" is done now. I still have a lot of work ahead to transition maps without being noticeable. The main things are loading files (of course) and then controls (sounds trivial but it's not) and finally the parameters of the source and destination maps has to be smoothly blended (faded) somehow. I hope to do this gradually and imperceptibly only as you move away from the spawn point, but for some things like sky models it's going to be pretty obvious without sacrificing too much performance.

Holey Moley:
Important Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip

This patch fixes a new crash on leaving the Inventory screen (a minor screen for hiding items to have fewer to scroll through) AND the arm model (arm.mdl) has special needs for using the new MDL+MDO system that didn't occur to me. Namely it needs to hide its segments (i.e. the hand, forearm, etc.) selectively. The arm code needs a patch to hide the MDO elements instead of the MDL elements (which don't exist) so no the arm segments aren't going to be hidden when putting on gloves for example without this patch.

Holey Moley:
Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip

I found out I missed two subroutines that attach equipment graphics to the arm model. One of the annoying things about Ghidra is it tells which subroutines use which subroutines, but not how many times they do or the places that they do, so it's easy to forget to manually use F3 to search for duplicate instances. I've updated the TOOL folder to complement yesterday's arm equipment related patch. I should've put some gloves on (in the game) but I usually don't have that on in my tests.

BTW today I had to rewrite the equipment code from scratch. I figured out yesterday it had a lot of problems around ref-counting its sound-effects and SFX (special effects) references. The hacks I'd accumulated around it were getting to be too much anyway. It's a lot nicer system now. The NPCs and objects (character models) didn't have code for decrementing their ref-counts, so I had to add that, and rewrote their code too to only make references for each item in SOM_PRM instead of each in SOM_MAP. There's also numerous (fixed) bugs in the SFX and SND references code itself.

I think I'm through the woods on improving how resources are juggled. Next is (finally) loading object/character models in the background. The background loading system will also be helpful for speeding up the start of the game. I'm going to add something to the game INI file to remember the last map you played and assume it will be the one you will play next time, and go ahead and start loading it from inside the title screens.

Holey Moley:
Patch Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip

Yesterday's patch had a bad number in it (offset to the PARAM/OBJ.PR2PRO index in PRM records) I'd inputted incorrectly into Ghidra. I also forgot to use the loading routine I wrote for object instances... luckily my brain told me this when I woke up this morning. I don't know what I'd do without my brain figuring this stuff out while I'm sleeping and pointing out my mistakes in the morning.

I had to update the TOOL folder (again) and I'd like to consolidate the last three posts, but I feel like there's information in them that would be collateral damage if so. Daily patches never get old. It feels like once a release is published its patching draws on until the next release. Probably a good reason to hang back one release cycle.

Holey Moley:
Emergency Patch

http://csv.swordofmoonlight.net/SomEx.dll/1.2.3.6.zip

I learned 2 days ago that I messed up again and had broken sound effects on "objects" and the magic equipment (and a few other things too) but I was too deep into debugging the new background loading system to be able to publish a patch... and a little embarrassed to be making so many patching posts.

I hoped I could iron out some troubles yesterday, but it took me 2 days of keep running into things. (Plus I figure probably next to no one is downloading these patches. I make them out of principle.)

I don't like how the work on the next release is being consumed into this release. It's about tantamount to just roll it into this release as an early demo. I will announce it since it's an interesting juncture. Technically it can be used with this patch but just requires a language pack with the extra event module for SOM_MAP. I may upload that tomorrow as a sneak preview. I still have to work on blending the fog and sky to call it good enough to officially publish it.

I won't be surprised if something breaks, but this patch/version will start loading the first map either when the New Game option is chosen, in which case an intro sequence can hide the loading, or if do_start and start_mode=1 is used it will start loading as soon as the first title screen. I also intend to work on starting the load when a save file is chosen, since it takes some time to move the button up to Yes (it defaults to No) which can be enough to load a game.

Currently it can take time to process textures, which this patch doesn't do all immediately. I've been able to improve the start of maps, especially when they fade in. The first frame will process everything that's in its scene, but after that it starts processing in the background and goes ahead and starts playing the map. This would benefit from implementing the prioritization system I've in mind even now. But I also intend to move that processing into x2mdl ASAP. Technically even x2mdl runs in the background now, so it might not even be noticed if lucky.

I've had to switch Direct3D 9 over to a "multi-threaded" mode, which is supposedly pretty flaky and naive. It might not be necessary if these textures were processed by x2mdl but it can take several milliseconds to process them at runtime, which is too much to do on the same thread as Direct3D. It seems to work, but it can't upload textures without jamming, so I've set it to upload one processed texture per frame. Of course if a model actually requires a texture it will be uploaded in addition to this, and too many can result in a hiccup. It might be nice to be able to fade things in a little late in that case to avoid frame drops. I think only NPCs and items fade in normally.

Support for NPC reskins is limited too. The model preloading system isn't fully aware of skins now, so it will apply the first skin to a model, so that model will never have a different skin if there's more than one. I will work on this. I don't know if the Moratheia 2.1 demo doubles up models with skins. Now with MDL+MDO skins aren't required but can be an optimization for "palette swapped" NPCs.

There's also the start of an alternative "item" pickup experience, but it feels a bit flat. I will have to study KFII to see if it has any sound effects involved. It can be jarring to not have the visual spin around and rise up. I have to work on that. Luckily this can be turned on and off in the Options menu. I will probably update the TOOL folder again after some sleep and more testing and confidence this time.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version