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

Kavawuvi

Administrator
  • Content count

    4,201
  • Joined

  • Last visited

About Kavawuvi

  • Birthday April 10

Extra Information

  • Gender
    Male
  • Contributed
    $100 (US) to Open Carnage
  • Raffle Victor
    One-time

Computer Details

  • Name
    Dark Citadel
  • Central Processor
    AMD Ryzen 5 2600
  • Motherboard
    MSI B450M MORTAR
  • Graphics
    MSI GeForce GTX 1070 Gaming 8G
  • Memory
    32 GB [2x 16 GB] G.Skill Ripjaws V Series
  • Storage
    500 GB Samsung 970 EVO
  • Power Supply
    EVGA SuperNOVA 650 G3
  • Case
    Fractal Design Node 804
  • Display
    Acer G257HU smidpx 25" 2560x1440 60 Hz
  • Keyboard
    MAX Keyboard Nighthawk X9
  • Mouse
    Logitech M510 Wireless Mouse
  • Operating System
    Arch Linux

Recent Profile Visitors

80,769 profile views
  1. With invader-sound being made, it was only a matter of time before I made this topic, too. Formats With sounds, you have three options for formats: 16-bit PC, Ogg Vorbis, and Xbox ADPCM. It's worth noting that the tag definitions also list IMA ADPCM, but Halo does not appear to actually support this (it's mostly the same, quality and bitrate-wise, as Xbox ADPCM), so I'm not going to address that here. In addition to that, you can choose between mono or stereo and you can choose between 22.05 kHz and 44.1 kHz. Lastly, you can choose to split your permutations into subpermutations (more on that later). 16-bit PCM 16-bit PCM (aka “wav” in tool.exe) is the only uncompressed format with each sample being stored as a 16-bit integer. If your source data is 16-bit or 8-bit PCM, then using this is lossless. Also, 16-bit 44.1 kHz stereo is what is popularly referred to as “CD Quality” as this is what many audio CDs use. Note, however, that Halo checks the main “compression” value in the tag for “none” and disables the sound tag if so. To disable this check without changing the value, you will need a mod (e.g. Chimera 1.0). Also, this format has an extremely high bitrate, and a few seconds of this can take up over a megabyte, and longer lengths can potentially make the tag no longer work in tool.exe or guerilla.exe. Therefore, it is not recommended to use this for long sounds like music. Pros No loss in quality Fast Cons Bitrate is extremely high Requires mods to disable a check Ogg Vorbis Ogg Vorbis is the only format that supports a variable bitrate, storing the samples as compressed Vorbis streams in an Ogg container. Ogg Vorbis, therefore, provides a good, configurable tradeoff in terms of bitrate in quality, with 0.5 not only providing much better bitrate and quality than Xbox ADPCM while also being considered “transparent” (or unnoticeable quality loss) provided your input is also lossless. The drawback, however, is that Ogg Vorbis is not very fast, though on modern CPUs, this is unlikely to be a problem. Note that it is highly recommended that you use a newer libvorbis encoder than the one that tool.exe uses (which is version 1.0 from 2002, goodness!). Invader uses a very recent version (1.3.6 from 2018 – and you can use newer versions when they come out!), giving you over a decade and a half worth of improvements to the reference encoder in regards to performance and efficiency. Also, it is highly recommended that you do not use tool.exe to encode your Ogg Vorbis tags, as tool.exe uses splitting sizes that are way too high, resulting in music and sounds cutting out even on stock Halo. In the section after this, I’ll talk about splitting and why you might want to use it. Pros Excellent bitrate Best quality/bitrate tradeoff when using reasonable settings Can specify a quality setting Cons Lossy Xbox ADPCM Last and certainly also least is Xbox ADPCM. Xbox ADPCM lossily compresses at a fixed bitrate (so it’s sort of like DXT for audio!) and it’s also fairly fast to decode. In fact, the original Xbox had hardware dedicated to decoding this. However, Halo PC has to decode this audio in software, so it’s not quite as fast. Also, the bitrate tradeoff is not very good, sounding worse than 0.5 Ogg Vorbis while also handing in a much worse bitrate. The artifacts from ADPCM can sometimes also completely change sound effects, and this is notable when comparing the back menu sound from the Halo PC installer (uncompressed) to what is in the main menu (Xbox ADPCM). Xbox ADPCM originally required pirating the codec in order to use it with tool.exe, but now there is an free and open source implementation which Invader and Mozzarilla both use. Pros Fast on Xbox consoles which actually have hardware support for it Cons Lossy Poor bitrate tradeoff Not very good quality Which one should I use? For a 44.1 kHz stereo sound, these are the bitrates you will typically get: 16-bit PCM – 1411.2 kbps Xbox ADPCM – ~390.8 kbps Ogg Vorbis (1; max quality) – ~500 kbps on average Ogg Vorbis (0.5; transparent quality) – ~160 kbps on average Ogg Vorbis (0.3; Oggenc default quality) – ~112 kbps on average FLAC (5, 16-bit PCM) – ~928 kbps on average Note that, unless you use invader-build or a modified tool.exe, maps created over 384 MiB will not work with Halo. Otherwise, the limit is 4 GiB as this is the highest value an unsigned 32-bit integer can address. Here, 16-bit PCM has the largest size, and using this can easily blow a map over 1 GiB depending on how much sound you use. Therefore, you may want to opt to use this for smaller sounds and use a lossy format for music. Xbox ADPCM is a lossy format, and it is the only lossy format that tool.exe doesn't screw up on. Unfortunately, the quality-to-bitrate tradeoff is poor, so you really shouldn't use it unless you're making assets for your Xbox. Ogg Vorbis is a lossy format, providing much better quality than ADPCM at a much better bitrate, making it perfect for music and dialogue (and probably anything else). However, tool.exe’s implementation is outdated as well as botched, and Mozzarilla does not support Ogg Vorbis, so you need to use invader-sound, Sample Rates Now that we have the formats out of the way, let’s get into sample rates. Halo supports two sample rates: 44.1 kHz and 22.05 kHz. Note that sample rate does not mean pitch but rather the number of audio samples played back in a second in an audio channel. So, for 44.1 kHz, that's 44100 samples per second per channel. 44.1 kHz This is the better sample rate of the two, and it is very noticeable, especially with music. However, it also has twice the bitrate of 22.05 kHz. Halo also will not use 44.1 kHz with mono sounds, so if you want a mono sound, you will need to use a 22.05 kHz tag. 22.05 kHz This is the worse sample rate of the two. It won’t work very well for music, resulting in it sounding muddy, but for dialogue as well as some sound effects, it's not too bad. Unfortunately, it is the only option for mono sounds that Halo supports. Splitting Splitting is done by checking the flag for splitting long sounds into permutations. What this does is tells the tag generator to split your tags into chunks before encoding. The reason to do this is because Halo is very aggressive when it comes to sound loading/unloading, and having a sound that is too large may result in Halo unloading the sound earlier. Invader and tool.exe do 227.5 KiB chunks normally, but tool.exe does much higher chunks for Ogg Vorbis. While higher chunks may, in theory, improve compression ratio (thus bitrate) slightly, this results in some of the music cutting out randomly in some scenes in the game such as the music immediately after exiting the bridge in the Pillar of Autumn. Therefore, again, using tool.exe is not recommended. Note that the engine will not handle split dialogue very well, so don't try to do this. Encoders To create sound tags, you’ll need an encoder. Currently, there are tool.exe, Mozzarilla, and invader-sound which can create sound tags, so I’ll sum them each up in a few bullet points for each of them. tool.exe Command-line program Comes with the Halo Editing Kit Supports 16-bit PCM and Ogg Vorbis out-of-the-box Can only do batch processing Can only use 16-bit PCM WAV files as input The Ogg Vorbis encoder implementation is totally screwed up as well as outdated Requires pirating for Xbox ADPCM support Heavy limits on sound tag size and permutation count Windows-only Closed source Mozzarilla GUI program Comes with Mo’s Editing Kit Supports all common integer and floating point PCM format WAVs as input Can specify channel count and sample rate Supports specifying data folder and tag file paths separately Cross platform Open source Supports 16-bit PCM and Xbox ADPCM out-of-the-box No Ogg Vorbis support invader-sound Command-line program Comes with Invader Supports 16-bit PCM, Xbox ADPCM, and Ogg Vorbis out-of-the-box Supports all common integer and floating point PCM format WAVs as input Supports FLAC as input Can specify channel count and sample rate Supports specifying data and tags directory paths Cross platform Open source You should not use tool.exe for creating your sound tags, and if you need to, bury the fact that it can even create sound tags into the back of your mind and convince yourself that it is all a lie because it may as well be with how bad it is at making sound tags. Currently, invader-sound is the only one of the two that can be a true replacement to tool.exe due to having Ogg Vorbis encoding support, and it also has other benefits including FLAC input for keeping data folders smaller without quality tradeoffs. Otherwise, if you want to use a GUI, Mozzarilla is an option, even if it isn’t currently the most complete one.
  2. Well, I guess we don't need a competition for this month.
  3. Good news to MEK users: Mozzarilla now supports creating both PCM and Xbox ADPCM sound tags! It does not yet support Ogg Vorbis, though, so I'm not going to put it on the list until that's completed, but if you want a GUI-based program that can generate sound tags and you're okay with being limited to uncompressed PCM or low quality ADPCM, you now have an option for that.
  4. I've increased the bounties of most of the requests above. I've also reduced the minimum script count to enter in the Friday mini-contest from 3 to 2. Go ahead and grab yourself some easy tickets, as this offer won't last forever. Note: Any scripts completed that were requested in the past 7 days will also be awarded 6 tickets as per the monthly raffle, but they will not be counted towards winning this contest. The +6 tickets do not count towards the Friday mini-contest as this is operated separate from the Monthly Raffle (though only non-staff can still participate since it uses raffle tickets), so you are not at a disadvantage if someone else is on the ball with the latest script requests. That said, I still recommend completing recent script requests as you get more tickets for doing so. Anyway, I've put the current standings now that someone has actually completed a script request from this list.
  5. Ammo sets maximum ammo, not loaded ammo (which is what mag does).
  6. If you want to disable ammo pickup for the entire game, one trick is to set the maximum (NOT starting) ammo of all weapons to 0. This means that the weapon will spawn with ammo, but since the maximum ammo is 0, it starts with more than the maximum amount of ammo, thus you cannot pick up any more ammo. If you want this and you don't know how to do it, then I suggest making a SAPP script request here: https://opencarnage.net/index.php?/forum/60-sapp-script-requests/
  7. The Legend of Zelda: Breath of the Wild did bring something unique and new to the series that was actually interesting, and, for a first game in the series to have open world in it, they did an excellent good job it. It has replay value to it, too, if you want to try your hand at Hero Mode and, if you bought the DLC, the insanely hard Master Mode. There are also many ways to tackle different problems, and there is a massive variety of content to explore and enjoy even without buying any DLC. Pokémon, on the other hand, tries to play it way too safe. They added exactly one thing to the battling system: bigger Pokémon. Not only is the mechanic uninteresting since they had (and removed) Mega Evolutions which were basically bigger, stronger, cooler versions of the Pokémon, but it's also broken: ANY Pokémon can do it at ANY time without sacrificing a held item, unlike Mega Evolutions They get 2x their HP, the whole "super effective" stuff basically gets thrown out since your Pokémon can now sponge nearly everything They can spam Z moves for three turns. Such moves not only partially bypass protect, but they can now raise your stats, lower your opponent's stats, change the weather, set up entry hazards, inflict status, delete Reflect/Light Screen from the field, trap your opponent, and more. See this page for a list of effects. They are immune to moves like Encore, and, if they have a Choice item, their item is temporarily disabled (thus they are no longer Choice locked) I'm sure these games take a non-trivial amount of time to develop. However, the latest games have showed just how rushed these games were. Removing half the roster, including some of my favorites like Ampharos, Skarmory, and Dragonite, doesn't quite sit well with me, as they said they did it for time constraints, but the game seems way too rushed for that. Really, if you want my honest opinion, I don't think the switch to 3D really has been kind at all to the series. Especially in the postgame, the character animations are often just plain bad. For example, rather than the box art legendary Pokémon having an animation for turning around, it walks in place and turns on a swivel. There is also a part of the game where a Pokémon uses an electric type attack on a door to unlock it, and the game simply cuts to black and plays the sound of it happening rather than showing it happen. It really seems like they put most of their time towards Pokémon Camp animations, a completely optional part of the game, rather than the actual cutscenes you have to watch to complete the game. I'm worried that they'll probably do what they did with Sun/Moon: release a "director's cut" version of the game for full price. This game, should they release it, would have stuff that should have been in the game on Day 1.
  8. I'm considering whether to go with Vulkan over OpenGL right now. I originally planned writing an OpenGL renderer and writing a Vulkan one later, but writing a Vulkan one now may be better for performance, especially on Linux. This does mean that this renderer will not run on certain old hardware, and it will take a little longer to write. According to this page, this is the hardware you'd need: Nvidia: GeForce 600 series or newer AMD: Radeon HD 7700 series or newer Intel: 6th generation Core (Skylake) or newer See Nvidia or AMD requirements Obviously, it will be difficult for most people to obtain such hardware since some graphics cards that meet the requirements cards cost almost as much as a copy of Halo (around $20-$40) and most people cannot seem to afford that, either. However, I don't care, because it's my project and I can do whatever I want with it.
  9. Here's an update for the month of December! Normally I post these at the start of the next month, but I felt like not doing that this one time because it's my project and I can (mostly) do whatever I want with it. This update is a bit smaller than last update, but it's also just as important as it introduces a new tool: invader-sound. As the name suggests, this tool allows you to generate sound tags. You can either opt for 16-bit PCM (you will need either the latest builds of HAC2 or Chimera to enable these in Halo!), or you can use lossy compression through Ogg Vorbis. Xbox ADPCM is supported, too, and you do NOT need to pirate obtain the original codec to use Xbox ADPCM with invader-sound, but note that ADPCM is worse, compression ratio and quality wise, than Vorbis. If you're unsure as to what to use, check out the readme. Added New tool: invader-sound Generates sound tags Added colors for various diagnostic messages depending on the user's terminal invader-info: Added `-T external-tags` which indicates the number of tags that use external resource maps, including indexed tags invader-info: Added `-T external-bitmaps` which indicates the number of bitmap tags that use external resource maps, including indexed tags invader-info: Added `-T external-loc` which indicates the number of loc tags that use external resource maps, including indexed tags invader-info: Added `-T external-sounds` which indicates the number of sound tags that use external resource maps, including indexed tags invader-info: Added `-T external-bitmap-indices` which indicates the number of externally indexed bitmap tags invader-info: Added `-T external-loc-indices` which indicates the number of externally indexed loc tags invader-info: Added `-T external-sound-indices` which indicates the number of externally indexed sound tags invader-info: Added `-T languages` which lists all languages valid for the map separated with spaces invader-info: Added `-T external-pointers` which indicates whether the map uses external pointers (sometimes occurs if built from tool.exe due to a bug with indexing raw data) invader-info: Added `-T tags-external-pointers` which list tags that have external pointers that were not indexed Changed invader-extract: Tag IDs are now set to FFFFFFFF when extracted. This will make extracted tags more reproducible independent of the map being extracted. invader-info: Now outputs some details in color on some terminals Fixed invader-build: Fixed an issue with some old device_light_fixture tags being treated as device_control tags. This generally did not result in gameplay issues, but it may have resulted in a prompt to "activate" it when the player was close to the object. invader-build: Fixed converting radians to degrees with the lens_flare rotation scale invader-extract: Fixed converting degrees to radians with the lens_flare rotation scale As always, the latest build can be retrieved from https://invader.opencarnage.net/builds/nightly/download-latest.html
  10. I've added images, most of which were from my own gameplay. Anything not mine has been credited. Images are also captioned, too, if you want to read a slightly snarky remark on it or something.