Duke4.net Forums: NY00123 - Viewing Profile - Duke4.net Forums

Jump to content

Hide message Show message
Welcome to the Duke4.net Forums!

Register an account now to get access to all board features. After you've registered and logged in, you'll be able to create topics, post replies, send and receive private messages, disable the viewing of ads and more!

Reputation: 128 I have a solid reputation
Group:
Members
Active Posts:
286 (0.08 per day)
Most Active In:
Everything EDuke32 (108 posts)
Joined:
07-May 09
Profile Views:
8,483
Last Active:
User is online 30 minutes ago
Currently:
Viewing Topic: Bio Menace beta released!

My Information

Age:
30 years old
Birthday:
June 26, 1988
Gender:
Male Male

Contact Information

E-mail:
Private
Website URL:
Website URL  http://ny.duke4.net/

Latest Visitors

Posts I've Made

  1. In Topic: Bio Menace beta released!

    23 August 2018 - 11:31 PM

    Hey, I've briefly tried your patch now. Very great work, it really seems to do its job!

    Interestingly, it even loads the original states of help messages to display; That is, it remembers, for each specific help message, if it was internally set as "shown". This also has an impact in case you later wish to start a new game, which is expected.

    As for the color codes and more, I suppose this can be taken care of, if the relevant global variables are found, by modifying the gaming saving/loading routines (quite sure something similar is done for separate global variables in the Keens, or at least Keen 5). Maybe the help messages code pieces can be replaced.

    Also, on the following comment from your patch:
    - respawn coordinates are not saved, so Snake will respawn at the level
    entrance when he dies after loading the game


    I know this probably shouldn't be done, but I've briefly thought (as an evil joke) that maybe you can remove the checkpoints, and revert to Keen/BH's behaviors of a full level reload, ahaha.

    Quote

    Unlike Bio Menace, Keen 4-6 (as well as Catacomb 3-D) have a StopMusic function that stops the music and makes all music memory purgable. The function is also present in Bio Menace, but it's actually just an empty stub.


    Hmm, it's possible it became an empty stub since it was mistakenly assumed to become redundant, with music playing for all time.
    Not surprisingly, this is also the case in the BH prototype (the function preceding StartMusic is an empty stub).

    Quote

    By the way, I'm not happy with the 20+ kilobytes of memory that BMxPATCH uses. That makes it pretty much impossible to use the patches on actual hardware, due to the insane memory requirements of some of the later levels in BM1 and BM3. Is there a way to let BMxPATCH generate a fully patched standalone EXE?


    Yeah, I think this is a concern I already heard or thought about beforehand; Especially since a few later (unofficial) revisions of BMxPATCH may actually be a bit larger in size.

    I don't think BMxPATCH can do what you're asking for, at least not directly. "%dump exeimage.img" can be used to dump an image of the EXE, with all preceding patches applied; However, this also has all segment pointers corrected, based on the EXE's relocation table.

    I think it's possible to modify CKPatch to more-or-less get rid of itself, by behaving somewhat like that internal UNLZEXE stub; That is, load the EXE to memory, patch it, move remaining used CKPatch code past the EXE, push the EXE back, remove more unused CKPatch code (and possibly do other clean-ups) and then finally jump to the EXE's starting point.

    Ignoring other technical hurdles with the above, though, there's also this one specific issue. CKPatch has a alternative int 0x21 handler for file redirection, in REDIR.ASM:Int21Handler. This can be used for changing certain filenames, e.g., "%gamemaps custmaps.ck4" for Keen 4. I'm not entirely sure why was this added instead of merely patching the file names. Maybe since this makes it possible to use longer file names?

    Either way, this is a piece of code that will probably have to remain in memory, at least for compatibility with existing patches (and only if actually used).

    Quote

    Edit: By the way, is it possible that the 7725 bytes you removed from the EGAGRAPH.BH1 file were introduced when the game merged EGA1.BH1 and EGA2.BH1 into EGAGRAPH.BH1?


    This is actually a good question. Afraid this isn't related, though. For any comparison in mind, I took _1galaxy.zip and then unpacked the files with K4E1-ASP.EXE and K4E2-ASP.EXE. These included a 400000-bytes long EGA1.CK4 and a 120581-bytes long EGA2.CK4, respectively.

    As previously stated, most graphics can be recognized, even if there are corruptions. While I mentioned the sprites beforehand, the situation is even better with the 16x16 tiles, for instance. Only a few of the unmasked 16x16 tiles have corruptions, and it's otherwise clear they're all the same as in BM2. As for the masked tiles, some of the very last tiles (the ground/trees/ship in the very beginning of BH1/BM2) are missing, since they're technically out of the bounds of EGAGRAPH.BH1. However, according to EGAHEAD.BH1, the same tiles are marked as "empty" (i.e., no tile data) as in BM2, and again I'm almost sure there was no change to the graphics.
  2. In Topic: Bio Menace beta released!

    23 August 2018 - 02:40 PM

    OK, I've just added a few sprite offsets files to my repository (https://gitlab.com/N...1bda0b337d/misc).

    To summarize:

    - After renaming egagraph_sprite_shifter_offsets_MOD.txt -> egagraph_sprite_shifter_offsets.txt, you can view the partially corrupted sprites with the sprite shifter, using the *original* corrupted graphics' files. This refers to the EGADICT.BH1, ORIGINAL\EGAGRAPH.BH1 and ORIGINAL\EGAHEAD.BH1 files from Jul 13 1992.

    - egagraph_sprite_shifter_offsets_ORIG.txt is actually the file on which the above is based. You'll have to remove 7725 bytes from offset 0x16308 of the corrupted EGAGRAPH.BH1 file. Why was this modified file originally used with the sprite shifter? Because this way, you could use it with the unmodified EGADICT.BH1 and EGAHEAD.BH1 files (from 1992) in order to partially recognize graphics in-game, and similarly export these graphics with ModId.

     K1n9_Duk3, on 23 August 2018 - 01:54 PM, said:

    To prove that what I said above is true, I decided to write some patch scripts that allow you to save and restore the game at any point in the level (for the 1.1 freeware release of Bio Menace). While I was testing the patches, I also decided to investigate what causes the freezes when loading a game in the Bio Hazard prototype/beta.


    Wow, it is great to see that you got these up! Are these intended to be used with BMxPATCH.EXE? Also, this is probably quite obvious, but I suppose the 32-bit far pointers are still written as-is, the same way it's done in Catacomb Armageddon?

    Quote

    As it turns out, the crash/freeze has abolutely nothing to do with the data that's being loaded and saved. Actually, the root cause of this issue is still present in the final release - and it might have been part of the reason why the game was discontinued and eventually released as freeware.


    This is interesting. I already saw you writing about the music-related memory leaks in that other PCKF thread on Bio Menace (https://pckf.com/vie...?p=87624#p87624). I also recall having a few problems with these beforehand; It's possible I can see the reason now.

    Thus, a call to CA_SetAllPurge was added as a workaround, only that it can lead to a hang if no game was started. And this might be a reason for the removal of mid-level saved game loading (and hence, the move to checkpoints), you're saying.

    Question is, why weren't the memory leaks an issue in Keen 4-6, then. Maybe because no music is played in the menu? (A track is played in Keen 5's "Help" section, though.)

    Quote

    PS: If anyone wants to have a version with mid-level saves (and without memory leaks), let me know. B)


    It probably won't hurt to upload a .PAT file's contents to somewhere, if you have the place for it, heh.
  3. In Topic: Bio Menace beta released!

    17 August 2018 - 06:02 AM

     K1n9_Duk3, on 16 August 2018 - 02:51 PM, said:

     Fantinaikos, on 16 August 2018 - 08:20 AM, said:

    This beta may be open the road for some serious Bio Menace modding? (source code allowing)


    I'm not sure what you mean. As far as I know no source code was ever released for Bio Menace (final or beta).


    Quote

    most of the "unique" features that the demo has code-wise (food & potion meters, carrying ammo and grenades over from the previous level) could be added to any other release if you know enough about assembly/machine code and patching.


    That's true, Bio Menace was never open-sourced in any form. The closest I can think of which was properly open sourced, was a combination of about half of the Catacomb 3-D sources (more precisely the "ID Engine" components) with Keen Dreams' game code. (There's also enough RE'd Keen 4-6 code.)

    Even then, it should be feasible to import certain features of BH1 into BM2 with patching. Game saving might be quite non-trivial, though. Maybe it's doable by taking care of the saved 32-bit far pointers, while taking advantage of unused space for additional code.

    Quote

    Most of the graphics in the beta are the same as in the final release (in part because some of the corrupted graphics had to be imported from the final relase to make the beta playable)


    Yeah, it's true that most of the graphics are the same. As for importing them from the final release, interestingly, I have evidence that most of the graphics in the corrupted files remained the same, including the sprites (almost all player sprites are an example of an exception). In fact, with one of the aforementioned EGAGRAPH chunk shifters (the one for sprites), it's possible to recognize the sprites in the corrupted data, and see that most of them are more-or-less the same. I shall upload to the same git repository (on GitLab) a sprite shifter input txt file letting you view them.
  4. In Topic: Shadow Warrior corner

    16 August 2018 - 09:51 AM

    I don't want to say more at the moment, not even answering 'yes/no' questions, but to answer the following:

    View PostPhredreeke, on 08 August 2018 - 03:41 PM, said:

    Is anyone working on anything for SW? I know daMann, Tekedon and Spill are mapping for Blood, and Trooper Dan is working on Alien Armageddon for Duke, but I've not heard of any projects for Shadow Warrior.

    I suppose I've recently been involved with something, on-and-off. ;)
  5. In Topic: Bio Menace beta released!

    10 August 2018 - 12:55 AM

    Side-note: If I don't see more diffs between BH and BM being mentioned here or in the PCKF, then I might add at least some of them on my own later :)
    (I suppose the TCRF is a better place for this, though.)

    Let's add the following. As stated by me in RELEASE.TXT, ModId was used for importing and exporting graphics. In addition, a really simple modification of a part of ModId's code, BMP256 (which in turn is a modification of BMP16 from (L)ModKeen), was used for the EGA chunk shifters. In a retrospect, maybe BMP16 was sufficient, but this is the situation.

    ModId was created after a few instances of forking. Here's a rough summary (LModKeen II also integrated Fin2Bmp):

    ModLatch -> ModKeen -> LModKeen (I && II) -> ModId

    Some credits collected from the KeenWiki page about ModKeen, as well as a few other sources:

    Andrew Durdin - Wrote ModLatch, later morphing into ModKeen. Also coded Fin2Bmp, used for Keen 1-3 finale/preview screen editing, eventually getting merged into LModKeen II.
    Anders Gavare and Daniel Olson - Their assistance for the work on ModKeen.
    David Gow - Addition of Keen Dreams support.
    z-1 - Win32 port.
    Shadow Master - LModKeen, a Linux fork of ModKeen.
    Malvineous - Script and mini-program converting lowercase filenames to uppercase, used by one of the (L)ModKeen devs. (Addendum: Let's also mention his vast experience with handling different DOS games' file formats!)
    Szevvy - Information about Bio Menace data files.
    Levellass - The addition of Shadow Knights and Dangerous Dave 2 support.
    lemm - Forked LModKeen into ModId, in order to support arbitrarily formatted xGAGRAPH files for arbitrary games and mods (the original intention being usage with source mods).
    furan - His contributions to ModId.

    It's also a good chance to mention Levellord, Levellass and lemm, as well as KeenRush, Andy Durdin and David Gow, for their EXE patching skills and related!

Friends

Comments

NY00123 has no profile comments yet. Why not say hello?


All copyrights and trademarks are property of their respective owners. Instead of reading this text, you could be playing Ion Maiden! ;) © 2018 Voidpoint, LLC

Enter your sign in name and password


Sign in options