It comes with some improvements to existing tools and also introduces new tools.
The disassembler now also identifies accesses to ports and creates labels for them as well.
Profiler data is now persisted between runs of Emulicious.
When hovering a sprite in the Sprite Editor it now also gets highlighted in the main window.
New errors have been added to expressions that should help with writing correct expressions.
Savestates can now be used with hotkeys. The number keys 1-9 load the savestate from the corresponding slot. Holding the CTRL key while pressing the number keys saves into the corresponding slot. If you accidentally loaded a state instead of saving to it you can just undo the load and return to state before loading. The same works for saving. If you accidentally saved into a slot that you wanted to keep you can just undo the save. You can also quick save using CTRL+S and load the quicksave using CTRL+Q. Furthermore, you can setup Emulicious to automatically load the most recent state when a rom is loaded. You can also steup Emulicious to automatically save the current state on exit.
A RAM Search tool (also known as Cheat Search) has been added to Emulicious. It filters RAM addresses based on the comparison of the current value with its previous value. It helps to identify variables within RAM such as the number of lives, the current position, and so on.
A plotter has been added that can plot the data of a specified range in ROM. It can help to identify tables such as sine/cosine tables or other pattern data.
A RAM Watch tool has been added. It keeps track of the values of specified variables / values in RAM and plots them.
Finally the tools previously only available for the Master System and the Game Gear are now also available for the Game Boy and Game Boy Color. That means that all the viewers, i.e., the Palette Viewer, the Tile Viewer, the Tilemap Viewer and the Sprite Viewer are now also available for the Game Boy and the Game Boy Color. Furthermore, the debugger including the smart disassembler with automated code/data separation and all of its additional tools are also usable for Game Boy and Game Boy Color debugging. These additional tools are the Tracer, the Profiler and the Coverage Analyzer. The only tool that isn’t supported for the Game Boy and the Game Boy Color is the Memory Tracer.
Additionally, the accuracy of Game Boy and Game Boy Color emulation has been improved greatly.
A major update of Emulicious has been released!
For Windows users that don’t have Java installed on their system an alternative download including Java binaries has been added to the Downloads section.
It comes with several new features:
The stack now shows labels of the functions that have been called (it can be double-clicked to navigate to the call)
The stack now shows the names of the registers that have been stored in it
An option for setting uninitialized memory and a breakpoint that breaks on access of uninitialized memory
A breakpoint that breaks when an interrupt doesn’t restore the state properly
Emulation of PAL for the SEGA Master System
Emulation of the screen borders of the SEGA Master System
Options to unhide the offscreen area of the SEGA Game Gear
DATA labels in the Z80 disassembler
RAM labels in the Z80 disassembler
Besides these new features Game Boy emulation has been fixed and the expressions panel has been improved to support more complex expressions.
Z80 disassembler / Master System disassembler
The Z80 disassembler / Master System disassembler has been improved to create DATA labels for data that is referenced. This can help to identify blocks of data more easily. It now also create RAM labels that can help to determine RAM usage and variable sizes.
Expressions/conditions support the following
arithmetic operators: +, -
boolean/logical operators: &, |
shift operators: <<, >>
compare operators: =, ==, !=, <, >, <=, >=
hex numbers (prefixed by either $ or 0x)
binary numbers (prefixed by %)
symbols loaded from a symfile
variables (see below)
the @ operator to „read“ a value from a calculated address.
Besides that the following variables are supported:
All register names. As single registers and as register pairs. va (the current vdp address) scanline (the current scanline) address (the current address) bank0 (the bank in slot 0) bank1 (the bank in slot 1) bank2 (the bank in slot 2)
For read/write watchpoints only: value (the value being read/written) source (the address being read/written)
For write watchpoints only: oldvalue (the value being overwritten)