Skip to content

Releases: openztcc/EMU

EMU v1.1.0

21 Mar 06:31
Compare
Choose a tag to compare

Features

Scripting has been expanded to entity and entity type operations. This means we can create scripts that edit the current state of scenery currently placed on the map. Currently limited to most scenery and buildings; animals, guests, and staff will be for another update.

For a full overview of all Lua functions available on this update, please see:

  • World Manager API. Provides utility functions to obtain entity and entity types from the world state.
  • UI General API. Provides utility functions to obtain entity and entity types from player actions, namely selecting entities like buildings.
  • Entity API. Functions that let you operate on entities currently on the map.
  • Entity Types API. Functions that let you operate on entity templates. Think of these as parent classes to entities.
  • Game Manager API. Operate on the current zoo state, such as budget, pause, devmode flag, etc.

Considerations

  • Temporarily disabled _setZooRating, _setAnimalRating, _setGuestRating from the Game Manager API while we figure out a way to re-implement them instead. They're a bit problematic to hook because they're essentially a live calculation and setting a value is limited to a persistent loop to keep the value there.
  • Removed unnecessary console commands not useful for the development of the project. For an up-to-date list, check out EMU Console Commands
  • Game Manager API function names have been updated to camel case to stick to a consistent style across the project.

Documentation

Better documentation now available for this project if you'd wish to learn how to script Zoo Tycoon 1 using EMU API. Visit Zooberry Docs:

Discord

We now have a Discord. Join us here: Discord

EMU v1.0.1

27 Jan 00:20
Compare
Choose a tag to compare

This is just a hot fix release.

Bug fixes

  • Fixes bug where the zoo ratings were not displaying correctly.

Download

EMU_v1.0.1.zip

To Install

Drop all of the contents of the binary release zip into the root Zoo Tycoon folder.

EMU v1.0.0

26 Jan 13:11
Compare
Choose a tag to compare

This marks the first official release of EMU, the Zoo Tycoon scripting API that enables modders to modify the game in ways not possible before.

Bug Fixes/Improvements

  • Console commands run on main game loop now.
  • Fixed exit command not closing command console.
  • Misc command console fixes.
  • Command console is color coded for errors, some messages.

Added global variables to Lua scripts

_globalAnimalRating: Sets the animal rating per loop.
_globalGuestRating: Sets the guest rating per loop.
_globalZooRating: Sets the guest rating per loop.

New console command

  • devmode <true/false>: Set to true to enable dev mode; false to disable.

Credits

Massive thanks to wowjinxy and Finn for their help figuring out how the game ticks!

Download

EMU_v1.0.0.zip

To Install

Drop all of the contents of the binary release zip into the root Zoo Tycoon folder.

EMU_v1.0.0-alpha.5

17 Jan 02:11
dfad81d
Compare
Choose a tag to compare
EMU_v1.0.0-alpha.5 Pre-release
Pre-release

Core Changes

  • EMU now hooks onto main game loop for main thread synchronization. Currently the Lua script engine runs on the main game loop.

Console Changes

  • When CTRL+J is pressed to call the console window, it attaches itself to the top right corner of the main game window.
    • Limitation: Still not dynamic enough to stay fixed to the corner when game window is moved, resized, etc.
  • Console stays ontop of the main game window
    • Limitation: This only happens in windowed mode, console isn't visible in full screen. It also has the side effect of keeping Z-Order focus over other opened windows if you minimize Zoo Tycoon.
    • If it's obtrusive, close the console with exit.
  • exit command now terminates the console window safely and does not close the game.
  • Console no longer shows in taskbar as another application.

Possible Solutions for Another Day

  • Will try to hook the main window procedure in a future version to handle specific main window events and synchronize console display properties dynamically. (i.e. minimize when game is minimized, stay ontop when game is full screen, etc)
  • Other GUI experiments if this is doing too much.

Next release will finally mark the first major release.

Targets for next release

  • Set console to run on main game thread.
  • Add new API functions for game manipulation.
  • Add help console command with list of all console commands.
  • Write and record tutorials that show how EMU works.
  • Refactor all code for polish.

Credits

Special thanks to wowjinxy for her help finding the game loop used in this update.

To Install

Drop all of the contents of the binary release zip into the root Zoo Tycoon folder.

Binary Release (Pre-Compiled)
EMU_v1.0.0-alpha.5.zip

See below for source code:

EMU v1.0.0-alpha.4

06 Nov 03:08
6b89196
Compare
Choose a tag to compare
EMU v1.0.0-alpha.4 Pre-release
Pre-release

New Features

  • Can now load multiple .emu scripts (Lua) from a /scripts folder inside of the Zoo Tycoon 1 root directory.
  • Scripts can now be named anything.
  • Better error logging. Most error logging created from the binary res-EMU.dll will be logged in a file called out.txt inside of the Zoo Tycoon 1 directory.

Targets For Next Release

  • Address possible issues with race conditions
  • Improve error logging
  • Improve script handling

Limitations to Consider

  • Possible issues with race conditions as suggested above.
  • Scripts have problems using the EMU console and will force it to exit if you have logging printing to the terminal in your scripts.

If you wish to try this release out, the binary release bundle below includes a /scripts folder with two sample .emu scripts. Both test for a budget condition and subtract money if true. I tried to make these easy tests with quick visual cues.

To Install

Drop all of the contents of the binary release zip into the root Zoo Tycoon folder.

Binary Release (Pre-Compiled)
EMU_v1.0.0-alpha.4.zip

See below for source code:

EMU v1.0.0-alpha.3

22 Sep 06:23
80f6b75
Compare
Choose a tag to compare
EMU v1.0.0-alpha.3 Pre-release
Pre-release

New Features

  • exit command will now hide the command console window
  • The command console is running even when 'closed'. This allows scripters to log messages to console.
  • Lua scripting support has been added. 25 EMU API functions are accessible through scripts.
    • See the wiki for early Lua scripting documentation. More coming as full release gets closer.

Limitations to Consider

  • With command console changes, closing the console with the window 'X' will still force close the game. exit no longer frees the console thread. A possible fix in a coming update.
  • The command console does not exist until first called by CTRL + J. This prevents Lua scripts from displaying messages to console unless it has been opened at least once. This will change.

Bug Fixe(s)

  • pause command now pauses the pause through UI. Note: it doesn't activate the 'play/pause' button yet but otherwise works.
  • EMU now only runs when zoo is loaded. Previously could access unallocated resources. Was not ideal.

Binary Release:
EMU_v1.0.0-alpha.3.zip

See below for source code.

EMU v1.0.0-alpha.2

18 Sep 00:05
8b1f173
Compare
Choose a tag to compare
EMU v1.0.0-alpha.2 Pre-release
Pre-release

Bugs fixed

  • Removed list-recyclingbenefit from the API. I couldn't reproduce the correct values.
  • Renamed list-totalprofits to list-zoovalue.
  • CTRL + M should be working again.
  • All commands should work again when compiled from source. They broke originally because I reworked how the memory pointers were accessed.
  • Fixed the /resource include path from absolute to relative.
  • num-hungryguests now returning expected value.
  • Now using freopen_s to address the compiler warning.
  • Addressed 'double' to 'float' compiler warning.
  • Addressed /LTCG linker compiler performance warning.

Update(s)

  • README.md updated to include changes to command list.

EMU v1.0.0-alpha.1

16 Sep 23:49
1aded2d
Compare
Choose a tag to compare
EMU v1.0.0-alpha.1 Pre-release
Pre-release

EMU v1.0.0-alpha.1

Current features:

  • Command console accessible by CTRL + J. Please see README for full list of commands.

Deliverables for future releases:

  • Embedded Lua scripting
  • More documentation