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

All Activity

This stream auto-updates   

  1. Today
  2. now shows the velocity/vectors accurately as steps with the delays coming before the event is processed also, event stream, and recorded animation header data is processed in event stream on left.
  3. I like it. The time of day looked weird to me until I realized it didn't change lightmaps. Simply looking at this makes me wonder what it would look like with a cell shade filter on it. Could give it a try via Reshade if I still had CE installed.
  4. Pretty! ...and so much .png D=
  5. KGM WIP Thread About this mod: This mod replaces the classic stock multiplayer maps of Halo Custom Edition while bringing new looks to the maps, like models, textures, sounds, etc. And yes you can use this mod to play in stock servers without issues even if other players don't have the mod installed. All weapons, animations timings, particles, decals, lights, collision of structures, etc. Have been modified to fit perfectly fit with their og Halo 1 counterparts so you wont have any kind of advantages, disadvantages or desyncs issues while using this mod. The mod is also compatible with OS, HAC2 and Chimera. Since it was compiled with invader it should not have issues with any kind of addons since its treated like a regular .map by the game Special thanks to: aLTis94 SBB team CMT Shadowmods Team Gamebanana Reus Zteam Kinnet (having infinite patience to work alone on the whole project for 4 years is something that I wont ever forgive myself :V) MosesOfEgypt PopeTX28 Invader team Halo Online modding Team Chimera team My YT subs (their wholesomeness made it a lot easier to work on this long project <3) (sorry if im forgetting somebody but it has been so long that I can't remember everybody who helped) 21/02/20 v4.6 Beta Release: This small beta release is so people can give feedback and thoughts about the project before I release the full thing, so make sure to do so! Download: http://www.mediafire.com/file/plmsn3r7fl4dvnq/KGM_Bloodgulch_v4.6_2020_FIXED.rar/file More Pics: Notes about this version: - Its only bloodgulch since im too lazy to compile all the other maps and I'm going to release them soon in the final version anyways - The weapons and models in general look kinda scuffed (shaders look dark and reflectionless) and without proper shadows in the map since I did some shenanigans to have the original collision with a remodeled map, this will be fixed for the final version. - The map has a "switch time of day" button on the menu to change to the night mode and back - The map has no portals, this will also be fixed for final version - Some weapons don't have flashlights (mostly covenant guns) - The ball is replaced by the energy sword (it works exactly the same as the ball) since the zombie gametype is way more played than oddball - Player models have a bunch of different variations (around 70 in total) in an attempt to make the multiplayer feel more varied - Player models have no LODs (yet) so they will perform bad in really (really) low end PCs since everything else has LODs and are very optimized - It lacks the Lua chimera scripts designed for it since the lua injector for maps doesn't work on maps compiled by invader (hopefully it will be fixed in the future) - Backpack weapons only work in local games saddly (another invader bug) Donate: You can support me and the creation on this mod through here, it will be infinitely thanked paypal.me
  6. Yesterday
  7. While doing some reversing of Halo to fully integrate client functions into the scripting engine, I came across a curiosity regarding sleep_until. According to the references I can locate, sleep_until can accept two arguments - one required and one optional. Even the internal reference generated by script_doc affirms this: However, sleep_until has 3 parameters, and technically accepts even more arguments. Note: Any addresses below are for the 1.10 PC client, because most of my notes are on the PC client and have yet to be ported to the CE client. However, what I mention below holds true for the CE client. I am posting this under the CE section because I assume more people would be using Halo script in CE rather than PC. Below is the parsing function for sleep_until, in Cish (i.e. no guarantees it is legal C), translated from the assembly: // Note: I use BOOL below to convey meaning and it does not necessarily // reflect the width of Halo bools, depending on the compiler. // Returns TRUE if the script node referred to by node_id can evaluate // to the value type specified, and FALSE otherwise. // Has side-effects. BOOL parse_script_node_expected(identity_type node_id, enum_short type); BOOL parse_sleep_until(short function_index, identity_type script_node_id) { script_node *primary_node = get_script_node(script_node_id); script_node *function_node = get_script_node(primary_node->value.id); // ------------------------------ // condition argument, required // type: boolean (enum value 5) identity_type condition_node_id = function_node->next_script_node_id; if (condition_node_id == k_invalid_identity || !parse_script_node_expected(condition_node_id, value_type_boolean)) return FALSE; // condition argument is required // ------------------------------ // period argument, optional // type: short (enum value 7) script_node *condition_node = get_script_node(condition_node_id); identity_type period_node_id = condition_node->next_script_node_id; if (period_node_id == k_invalid_identity) return TRUE; // period argument is optional if (!parse_script_node_expected(period_node_id, value_type_short)) return FALSE; // period argument supplied but could not parse to short // ------------------------------ // timeout argument, optional // type: long (enum value 8) script_node *period_node = get_script_node(period_node_id); identity_type timeout_node_id = period_node->next_script_node_id; if (timeout_node_id != k_invalid_identity && !parse_script_node_expected(timeout_node_id, value_type_long)) return FALSE; // timeout argument supplied but could not parse to long return TRUE; } You can probably guess what this third argument and its type is. To confirm its meaning, here is a snippet from sleep_until's evaluation function: CPU Disasm Address Hex dump Command Comments 00489980 |. 8B00 MOV EAX,DWORD PTR DS:[EAX] ; EAX <- timeout (3rd argument) 00489982 |. 83F8 FF CMP EAX,-1 00489985 |. 74 0E JE SHORT 00489995 ; never timeout! 00489987 |. 8B12 MOV EDX,DWORD PTR DS:[EDX] ; EDX <- time of function call in ticks 00489989 |. 03D0 ADD EDX,EAX ; EDX <- timeout + function_call_time 0048998B |. A1 6C1D6F00 MOV EAX,DWORD PTR DS:[Globals::lpGameTimeGlobals] 00489990 |. 3950 0C CMP DWORD PTR DS:[EAX+0C],EDX ; lpGameTimeGlobals->game_ticks 00489993 |. 7D 77 JGE SHORT 00489A0C ; jumps to exit sleep_until context if game_ticks >= (timeout + function_call_time) The third argument is a timeout, in ticks relative to the time when sleep_until would be called! An updated description for the function should resemble: However, because Halo does not verify the number of arguments does not exceed 3, nor their type, Halo will gladly parse, compile, and evaluate the following: (sleep_until false 15 3600 "foo" 3.14159265359) Fake edit for those that read this post: you can paste text into the client console by pressing F6. I have no idea if this holds for Mac users, but I found this information out while completing documentation of the console line buffer structure. I am also unsure if this works while using HAC2. Real edit: Turns out the timeout is not in absolute ticks, will slowly edit my post to reflect this (done).
  8. Another mini-update: Invader now has partial tag extraction for Halo CE Anniversary (MCC) maps. You cannot extract bitmaps, sounds, or BSP tags at this time, but all other tags seem to be accessible. You also do not need to decompress the map files before using them with Invader, and you really shouldn't do that unless you use invader-compress to do it, as, when normally decompressed, the maps look almost indistinguishable from retail cache files. Bitmap and sound data is stored somewhere outside of the map and does not use offsets of any kind from the map file, instead checking tag paths against some sort of external index, so conventional modding tools won't be able to access this data. It appears that sound data also does not even use the same exact format specified in the tag, itself, instead apparently opting for some form of MPEG audio stored in FSB files. The quality is apparently higher than whatever Gearbox used when creating their Ogg Vorbis tags, though. BSP vertices are stored outside of the BSP tag but still in the cache file, apparently located immediately after the header. The vertices are the same format, though, so, in theory, they should be able to be reconstituted into BSP tags. As always, you can get the latest, nightly builds (for Windows) at https://invader.opencarnage.net/builds/nightly/download-latest.html Edit: BSP tag extraction works
  9. Last week
  10. Thanks a ton! I'll write this down for future reference.
  11. The tracking camera is relative. 0 0 0 is used as a reference point. Make sure that your camera point for the tracking shot is positioned pointing at 0 0 0 in the map. Use spacebar to place a marker at your screen position.
  12. From what I understand actual tracking shots are not possible. The movements of the objects in the cutscene are animated beforehand and the camera placements, orentations, wait times, and transitions are all carefully done to give it somewhat of that illusion. When blam shifts between cameras, it interpolates smoothly between their postions and rotations in the given amount of frames. In the beginning shot of The Silent Cartographer there would be at least two cameras from what I can tell, all in the exact same position but at different rotations, and as it transitioned from one to the other right as they flew over it would make it look like a cool flyby. For the next part where it is in front of the pelican facing it, you would have to place that camera there ahead of time in the exact right spot and rotation so that when you switch to that camera while the pelican is in frame and set it to track the pelican, it will get the desired look. If I'm wrong, someone please correct me. I would hate to misinform you but I can find no sort script for the behavior you want.
  13. 4% at 50% for me. My sister gets 4% at 100%.
  14. matches 100%, but still up to 4%
  15. My 401k is the same, 4% match at 50%
  16. Speaking of 401k, what do your guy's companies offer? Mine just does 50% match up to 4%, whether you're a manager or technician.
  17. For the plumbing company I work for, they will reimburse you the full cost of school at the end of each year if you bring in proof you passed. It comes out to about 1K, so that's nice. This same company is pretty laid back, and if I asked them to put the percent they match for my 401k into my student loans they totally would. To them it's been budgeted for anyway and they love to see their employees make responsible financial decisions. Not a lot of them do, lol.
  18. I know many employers have tuition options for courses that benefit their field of work, with portion paid based on grades. Haven't heard of it as a general thing though.
  19. Never even heard of this was a thing. Sounds like a possibility for paid internships.
  20. Progress! It's been a bit of a rough battle, but I've basically caught up on progress on linux. Much still needs to be done; however, everything is loaded and running smooth. Spoilers for pics
  21. I've pushed an update to ceaflate that removes the check for if it's a CEA map or not. It turns out that other files use this compression format, such as the s3dpaks and ipak files.
  22. There are businesses that offer benefits such as matching employee contribution towards 401k. But I'm curious if there are businesses that will give employees the choice to either choose a 401k plan or student loan payment plan. The employer would contribute the same % regardless of what you choose, as long as you also match the required %. And let's say, you either: A) Don't have any student debt, B) Finally finished paying off your student debt, or C) Rather deal with student debt without employer intervention, then you could simply switch to a 401k plan. Has anyone seen this practiced by an employer? Just curious.
  23. Rent a billboard.
  24. At the end of your video you mentioned about making a (polite) stink about these issues and I would love to do so. Anyone have any suggestions about the most effective channel of communication to take this to?
  1. Load more activity