Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012


  • Content count

  • Joined

  • Last visited

Posts posted by Kavawuvi

  1. 11 hours ago, Sunstriker7 said:

    Thanks for the word, I had no idea it was coming out already. I'm doubly stoked that it's free with Prime right at release, which season 3 was not.

    Yeah, definitely!


    Since season 3 is free with prime, now is the best time to watch it before the fourth season comes out.

  2. Here's a update on the month of November! Invader is now 0.20.2.


    Not much has changed, besides adding a new tag extractor and a new meta data viewer as well as fixing a lot of issues, of course.



    • New tool: invader-info - Displays meta data of a map file but can also show specific data (-T): build, compressed, compression-ratio, crc32, crc32-mismatched, dirty, engine, map-type-scenario-scenario-path, stub-count, tag-count, tags
    • New tool: invader-extract - Extracts tags from cache files
    • Added a new tag parser
    • invader-build: Added -N to rename scenarios when building
    • invader-build: Added -c for compress (forging CRC now uses -C)
    • invader-build: Strips default data from compressed animations now
    • invader-font: Added support for .otf files


    • Help menus have been rewritten
    • All tag definitions have been converted to .json format
    • invader-bitmap: Changed -m to -M to avoid confusion with --maps
    • invader-bitmap: The default bump height is now 0.026
    • invader-build: Shows map type when building
    • invader-build: Uses new indexer format (previous index files will not work)
    • invader-build: 32 byte strings are now zeroed out on copy
    • invader-build: The stub count is now shown
    • invader-build: Index parsing is now case insensitive
    • invader-compress: Strings are now zeroed out before copy
    • invader-compress: The default compresson level is now 19
    • invader-indexer: Changed index format to simply list tag paths with extensions


    • invader-bitmap: Fixed -P not working with non-.tif files
    • invader-build: Fixed indexed sound data taking up more space than needed in the tag file; this will reduce tag space usage a little more
    • invader-build: Fixed -g not erroring if an invalid engine was given
    • invader-build: Fixed sound looping tags' gain being set to 0
    • invader-build: Fixed some values in shader_transparent_plasma being set to 0
    • invader-build: Fixed biped A In, B In, C In, D In being set to 0
    • invader-build: Fixed some objects' flags being set to 0
    • invader-build: Fixed an undefined behavior issue with firing positions
    • invader-build: Fixed light tag durations not being properly multiplied by 30
    • invader-build: Fixed some sound tags not working as intended
    • invader-build: Fixed lens flare rotation scale not being converted properly
    • invader-build: Fixed setting mouth data and subtitle data to 0 size
    • invader-build: Fixed incorrect footstep sounds being used if not using an MEK-extracted BSP tag


    • Removed invader-crc. invader-info now fulfills the same exact purpose
    • invader-compress: Levels above 19 were removed; they are pointless and needlessly use extra memory

    Another feature added post-0.20.2 was colored diagnostic text output. I'm still figuring out how I'll do this for Windows. Basically, here are some screenshots:






    Lastly, I posted this earlier today on the Halo CE Reclaimers Discord, but basically, I'm considering removing dithering and nearest-neighbor mipmapping from invader-bitmap. Here's the whole spiel from the Discord I gave:

    [12:18 PM] Kavawuvi: So, next version of Invader, I'm considering removing dithering as well as nearest-neighbor mipmapping from invader-bitmap. Any thoughts?
    [12:20 PM] Kavawuvi: The problem is that the original point of having these bitmap tags having all of this data was so that it provided parameters for the bitmap tool (tool.exe) to generate the bitmap data.
    [12:21 PM] Kavawuvi: Previously, in order to satisfy this, I added more flags to specify how to generate bitmap data, and this included dithering and mipmap settings.
    [12:22 PM] Kavawuvi: The problem with doing this is that there is no way to know if a tag has these flags or not, since tags lack a versioning system once they're in the map file. For all I know, MCC uses the data where these flags are located for other purposes.
    [12:25 PM] Kavawuvi: Considering hardly anyone actually uses Invader let alone invader-bitmap, these features probably won't be missed anyway, so having them in here is more a liability than an asset in my opinion.

    Anyway, as always, you can download Windows builds from the Nightly Builds page. https://invader.opencarnage.net/builds/nightly/download-latest.html


    Stay tuned until next month for the next update!

    ST34MF0X, Tucker933 and Sunstriker7 like this

  3. These features are left to be added before Chimera hits version 1.0:

    • The rest of the controller features
    • Server history (currently only partially implemented - still trying to figure out how I'll get that going)
    • Server bookmarks
    • Spectate

    If and when Chimera hits version 1.0, I'm going to drop build 49 from the original post. Note that this build is the last version to support HAC2. Due to a large number of reasons, version 1.0 of Chimera does not support HAC2 (or vice versa).


    Some of you may be wondering: Where is Lua scripting on this list? Not to worry - I haven't forgotten about it. Features like Lua scripting are still planned, but I plan on making Chimera a server mod as well, thus if and when I add Lua scripting, then it will most likely be done while I develop the server portion. Since Chimera is a client mod, then many of the server features I plan on making should also work on client-hosted servers.

    (SBB) Storm likes this

  4. 5 hours ago, Enclusion said:

    Where do I get the server script and dll?

    If you mean for the anti-warp thing that stunt_man used to use, I don't have that anymore, and it was on a very, very old version of Chimera.


    That said, I am looking into making Chimera into a standalone server mod.

  5. I've gotten a few requests to add some other community-made tools to this list. Please note that, unless I can locate an up-to-date version of the source code, I will not add tools to this list.


    While I am happy that there are people in the community who are willing to create and share useful software, the goal of this project is to have open source software. I did not title this list, "Replacing the Halo Editing Kit with community-made software".


    Also, not only is closed source community software out of the scope of this project, but I personally consider using community-made closed source software to actually be worse than using the Halo Editing Kit regardless of how much better the actual software is. The reason for this is because the software exists and, if it's a replacement, it is often better than the Halo Editing Kit equivalent, thus potential contributors will be less motivated to write an open source replacement, and this effectively screws over the community when everyone has to rely on it.

    Sunstriker7 and ST34MF0X like this

  6. A mini-update: I converted the tag definitions to the more parsable .json format. This won't significantly impact Invader's performance since these definitions will be transpiled back into C++ headers. However, it will allow me to tag parsers.


    As a test, I converted them into Eschaton plugins. I use Eschaton for viewing tag data and finding offsets (which for building cache files is VERY useful), and I've found Sparky's plugins to be fairly inaccurate in some cases. Since my definitions are basically used to build cache files, I figured these would actually be more complete and more useful for my purposes. Here's a screenshot of Eschaton with them:




    As usual, I will post an update to Invader next month. To give you an idea of the size of the update, this month is only half over and there are already a number of changes already logged in the changelog. These changes over 80 commits with about 40 more on the way in a separate branch, and there have been several version bumps.

  7. 2 hours ago, DSalimander said:

    Well scenery mods don't sync over the internet.

    Are you sure?


    This one did sync over the Internet. In fact, those screenshots are screenshots of a client joining the server, and the client is using a totally stock map. No custom netcode, scripts, etc. were used. In fact, if you were to join it with no mods whatsoever, you would still see those logs.



    One of the first mods I ever made was a huge floating racetrack on Bloodgulch made entirely out of those logs. Halo could only render like half of it at any given time but it was still cool.

    The good ol' 256 visible object limit. HAC2 and Chimera now raise that to 1024. Too bad your frame rate tanks if you have a lot of objects, because Halo isn't very efficient at rendering objects.

  8. 4 hours ago, DSalimander said:

    Seeing you mention interpolation problems reminded me that a glitchy interpolation issue in newer builds kept me from trying the newest Chimera. In general I'm lost with what's been added and can't remember what other bugs kept me from switching from -366. I looked around for a nice overview of all the commands/features/bugs of the latest Chimera. The OP is well formatted but needs updating. I checked Github since I assume you're probably more active there and saw that some of the command usage arguments/parameters/variables are a little vague.


    And I can't really tell if Github has the latest information either, but that might be because I'm unfamiliar with how Github works.

    The OP only applies to build 49 of Chimera. Technically this is not the latest version, and the version on GitHub is actually almost completely rewritten.

    I originally kept build 49 here as a sort of "stable" release, and all builds after that were newer versions but were less tested. When I start posting a public alpha of 1.0, I'll update the OP.


    4 hours ago, DSalimander said:

    Does this want 0-1 decimal values or 0-255 integer values-
    chimera_console_prompt_color [<red> <green> <blue>]

    0-1. I suppose I could put that in the description.



    No idea what this command wants-
    chimera_deadzones [deadzones]

    0-1, where 1 = stick is all the way out and 0 = stick is in the center. I suppose I could put that in the description.



    I assume this is supposed to be a boolean toggle but it doesn't say-

    It doesn't take any arguments. It simply turns on a bunch of features at once.



    Reading the description on this one really confuses me-
    chimera_fov [fov]

    50 = 50 degrees horizontal - Use this if you don't plan on changing aspect ratios.


    50v = 50 degrees vertical - Basically, it automatically adjusts horizontal FOV so the vertical FOV calculates to 50 degrees. Use this if you switch between aspect ratios (e.g. 16:9 fullscreen and 32:9 splitscreen).


    auto = Use this if you want your game to look like the Xbox version's FOV.



    This sort of makes sense but a better idea of ideal values could help-
    chimera_model_detail [detail]

    It's basically just a scale, where 1 = 1x, 2 = 2x, etc.


    1 = LODs appear as designed in the map

    2 = Higher quality LODs will start to appear at half their pixel threshold

    4 = Higher quality LODs will start to appear at a quarter of their pixel threshold


    There isn't any ideal value for this, though. The problem is that if you set this to anything higher than 1, then glitches like the headless chief glitch can appear when you play The Pillar of Autumn. Therefore, it's probably better to not touch this unless you just play multiplayer and you find LOD pop-in to be annoying, or you don't care about the headless chief glitch. So, I suppose if you just play multiplayer, you could set it to 10 and you'll always see the highest LODs of objects with no pop-in.



    For this one, I would specify that it's the index you want, not the name. I see that's why you used angle brackets on it but that's pretty subtle-
    chimera_player_info <player>

    I'm still not quite sure how I plan on taking <player> as an argument.


    Anyway, thanks, I'll look into updating the readme.

    Tucker933 and ST34MF0X like this

  9. I've fixed a few interpolation problems, and I've reimplemented maps in RAM and map compression using Invader's map compression for this. Map downloading is coming soon, too, but I need msalerno1965 to set some things up, first.


    If anyone wasn't aware, the password to the last build was cookies. I've decided to make this next one's problem simple: an arithmetic problem. I'll also include a PASSWORD.txt which will have hints to the password.


    If you want the files, you will have to either:
        a) Compile Chimera from source (https://github.com/Kavawuvi/chimera)
        b) Solve the below question (NOTE: the question may change; answers will
           be posted on Open Carnage eventually)
        c) Get Chimera from somewhere else
    Here's the question!
        What is 20 - 12 / 4(4 - 2) x 2
        Note: x is multiplication and / is division. Order of operations matters.
    Note: All answers only contain lowercase letters and numbers.


    Also, when Chimera goes into open alpha, I'll stop requiring a password.


    Until then, good luck.




    UPDATE: I fixed a bug where servers weren't joinable if you had maps in RAM enabled.

  10. Here's a monthly update for the progress made in October. I hope everyone had a good Halloween last night.


    Invader is now 0.15.2, and there have been a number of changes, including the new invader-compress program. View this topic for more information.



    • invader-archive: Now accepts filesystem paths for the tag if -P is passed
    • invader-bitmap: Now accepts filesystem paths for the image input if -P is passed
    • invader-build: Now accepts filesystem paths for the scenario tag if -P is passed
    • invader-dependency: Now accepts filesystem paths for the tag if -P is passed
    • invader-font: Now accepts filesystem paths for the the TTF file if -P is passed
    • invader-string: Now accepts filesystem paths for the text file if -P is passed
    • invader-crc: Now prints a warning to stderr if the CRC32 in the cache file header is wrong
    • invader-crc: Now errors with a useful error message if a resource map is loaded with it
    • invader-build: Halo Demo / Trial maps can now be built (-g demo)
    • invader-crc: Halo Demo / Trial maps can now be used
    • invader-build: --no-indexed-tags was renamed to --no-external-tags
    • invader-build: Building retail and demo maps now uses the resource maps
    • invader-build: The gain modifier for sound\sfx\impulse\ting\ting.sound is now changed to 0.2 if building for retail or demo and 1.0 otherwise
    • invader-build: Now shows the target engine of the map
    • invader-compress - Compresses cache files using the Zstandard algorithm
    • invader-resource: Added --retail / -R which will allow you to build retail maps
    • invader-build: Copying TagString data now checks for string overflow
    • invader-crc: Works with maps compressed with invader-compress
    • invader-indexer: Works with maps compressed with invader-compress


    • invader-build: The diagnostic messages now show tags using external raw data when building a retail or demo map
    • invader-dependency: Now uses -R instead of -r for reverse dependencies
    • invader-dependency: Now uses -r instead of -R for recursive dependencies
    • invader-build: Bitmaps and sound data are now shown separately next to their combined total in the diagnostic output
    • invader-build: The number of tags that could be cached/indexed is now shown
    • invader-archive: Now handles exceptions instead of calling abort() while either compiling or parsing cache files
    • invader-build: No longer errors when orphaned model nodes exist
    • invader-bitmap: Made detail fade factor closer to tool.exe's output - still needs more work but it's remarkably close


    • invader-build: Fixed decals with null references crashing the game
    • invader-bitmap: Fully implemented and fixed 3D textures
    • invader-dependency: Fixed an issue where it didn't include a null terminator, causing some tags to fail to open
    • invader-archive: Fixed an issue where some stock HEK .gbxmodel tags tried (and failed) to be archived as .model tags
    • invader-bitmap: Fixed an issue where sprites spanning the entire width wouldn't be detected
    • invader-archive: Fixed an issue where the root tag would have its full system path included when using -s

    As always, you can get the latest build at https://invader.opencarnage.net/builds/nightly/download-latest.html or view the changelog at https://github.com/Kavawuvi/invader/blob/master/CHANGELOG.md.


    If anyone has any comments, suggestions, or bug reports, feel free to reply here. Otherwise, see you next month! Stay warm.

  11. 7 hours ago, ShikuTeshi said:

    I've seen gameplay and the depth of field kills it for me. I can't watch someone play with that going on.

    I sort of agree. Being able to turn off or at least tone down the depth of field would be really nice. It doesn't ruin the experience for me, but it is a little excessive in my opinion. Also, again, analog sticks are being made to do what the directional pad does 100x better.


    This is a great game, but I think they should address these things in a patch. Every other problem I have with the game that I can think of, besides the frame rate issues, isn't necessarily the remake's fault.


    5 hours ago, Sunstriker7 said:

    I ended up deciding against it at the time being because i need to afford other things right now but it's on my radar still. Thanks for the good review man.

    No problem. You might be able to pick up a used copy in a few years from now for a good price. I get plenty of cheap stuff off of eBay and Amazon this way.

  12. 40 minutes ago, Sunstriker7 said:

    Even though there's multiple buttons bound can you still only perform two actions at once?

    You can only bind two items, but you always have access to pegasus boots, shield, and sword.



    I don't know what to think of the screen changes either. In the original game there are certain dungeons, for example, where even though there's one big room they still break it up into something like a 2x2 of screens and if they just made it one big bounded room it would not necessarily make it better. Did they make those changes very selectively from a gameplay perspective or was it pretty much everywhere?

    Most rooms use a fixed camera just like before. It's only the overworld and a few larger rooms which use the bounding box camera, instead.



    Also, there's pretty brief sidescrolling portions in the original game. Are those still there too?

    Yes. The layout of everything is mostly the same as the original game.



    I'm a massive fan of the original game and played it on the original gameboy. It's literally the first game I ever played. I go back every few years and play it on emulator. I debated getting a switch just for this game lol.

    I don't know if I'd buy a Switch just for it, but it is a really good game. Maybe check out Digital Foundry's review as they do a good overview of the technical aspects, if you're interested.



    Sunstriker7 likes this

  13. Before you read, note that I did play a little bit of the GBC version of the game, but only up until the first dungeon. All of my other knowledge of the GB/GBC version game comes from watching gameplay. However, I did beat the Nintendo Switch version. Also, this review contains no spoilers.



    The Legend of Zelda: Link's Awakening is a remake of a game of the same name from the Game Boy and Game Boy Color era, featuring the traditional top-down perspective from classic 2D games like it. The main difference is that everything is presented in 3D, kind of like The Legend of Zelda: A Link Between Worlds on the Nintendo 3DS except with a toy-like art style. The original game is, indeed, a classic, with the cruft of classic games that go along with it, and this remake is no different.




    Link wakes up on an island. To leave the island, he must wake up the Wind Fish. To do this, he has to defeat all of the Nightmares and obtain all of the Instruments of the Sirens. To do this, he has to beat all of the dungeons, similar to most other Legend of Zelda games. Unlike most other Legend of Zelda games, Zelda is absent from the entire game, even in the ending.




    Dungeons play very similarly to The Legend of Zelda: A Link to the Past. You have to find keys, solve puzzles, obtain items, and find the Nightmare Key to finally unlock the door to the boss of the dungeon. Some dungeons also have mini-bosses which provide a fair challenge, but to obtain the Instrument, you must defeat the boss (the Nightmare). Unlike A Link to the Past, dungeons contain subsections that involve 2D platforming.




    In addition to obtaining items inside dungeons, Link must obtain items outside of dungeons in order to progress. Much of the content is completely optional, such as three bottles (captures and holds fairies - Link's only manual healing item), two tunic upgrades (reduces damage taken), heart pieces (increases maximum health for every 4 pieces), the Boomerang (ranged attack like the bow), and medicine (heals Link to full health if he dies - fairies do NOT do this unlike ALttP). I managed to complete the game with the starting green tunic, 15 hearts, one bottle, only half the seashells, and no boomerang.


    Some required items must be found outside of the dungeon, including the Bow which is sold at the shop for an obscenely high price. You can steal from the shop, but if you do, your name gets permanently changed to "THIEF" and the shopkeeper will instantly kill you the next time you visit the shop regardless of if you have medicine, though he won't kill you when you re-visit after that. Note that there is a secret ending that you can see if you survive without dying, so maybe don't steal from him. You also have to go through a trading quest where you have to obtain an item and trade between different NPCs throughout a good part of the story.


    There are also other collectibles: seashells, figurines, and dungeon tiles. Seashells are used for obtaining items from the Seashell Mansion. Figurines are used to decorate rooms, and there are many of them - some of them are Mario universe cameos. Dungeon Tiles are used for Chamber Dungeons. If you want to 100% the game, there's obviously a lot to stuff to find. If you hate doing this stuff, though, then this game isn't too hard on doing this stuff if you just want to beat the game.


    Chamber Dungeons


    Chamber Dungeons are a new feature of the game (the "gimmick"), and this consists of a simple dungeon editor. This dungeon editor allows you to place rooms you've collected into one big dungeon. You can do things like make a boss rush dungeon or a place to get money at a steady rate. Like regular dungeons, each dungeon needs to have a Nightmare for you to defeat in order to win. Doing any of this is completely optional, but you can obtain some rewards for doing so. Unfortunately, you can only place premade rooms. You can't create rooms, and the amount of control is limited. Also, you can't share dungeons.



    Game Controls


    Also, the game controls are interesting to say the least. Before, every action that didn't involve moving or interacting had to be bound to either A or B, but this game changed it so the sword (attacking), shield (blocking), power glove (grabbing), and pegasus boots (dashing) are always usable. I wish they expanded upon this and made the Roc's Feather (jumping) permanently bound to a button, too, as I found that I had this item bound for most of the game anyway, but this is still a very nice change.


    This game uses 8 directional movement, which is perfect for the D-pad. Unfortunately, the D-pad does nothing in-game, and instead, the left analog stick is used. They really should have used the D-pad or at the very least both for movement, instead.


    Art style


    As I said before, this game has a sort of toy-like aesthetic to it. Plenty of things have a slight shine to it as if it was made out of plastic. At first, I thought it was strange to look at, but it kind of grew on me. In my opinion, this game overall does it well, but the depth of field effect can be a little overboard.

    That said, it does sometimes stay with the original source material a little too much. The game is still a sort of grid-like system, which while it does copy the original game, I think it copies it a little too well. For example, many pits you can fall in are still circular shaped tiles like in the original game when they could be actual connected pits. This doesn't detract from the game in my opinion, but I wouldn't have complained if they changed this.


    The game has also been changed so a lot of places take up more than one screen with the camera following Link in a sort of bounding box, such as in the overworld or in some of the dungeon rooms. Otherwise, many dungeon rooms take up one space with the camera at a fixed position until Link goes to a different room. The game handles this well, in my opinion.




    This game features an orchestral version of the original sound track. There is a small variety of music in the game depending on where Link is or what he is doing, including music for each dungeon. In my opinion, I think it all complements the visuals very well, but I recommend you listen for yourself.



    How well does it run?


    Since it's a console game, you might be wondering if it runs poorly. It doesn't run poorly, but it isn't flawless. This game runs at 60 frames per second with a dynamic resolution, and I personally appreciate this. The dynamic resolution scaling is sometimes noticeable, but only for a moment when you're entering rooms, so it's not really intrusive. Unfortunately, the game can intermittently drop to 30 frames per second when going between different locations. For example, if you are inside a house and you go outside, or if you're going from the outskirts to a desert or a forest, it can drop in frame rate momentarily. There is also one area in the game, a swamp, where the game does not run at 60 frames per second the entire time. It is important to note that I exclusively played this game in portable mode, but people who have played this game with their Switch docked have encountered the same exact issues.


    I recommend watching Digital Foundry's review of the game if you want more information on performance, as they did an excellent performance analysis (the performance analysis is at 15:25).





    Overall, despite the few issues the game has, this is a great game, and if you're a fan of The Legend of Zelda series, I highly recommend picking this up if you have a Nintendo Switch.


    Is it was worth the $60? For what you get, it's no Breath of the Wild, but you can sink a lot of hours into this game on just finding all of the items, and the main story isn't exactly short. Perhaps if you're into completing the game, maybe! However, if you want to get this, you could buy a used copy or wait for it to go down in price if you want to buy a retail copy. However, there are plenty of games out there that have a similar amount of content which cost much less than $60, so keep that in mind.



    • Lots of new content
    • Improves upon the original game without straying from the original source material
    • Excellent soundtrack
    • Runs at 60 FPS


    • Analog sticks should not be used for digital input
    • No option to turn off depth of field
    • Some performance issues

  14. Nice! You should consider using a service such as SoundCloud so people can listen to the sounds before downloading a >100 MiB archive of HEK tags.


    Also, that archive also has a lot of empty directories, so you might want to look at that to make sure you aren't missing anything. If you aren't, you should remove those so things are easier to navigate.


    Lastly, your topic could do with a description of the sounds. What inspired you to make your sounds? Is there a sort of theme? How did you make them? These are just some ideas for your description if you need any.

    Tucker933 likes this