Welcome to Open Carnage

A resource for gamers and technology enthusiasts, with unique means of rewarding content creation and support. Have a wander to see why we're worth the time!

002

Manager
  • Content count

    3,687
  • Joined

  • Last visited

Everything posted by 002

  1. Chimera is a tool that provides lots of additional functionality to Halo. Features: Enables player_magnetism without requiring HAC2 or devmode Fixes descoping issues in multiplayer servers Fixes aim assist, enabling it for both the movement and aiming versus just aiming (chimera_magnetism) Adds diagonals to analog input when in multiplayer servers (chimera_diagonals) Mimic's Xbox's automatic uncrouching when using analog input (chimera_auto_uncrouch) Enable anisotropic filtering without using config.txt (chimera_af) Override HUD with splitscreen HUD (chimera_split_screen) Allow video input to continue playing even when tabbed out (chimera_tab_out_video) Disable multitexture overlays (chimera_block_mo) Disable multiplayer map fade transition (chimera_skip_loading) Disable zoom blur and pixelation (chimera_block_zoom_blur) Make objects' movements appear much smoother to take advantage of higher framerates (chimera_interpolate) Allow mouse users a more granular sensitivity control (chimera_sens_mouse_<h/v>) Set deadzones for controllers (chimera_deadzone_looking and chimera_deadzone_movement) Show budget information for map developers (chimera_budget) Disable the 30 FPS lock in cutscenes (chimera_uncap_cinematic) Throttle your frame rate to a set frame rate (chimera_throttle_fps) Prevent your vehicle from aiming for you (chimera_block_vehicle_camera_leveling) Fix the scope when scoped (chimera_widescreen_scope_mask - requires HAC2 widescreen fix) *This feature requires Halo Custom Edition to function properly. Cyan features are enabled by default without user input. Green features are disabled by default and require use of the console to enable them. Use the chimera command to list commands. This tool should be able to run alongside HAC2 without problems. Windows 7 and newer is supported. Download (build 49): chimera build 49.7z If you're going to use chimera_interpolate, I recommend you have at least these specifications. These should get you chimera_interpolate 3 (low), max Halo settings (make sure you aren't locked to 30 FPS), 1080p, at approximately 60 FPS: CPU (Intel): Intel Core 2 Duo E8400 (3.0 GHz) or better CPU (AMD): AMD Athlon II X2 250 (3.0 GHz) or better Graphics (Intel): Intel HD 3000 or newer Graphics (Nvidia): NVIDIA GeForce 8600 GT or better Graphics (AMD): ATI Radeon HD 5450 or better RAM: 4 GB OS: Windows 7 or newer Note: These values are listed only for reference and are recommendations. The chimera_interpolate command does not directly utilize the GPU, nor does it use a large amount of RAM for interpolation, and it has been tested (unofficially) to work on Windows XP, but I don't support it. FAQ Very frequently do people ask me the same questions about Chimera, so here’s a little FAQ about it. How do I install Chimera? Place chimera.dll into your controls folder. Is there a list of commands? All commands are listed in the help menus using the chimera command. Is Chimera compatible with HAC2 and Open Sauce? Yes. Is Chimera compatible with HaloMD? No. Will Chimera be integrated with HAC2 or Open Sauce? No. What levels of interpolation do what? This graph details what levels do what: Note: Off is 0, Velocity is 1, Low is 3, Medium is 6, High is 8, Ultra is 9. Ultra has the same level of interpolation as High, but no distance check optimization is in place. Objects are jittery with interpolation on. Here is what I'd do: If you're getting bad performance (lag spikes or average frame rate dropping below refresh rate), turn your interpolation setting down. It's likely your PC cannot keep up. If you're getting good performance but your interpolation setting is less than 9, try turning it up. It's possible the object in question isn't being fully interpolated. If you have vSync turned on through Halo, turn it off. Halo's vSync setting can drop frames even on fast hardware from doing simple things such as melee attacks, and enabling interpolation (thus increasing CPU usage) does not help this in the slightest. If you need to throttle your framerate, use chimera_throttle_fps 240. If you need to play without tearing, I recommend using HAC2's borderless window feature (use -window, set your game's resolution to Windows's resolution in video settings, then press Alt+Enter). Is the retail version of Halo supported? No. Halo Custom Edition on version 1.10 is the only version supported by Chimera. Are versions of Halo earlier than 1.10 supported? No. Does Chimera work with scrim mode? Client-sided features (interpolation, anisotropic filtering, zoom blur removal, etc.) are not affected by scrim mode. However, the server-side Lua script, which includes fixes for lag and analog movement, will not function. Does Chimera automatically update or have update notifications? Currently, you are responsible for keeping Chimera up-to-date, and if there is an update, you will have to come back here to get it. Notifications are planned, however auto updating will not be included. Is Chimera open source? Not yet. Why are Chimera releases slow? Chimera does not function on donations, thus development is done on a portion of my personal time. If it takes a while, it takes a while. SPV3 includes Chimera. Are you in CMT? No. Can I install Chimera on my Mac? Yes. Install Windows, buy the Windows version of the game (if you don't own it), install Halo Custom Edition 1.10, then place chimera.dll into your controls folder. I can't install Windows on my Mac. Can I still install Chimera? Yes. Simply buy a PC, install Windows on it (if Windows isn't preinstalled), buy the Windows version of the game (if you don't own it), install Halo Custom Edition 1.10, then place chimera.dll into your controls folder. Older downloads If you need an older version of Chimera, here are older versions:
  2. Yes. Not at the moment. Currently I'm only working with one group for testing the server stuff, and this is because of the nature of how these updates work. If you need to know what's going on, I'm currently working on getting vehicles going. Controlling the vehicles is smooth as butter and has little to no warping whatsoever - a great improvement over stock Halo. However, vehicles other players are controlling are a little worse than stock aside from the fact that they don't warp now. There's a bit of jitteryness going on, mainly. As for bipeds, they're much better than stock aside from slight jitters that may happen on occasion, and this is mostly mitigated by interpolation. Player control feels exactly or close to exactly like hosting the game yourself in LAN, except now you have analog movement if you decide to use a controller. You can do tricks like nade jumping and you'll be fine as long as you have a decent connection.
  3. If anyone wants to play around with the current version of the Lua scripting thing I wrote for Chimera, here's what you'll need: Chimera build -363 (to be able to use Lua scripts): chimera build -363.7z Lua API information: https://docs.google.com/document/d/1noKt8eTJE_8ozxT_RSbBYx2PPciw5hYOdxLgTm9fSyM/ (note that this is updated as I add functions and by the time you download -363, you will most likely have an outdated version of the Lua scripting API) chimera_ltool.exe (for inserting Lua scripts into map files): chimera_ltool.7z If you want some example maps: boardingaction_grav_6.7z (Boarding Action with reduced gravity between the ships, as well as gravity that pulls towards the ships rather than just straight down) set_callback("tick","OnTick") clua_version = 1.0 abs = math.abs MIDDLE = 10 DISTANCE = 9 function OnTick() for i=0,2047 do local object = get_object(i) if object then local x_coord = read_f32(object + 0xA0) local velocity = read_f32(object + 0x70) local z_coord = read_f32(object + 0xA8) if x_coord > MIDDLE - DISTANCE and x_coord < MIDDLE + DISTANCE and z_coord > -6.0 and velocity ~= 0.0 then local difference = abs(MIDDLE - x_coord) local scale = (1 - (difference / DISTANCE)) * 0.85 + 0.15 if difference < DISTANCE * 0.15 then scale = 0.95 end local grav_scale = 1.0 if read_u16(object + 0xB4) == 5 then local tag_data = read_u32(get_tag(read_u32(object)) + 0x14) grav_scale = read_f32(tag_data + 0x1CC) end if z_coord > 10.0 and velocity > -0.01 then scale = scale * (20.0 - z_coord)/20 if scale < -0.15 then scale = -0.15 end end write_f32(object + 0x70, velocity + 0.003665 * scale * grav_scale) if difference > 2.0 then local x_velocity = read_f32(object + 0x68) local x_scale = (1 - (difference / DISTANCE)) * 0.85 - 0.15 if x_scale < 0 then x_scale = 0 elseif x_coord < MIDDLE then x_scale = x_scale * -1 end write_f32(object + 0x68, read_f32(object + 0x68) + x_scale * 0.003665 * grav_scale) end end end end end pacmanthing_1.7z (a Pac-Man maze where the hallway in the middle maintains relative position and momentum when an object crosses it) set_callback("pretick","OnTick") clua_version = 1.0 SIDE_A = 59.988 SIDE_B = 80.388 DIFF = math.abs(SIDE_B - SIDE_A) function OnTick() for i=0,2047 do local object = get_object(i) if object then local otype = read_u16(object + 0xB4) local owner = read_u32(object + 0x11C) if otype < 6 and owner == 0xFFFFFFFF then local x = read_f32(object + 0x5C) if x < SIDE_A then write_f32(object + 0x5C, x + DIFF) elseif x > SIDE_B then write_f32(object + 0x5C, x - DIFF) end end end end end
  4. You could write a SAPP script to change these values in Halo's tag data, but what I'd do is open ratrace.map in Spark Edit, go to the frag grenade that you want to remove, then either move it below the map or delete it. You can change the respawn timer using a modding tool such as Eschaton. This is another thing that can be solved using Eschaton. Go to the cyborg_mp biped tag, go into the biped flags (it's a bitmask32 value in Eschaton) then enable the "Passes through other bipeds" flag.
  5. That's not what nitpicking means, as it would have meant I found errors in your sentence, which I acknowledged that some outlets do run on 110 V, but most are 120 V with some outlets being 240 V. And no, it's not exact. I get about 121 V from the wall typically.
  6. 220/240 V outlets are used in the US, but those are usually for larger appliances like dryers and refrigerators and they use a different socket. Voltage in the US is actually typically around 120 V. Some still get 110 V, but devices should tolerate either.
  7. For compiling, you can compile the Lua script if you want to, but it's not required to insert into a map. To compile, you'll need to run luac on your Lua script. While there are several advantages for doing so (slightly shorter load times and prevent users from tampering with your script), your script will only work for the Lua version and architecture you used with luac. For more information, check here: https://www.lua.org/manual/5.3/luac.html For loading it into a map file, the Lua script can be inserted into the map file using a tool I wrote, or it can be loaded if it's found in the chimera_lua folder. The latter part is useful for testing.
  8. Chimera's Lua scripting functionality is currently limited in terms of callbacks, but you do have full access to reading and writing to Halo's virtual memory like SAPP, thus you can edit tag data. https://docs.google.com/document/d/1noKt8eTJE_8ozxT_RSbBYx2PPciw5hYOdxLgTm9fSyM/ aLTis has been the only person who has directly tested this, and he was able to do things like sync bipeds (he used console messages and rcon for this) as well as adding HUD swaying when walking.
  9. Chimera's Lua scripting isn't the same as SAPP scripting, but I suppose you could swap FP models. And yes, only alpha builds will have Lua scripting until it's stabilized.
  10. For the time being I had to remove it due to it crashing on certain weapons on certain maps when certain things happened.
  11. I wrote a program that generated this monstrosity. 1000 trees placed in a line to test my visible object limit modification. It was successful, but it isn't quite ready for everyone yet. The new visible object limit will likely be equal to the maximum number of objects possible (2048) in a game, increased from 256 objects. The limit is already increased on HaloMD via an extension made several months ago, and it may soon be available to the likes of Halo PC and Halo CE. While too many objects can significantly reduce performance (this screenshot reduced my framerate to 21 fps), making objects randomly appear and disappear to improve performance is a lousy alternative.
  12. Someone gave me an address to where the FP model stuff is used and I mapped it out. It does use a different type of rotation, but MosesOfEgypt showed me the function for handling this with his FPS animation changer from his Python-based MEK and I converted it to C++ code and it works like a charm. What do you mean?
  13. It's for stock maps, and the sniper rifle scope has a buggy scope because it implements multitexture overlays poorly. This disables MOs completely, which can break maps that properly use them. I tried fixing that to the best I can a while back. On the latest version, it usually isn't in 30 FPS, but it can happen. Also, thanks.
  14. True triple buffering should have much less input lag than using double buffer vertical sync but still eliminate tearing, as your GPU wouldn't have to wait between display refreshes before pushing out frames. This is what you're effectively doing when you play your game in windowed mode thanks to Windows's desktop window manager (dwm.exe). I'd personally never use double buffer vSync. Tearing is preferred over your mouse feeling like a brick. I was considering doing that eventually, but I'd have to figure out how I'd migrate older chimera.bin files.
  15. Currently, everything is stored in a binary file, chimera.bin, which is located where Halo's path is set (Documents\My Games\Halo CE by default. There's no text-based option presently.
  16. I've just fixed this bug. Build 48 is now available. edit: I just uploaded build 49. This fixes a bug with pausing the game causing things to extend into outer space with interpolation enabled.
  17. No update notifier, but I've pushed out a small update (build 47) that fixes an issue with the initial Silent Cartographer cutscene from build 45 as well as the death camera issue from build 46.
  18. Chimera build 45 has been released Chimera build 45 changelog: Interpolation fixes: - Fixed a bug where the flag stretches to infinity when leaving a vehicle. - Fixed a bug where the first person camera would run at 30 FPS when turning off interpolation while near an elevator. - Fixed a bug where vehicles would jitter significantly when interpolation was enabled. Other fixes: - Fixed a bug where AI was incapable of moving in multiplayer. Go download it here: I'm planning on adding an update notifier in the next version of Chimera so you'll know when your version is out of date. You will be able to opt-out of this feature if the notifications are bothersome.
  19. If anyone wants to give the Lua scripting proof of concept a try, here's a beta build of Chimera as well as a Boarding Action that's unmodified other than having a Lua script inserted in it. Chimera build -305.7z Please note it won't work on dedicated servers unless one made an equivalent SAPP script.
  20. It sounds like reading a table isn't going to be possible with LuaJIT's FFI. You're going to need a Lua module to do this. I'm not sure what version LuaJIT SAPP uses, as the SAPP site is dead, but one needs to know this to code a Lua module as a DLL file.
  21. I put a pointer to the script data in the map header, which then the script is then stored with the tag data.
  22. I've added map-based lua scripting to the current developmental build of Chimera. This is the script in question: set_tick_callback("OnTick") abs = math.abs function OnTick() for i=0,2047 do local object = get_object(i) if object then local x_coord = read_f32(object + 0xA0) local velocity = read_f32(object + 0x70) if x_coord > 0 and x_coord < 20 and read_f32(object + 0xA8) > -20.0 and abs(velocity) > 0.001 then local difference = abs(10 - x_coord) local scale = (1 - (difference / 8)) * 0.65 + 0.25 write_f32(object + 0x70, velocity + 0.003665 * scale) end end end end What this does is it reduces gravity in Boarding Action. The point of this proof of concept, however, is not the script but lua scripts in map files. If anyone wants to test it, I'll be posting the developmental build that has lua scripting as well as the map file and you can try it for yourself. That said, this is just a proof of concept, and there's no guarantee it will make it into any sort of official release.
  23. @Tucker933's farm clearly follows proper regulatory guidelines. There's absolutely no overcrowding problem at all.