sc2kfix - a bugfix and modding plugin for SimCity 2000 Special Edition
By
araxestroy, in Topics
204 posts in this topic Last Reply
Highlighted Posts
araxestroy now has their own website. Linky in this post.
Recommended by CorinaMarie
Dedicated Discord Server is active now.
Recommended by CorinaMarie
Soliloquy Yeah, I know, I said Release 10 would be out three months ago. I also said six months ago that Release 10 would have a full modding framework, but that's pushed out to Release 11, because I'm terrible at this. Instead, here's a Christmas present! Going forward, our big focus will be a game reimplementation, but additional modding work will be done on the original game to make sure that as many possible advancements we come up with in the realm of SimCity 2000 modding can be done on the original game in the meantime. That means the SC2X file format, while originally slated for Release 10, is going to be a Release 11 or Release 12 job. The format has changed a bunch while I've been working on it and integrating it into a game from 30 years ago without massively inflating the size of the sc2kfix DLL is going to be a challenge. Many of the more experimental native code modding hooks as well as the Kuroko implementation are being pushed back to Release 11, because they're extremely unstable and we want to get something out before the end of the year. So, what's in Release 10? Well, it's a rollup of all the various things we've been working on since Release 9. A large number of changes were done in the Release 9 patch cycle through Release 9d, with Release 10 being a mix of further improvements and a stable marker that we've fixed a bunch of stuff based on our reverse engineering work. One of the major accomplishments is the series of critical fixes to WinSCURK by @af-az, which was accomplished by a herculean reverse engineering effort of the pre-MFC Borland C++ framework used in WinSCURK's creation, resulting in fixes allowing the program to run properly on Windows 11. Similar to the issue where GTA: San Andreas is buggier on Windows 11, WinSCURK makes certain assumptions about the Windows 11 ABI that causes it to behave incorrectly, and @af-az's work fixes this. We believe this marks the squashing of all known major bugs in the game; now it's time to find the unknown ones through further reverse engineering. In addition, we have added several new features to the game. The music engine has been enhanced again with support for FluidSynth, a scenario status screen has been added to make scenario progress more clear, various enhancements to the internals of the plugin have been made, and a prototype modding framework for writing native code mods (DLLs) for the game has been implemented. A small example mod has been added to the repository that outlines how mods work, but full documentation has yet to be written. Work continues on an enhanced scripting system for lightweight modding, which I expect will be more reasonably finished along with the stable mod API/ABI for Release 11. Whenever that is. Happy holidays, everyone, and may you and your Sims have a happy new year!
External Links Download from GitHub: GitHub - Release 10 User Guide: sc2kfix.net: User Guide
Changelog
Gameplay Features/Fixes The new music engine has been enhanced with first-class support for FluidSynth! Dropping libfluidsynth-3.dll from the latest 32-bit release of FluidSynth (2.4.7-winXP) and its requisite libraries into the same folder as the sc2kfix plugin will enable sc2kfix to load FluidSynth as a module and use it in the music engine. You can then select a SoundFont in the settings dialog and FluidSynth will be directed to that SoundFont for MIDI playback. (@araxestroy) SCURK has been fixed on Windows 11 24H2 and newer. Pick-and-place should now work as expected. This was caused by a mix of legal ABI changes (the Windows system call ABI can change at any time) and incorrect usage of the API on Maxis' and Borland's part, and was resolved after a period of reverse engineering of the Borland C++ Windows abstraction layer. (@af-az) MIDI files and MP3 files can now be manually assigned for playback for each music track. If you want to play different songs from your collection of MIDIs or MP3s in SimCity 2000, you can now do so. We recommend keeping the mood the same, though, so you don't end up with an upbeat ska track playing when your city is being invaded by alien monsters from the year 2000. (@af-az) Preliminary native code modding has been added to the game. This is experimental work and you should not play with this unless you know what you are doing. Documentation has yet to be written as the native code interface is still evolving rapidly. If you want to play with this, the sc2kfix Discord server is the best place to chat about it. (@araxestroy) sc2kfix will now automatically fix file associations for .sc2 and .scn files in the registry. This restores the last missing feature from the installer, allowing saved game and scenario files to be launched directly from Explorer once again. (@araxestroy) A bug in the query dialog display of arcology microsim statistics has been fixed. (@af-az) A bug in the query dialog display of transit tiles on the map edge has been fixed. (@af-az) A bug in the save city dialog that can cause scenario files to be overwritten has been fixed. (@af-az) Army base growth has been tweaked to be more accurate to the DOS and Mac versions. (@af-az)
Plugin Changes The floating status dialog has been reimplemented to be more accurate to the DOS and Mac versions. (@af-az) The crash dialog and associated stack trace logging has been massively improved. This allows us to more accurately track down crash reasons with significantly less effort than in previous releases. (@araxestroy) The CSimCityApp::BuildSubFrames function (formerly GameDoIdleUpkeep) has been reimplemented in-library. (@af-az) The animation hooks have been rewritten to improve performance. (@af-az) The advanced query dialog now shows tile sprites like the base query dialog. (@af-az) The pipe tool now properly refreshes at max zoom. (@araxestroy) A setting has been added to automatically queue up a new song after one finishes instead of needing an event to occur. (@af-az) A crash related to Air Force base growth has been fixed. (@af-az) Various work has been done to fix bugs in the Interactive Demo version of the game. (@af-az) The debug-related commands in the console have been enhanced to be more verbose. (@araxestroy) The prototype console scripting system has been reimplemented. (@araxestroy) A bug preventing the advanced query dialog from working properly on some system has been fixed. (@af-az) A bug in the music engine has been fixed allowing track 18 to play properly. (@araxestroy) The advanced query dialog has been re-enabled by default. (@araxestroy) Hooks for the Smacker codec library will not be loaded on the (unsupported) 1995 CD Collection version of the game. (@araxestroy) A few console commands have been cleaned up to provide prettier output. (@araxestroy) Separate log files will be created for SimCity 2000 and SCURK so as to not clobber a single log file if you start up SCURK while SimCity 2000 is running. (@af-az)
Internal Changes Further reconstruction of the simulation loop has been done in-plugin to improve performance and enable reimplementation and modding. (@af-az, @araxestroy) The MFC 3.x helper file has been separated out and included by default in the native code modding framework. (@af-az, @araxestroy) Helper files have been added for SCURK and the idiosyncratic Borland C++ class system it uses. (@af-az) Several files have been reorganized for structural reasons. The monolith previously known as the mischook file has been split up dramatically into multiple files to make tracking changes easier. Call your cousin Vinnie if you have issues with this. (@af-az, @araxestroy) Further demystification of the game's sprite format has been done and exposed to the plugin API. (@af-az) The console window is now allocated earlier in the plugin startup process to ensure critical logging can be provided on the console. (@araxestroy) The system for expanding AFX_MSGMAPs has been rewritten to make the process more safe. (@araxestroy) Cheats and the Maxis debug menu have been moved to their own file. (@araxestroy) More detailed information about the running system is logged on startup for bug reporting. (@araxestroy) Some of the earliest code has been rewritten to be more sane and less hacky. (@af-az, @araxestroy) The default main branch build (Release) does not include Kuroko, and the alternate build (ReleaseKuroko) does. (@araxestroy)
Release 10 available now!
Recommended by CorinaMarie
-
Similar Content
-
Recently Browsing 0 members
No registered users viewing this page.

