Release Notes

Version 1.09.1

– AvP multiplayer fixes.
– Fixed some player projectile weapons not colliding with other players.
– Fixed a bunch of AI projectiles not being correctly synchronized.
– Fixed an issue which would sometimes cause AI to stop attacking.
– If a human player teleports into a new level without a weapon, the shotgun is now automatically granted.
– Fixed a bug which could sometimes cause bigpemu_net_behind to misreport.
– New script functions: bigpemu_net_hostmsg, bigpemu_net_disconnect, and bigpemu_net_lastclient.

Version 1.09

- New "State Sync" network device type, synchronizes system state across the network. This allows local 2-player games to be played over Internet/LAN connections.
- Very simple implementation that just stalls out if input doesn't arrive in time. State Sync Delay option adjusts the anticipated latency window. If you run into timing issues, the host can manually kick everyone back together by loading a state.
- State Sync Remap can be used to remap the first local input device to any other input device. Also allows overlapping controls. (e.g. two peers both affecting the first input device)
- Works with any number of clients, with clients above the supported input device count being treated as spectators.
- New "Script" network device type, allows scripts to implement custom network/socket handlers. Includes automatic delta compression and some other niceties.
- A new script adds multiplayer to AvP!
- Implements networking from scratch using the aforementioned socket interface, and works with the unmodified retail ROM image.
- Proper client-server architecture, up to 32 players can drop in at any time during gameplay. (in theory)
- Generally handles the fundamentals, but expect plenty of limitations, bugs, and odd behavior. This game wasn't designed to support multiplayer, and I've left a few threads hanging under the guise of "shippable."
- Enemies can correctly change off between player targets.
- I hope this serves as another demonstration of the sort of madness which can be accomplished with the scripting system, and I'd love to see others give this sort of treatment to more titles.
- Lots of new scripting/VM functionality.
- UI event callbacks for custom rendering over/under the rest of the UI.
- New UI rendering functions for various primitives and text.
- Input functions to allow querying input states across all native devices.
- Scripts can now load and render/play texture and sound resources.
- New native-backed 4x4 matrix/transform operations.
- Script can now get a list of ROM from from the current ROM directory, and load images in that directory.
- Scripted polygon texture references now have the option of pointing to native texture resources. Could be useful for something like a high-res texture replacement script.
- Fixed a floating point comparison bug in the VM interpreter.
- VM modules are now loaded automatically if a .bigpcvm file is present with the same name as the ROM image being loaded, similar to other image-specific resources. This allows Jaguar software to be distributed alongside emulator-specific script enhancements.