Coder Social home page Coder Social logo

Comments (7)

juanitogan avatar juanitogan commented on July 23, 2024 1

I thought your name sounded familiar. It's great to hear from you again.

It all sounds good to me. Beware, however, that you might be opening a can of worms. CS1 has not been easy to support. It took a lot of work to get this to where nearly all users are happy with it.

Don't worry about making your installer download my patch if you don't need it to. Thank you for asking first. That is really awesome of you. The credit you say you'll give in the installer is sufficient for me.

I care more about being helpful to people than I do the traffic. (Which, BTW, between GitHub traffic and download numbers from the itch.io pages for these patches, I get a fair idea of what's going on [and MiniGolf is edging out CS in downloads even though CS gets more views -- thus, it is probably due to MiniGolf having more versions of patches to choose from].)

I have considered many times releasing pre-patched builds ready to play... but haven't done so due to copyrights and a probable violation of GitHub terms if I were to release them here. Abandoned or otherwise, somebody still owns the rights to CS and the game assets (probably HiRez, who I intend to ask someday if they have the source), which is probably why GOG hasn't released it yet in spite of the demand for it there. But what you do with my patch until that copyright holder objects, is not my business.

This is partly why I've been slow to implement something like Ogg-Winmm into the patch. To do that legally (a la GitHub terms), I would need to rip the disc on the fly or have the user point the patcher to their own ripped tracks. Messy, and I have little time for this stuff. On the other hand, the patch supplies complete PCM SFX to overwrite the ADPCM SFX, but since they are in a custom format and buried in non-useful ways in the patch data, I haven't worried about it. I considered writing a patch to re-encode the ADPCM on the fly -- which would have made the patch files nice and small -- but also at much greater risk of technical issues with the users. It's best for me (selfishly) to keep the patcher as simple as possible even though it leads to fat patch files and complex instructions. Fewer bug reports to deal with while I'm busy trying to startup a game company. The more complex the patcher, the more likely it will break on some old or new Windows version (like the custom patches from sierrahelp.com have). So, it was all a process of give-and-take decisions.

Know your audience. Mine, for the most part, are hard-core fans that don't have issues with wordy install instructions. Testing and reporting my findings here tends to suck up more time than I have -- which leaves no time for writing smarter installers. Thus, I crank out simple installers and write an extremely thorough wiki, and the game fans are happy enough just to have a fix or good intel on the problems.

I don't know anything about PE Explorer (other than what I just read about it, and I think I've read about it before) and I don't know of any Virtual Size issue or even what you mean by it. That would be beyond me. I don't spend much time decompiling stuff and don't know much about how Windows programs run at their lowest level. I just looked at the disassembled code around the break points and rewrote the machine code to jump past any errors (since DxWnd testing showed this would work). As I recall, the break points were around code for centering the common dialogs and failing due to higher res displays changing the API, but I'm not sure I ever established that with certainty and didn't care if the common dialogs don't center.

Not sure what you mean by AppCompat Layers and how it differs from an SDB but, okay. I can only guess you are using the properties compatibility tab, or writing to the registry directly, instead of letting the SDB do this for you. I'm not sure what could be easier than installing/uninstalling the SDB for testing -- which is something I probably did a thousand times among all these patches -- but we all have our methods.

Fixing GetDiskFreeSpace in the exe is a good idea. There are, however, a couple reasons I didn't do it. Since I still needed the SDB for other reasons (8-bit color shimming), I could save some exe hacking and testing time by keeping it in the SDB. This also allows my patched exe to still be backwards compatible to old machines (probably). But, if I didn't need the SDB for other reasons (it's best to keep most users out of the compatibility tab), I likely would have gone ahead and patched the exe.

Interesting solution to the help file issue. I'll have to look into it more someday even though it breaks my "no VM needed" brag (which never applied to the help file anyhow). If it's small and modular enough, I might use it. More likely, though, I might just call a PDF instead of the help file. I have seen pro tools that look like they could decompile the help file for recompiling into a modern help file, but they were too expensive to touch (and I still need to look into the free HELPDECO). Perhaps easier to rebuild it from scratch anyhow (why hadn't I considered that til now??? copyright gray areas I suppose, or, again, time).

Not sure what you are doing for your 1366x768 users. For me, I can't just ignore them (especially considering the first patch was written on a 1366x768 laptop).

So, of all the above, what I might be interested in most is your WINMX replacement for WINMM, but it would only be helpful to me if built as described above so as to avoid distributing copyrighted stuff on GitHub. This limits me more than it does you with your own site.

I currently patch and test 4 versions of CS1 (1.0A, 1.0B/F, 1.0B/G, 1.1A) on Win7-32, Win7-64, Win10-64, and, occasionally, XP (not XP for the patch but for network games). That's a lot of testing time with each change to the patch. Thus, anything new has to be solid with all of that since I consider all versions and all OSs still viable. I can't kick any version out of that list without disappointing somebody -- not even 1.0A because it has different single-player strategies than 1.1A (which also showed the way for the 1.2 homebrew).

One thing that I think would be really cool is if someone expanded WON2.net to include more of Sierra's games. Or, resurrected Sierra's servers on Kali.net. But I have no idea if it would ever prove to be worth the effort (and, as always, I'm too busy). You would think WON2 would appreciate the increased exposure even if these games weren't used much on it.

from rbxit.

juanitogan avatar juanitogan commented on July 23, 2024 1

Sounds great! Most users probably won't care if you support 1024x768 and skip the 1360x768 mode. Since 1366 doesn't work and there is no guarantee that all 1366 GPUs support 1360 as well (although I would be surprised if one didn't), you have some excuses to just say "no" to it. My support for it was very optional for only those persistent enough to try for it. If they must have widescreen then they probably have options for one of the many other sizes.

And, yeah, the UI does get way too small beyond 1920x1080. If I had the source code, the first thing I would do is get rid of the 8bbp limitation and start redoing the terrain art (the UI and sprites at 256c doesn't bother me). But the second thing I would do is add UI 2x and 3x multipliers until new UIs could be built. I could start decyphering the disassembled C code I have but that could take a year to do -- and I have a few other freeware things I would do first before recompiling CyberStorm from minified C code -- like make an Atari 2600 game or port Wolfenstein to the Lynx.

I've made good progress on automating the RTF edits to overcome most of HelpScribble's stupid limitations (which could be useful for more than just CS), but it is slower work than I hoped because HelpScribble has a lot of faults and the workarounds aren't obvious, requiring a lot a trial-and-error testing. The RTF from helpdeco looks solid and there is just a lot of stuff HelpScribble skipped supporting. And I'm not talking just MVB stuff. The HLP/RTF from ES2 is even worse in HelpScribble than this CS stuff.

So, now I have a decision to make. HTML Help Workshop (HHW) imports the various links way WAY better than HelpScribble (and a tool called HHPMod can clean up the junky HHW filenames). But HelpScribble handles font, paragraph, and table styling better and also handles SHG files. But the styling in CS looks simple enough that a simple CSS will fix all of it (except on table sizing and alignment). Thus, I'll probably skip HelpScribble for all but some SHG work. Dunno yet.

Anyhow, I need to move on as well, so no guarantee when I'll wrap this up. Then, if I build new help files, I need to think about how to release them. Ugh.

from rbxit.

maximilien-noal avatar maximilien-noal commented on July 23, 2024

Wonderful ! Thank you very much ! :)

The WineVDM stuff is like NTVDM on 32 bit Windows : the user doesn't notice it. The app runs just like any other app, no emulator/VM window is visible, only the app's window. Really impressive stuff. Since the Help system covers a lot of topics about the game, and the game has no manual (or at least my "as new" copy does not), I figured that it was a shame to not be able to read and use it.

HELPDECO makes a huge mess of it whatever option I tried. I usually use HELPDECO to "unpack" old help file, and then recompile it as a HTML Help file with HelpScribble and the HTML Help Workshop. But it wasn't readable at all, and none of the presentation was preserved.

The AppCompat thingy is indeed putting the values in the Registry (HKCU or HKLM - Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers) like if I had used the Compatibility tab.
If there is a problem on my end or an enduser's, it is easier to tell them to untick a compat option rather than modify an SDB file and reinstall it.

Plus, modifications to the EXE can make it no longer recognized by the SDB (unpacking, for example).
Also, sometimes a test run in the App Compat Administrator won't work. With some games you have to install the SDB with an elevated command prompt in order to test it.

However, the compat' Tab is still extremly limited compared to all the shims the App Compat Toolkit 'unlocks'. Edit : And users can indeed wreck havok with the Compat' Tab in no time.

I had indeed a 1366x768 laptop until not too long ago. I kept it for testing. Choosing 640x480 for everyone was out of simplicity and easier testing. Also, I don't know if the game would be readable in FullHD or on a HiDPI or UltraHD monitor.

As the menus are not displayed at 640x480 however (unless Alt is pressed), I might revisit that. I'm thinking about a launcher explaining that the game is by default in 640x480, that higher resolutions are usually better and that it can enable it. And it would detect a 1366x768 display with WMI, and enable the fix if needed.

I tried to force 800x600 with the ForceDisplayMode shim as a midway solution, but then the game crashed as if 8bpp mode wasn't used.

from rbxit.

juanitogan avatar juanitogan commented on July 23, 2024

Ah, so when you said 640x480x8 earlier, you really meant that as the default and not just the 8-bit color part. Crazy. Yeah, I wouldn't be happy with that at all if I were one of your users. 640x480 is an annoying mode for many users especially because it can really mess with your interface until you reboot, in some versions of Windows with some apps. 640x480 was the minimum fallback for the low-budget users. The box art shows a 1024x768 screenshot. Thus, personally, I would default the minimum to the original maximum (which is just fun to say ๐Ÿ˜‰). I usually want to relive that past as a rock star and not as a peasant.

As I recall, DxWnd can help you force display settings, but that's a whole other layer of complexity to add -- mostly because DxWnd has a really hard to understand interface -- but your users don't need to see its interface. But since it can also replace SDBs and reg edits, maybe worth it. I had plans to go that route before I instead went for the byte code hack.

Yeah, the whole UAC elevated user thing with SDBs is the one downside to them. But I haven't received a complaint about the UAC dialog so I'm good with the SDB route. I test with reg files on occasion and have even poked those hidden shims directly into the registry with success but, in general, I don't like messing with the user's registry directly unless I have absolutely no other choice. Yes, the SDB does that for me, but it does it in a very transparent and reversible way. Mostly, however, the SDB is scriptable, API calls are not, and I find that keeping things scriptable keeps them more past and future proof. Scripting doesn't make for very friendly patches, but that's not my goal and I'm happy to leave that stuff to people like you while I work on other stuff. So, really, I thank you for trying to make this friendlier for users.

Also, I just don't see the other problems with SDBs that you do. They take a long time to learn and you can end up with multiple installations for one exe when building and testing them haphazardly but, once you get a handle on all that and define them to recognize the exes and/or dlls properly, I find them to be very solid -- even against exe mods. As far as working with users, it is easier for me to have them install a new patch with a new SDB than it is to try to get them to correct all their compat and registry settings on their own. That can be a real black-box situation where you never really know for sure what users of unknown skills are doing. In bug fixing I need as much control of the user's environment as possible. It saves time for me down the road versus trying to communicate things that always get messed up no matter what.

Anyhow, I think we've beat that topic to death. Whatever works.

I agree that the help file is pretty critical to this game which is why I think about the help issue often. I got curious about HELPDECO yesterday and why I downloaded it and never tested it. Thus, I tested it yesterday and had much different results from what you just reported. I got pretty far with it without much effort. I decompiled the MVB with the default setting. I don't know what an HPJ looks like yet but I guessed (based on vague hints in the helpdeco docs) that the MVP was very similar so I just renamed it to HPJ and opened that in the free version of HelpScribble. It came in quite nice. I can see I need to do some fairly simple find/replace with the RTF and it should come in perfectly. I tested that theory by modifying a couple pages, saving to CHM, then reprocessing that with HTML Help Workshop to clean out the HelpScribble dirt.

This is what I got last night with the help file in Windows 10:

image

Click on General Menu Options and I get the correct page:

image

All the links work out the of the box, I just need to fix the image tags. And some of the keyword tags.

That looks right on target to me, so the concept proved good. I figured I would script the RTF edits today and see how far I get. I will probaly have to script some HTML cleanup as well since I don't have the budget for stuff like HelpScribble pro while working on GRITS Racing and living off of savings. Because HTML Help Workshop can import HPJ projects, I might just script around HelpScribble (especially since I don't need to author anything). But it looks like it may not import any of the image/hotspot formats so not sure what I'll do there yet. Need to pull apart some HLP files instead of MVB files to get more intel on HPJ stuff.

I shouldn't be spending time of this either but I love the challenge and need small breaks from GRITS once in a while. And this has been bugging for a few years now.

from rbxit.

juanitogan avatar juanitogan commented on July 23, 2024

Unsurprisingly, I can see other cleanup needed as well such as tabular data and popup defs.

from rbxit.

maximilien-noal avatar maximilien-noal commented on July 23, 2024

V2 is up :

  • No more 640x480 resolution forcing

Although, like the first version of this automated setup, it is not public yet so the only user is me.

The launcher stuff and integration of the 1366x768 fix in case it is detected through WMI (or the option is selected) should follow soon enough. :)

Yes, I was too lazy to fix the RTF file. The help file is quite massive, so that's why I went the lazy route.

Indeed, MVB files seem to be very close to old HLP files (as HELPDECO doesn't claim to work with it, but can process them nonetheless). I'd love to reverse engineer it, but alas time is failing me. So much games to fix, only one life !

from rbxit.

juanitogan avatar juanitogan commented on July 23, 2024

@maximilien-noal - Finally got around to finishing the help file conversion. ๐ŸŽ‰ See Release 7.

from rbxit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.