Emulicious Major Update Release

A major update of Emulicious has been released!

It comes with a lot of improvements and additions:

  • Performance
  • The overall performance has been improved.
  • The impact of the debugger on the performance has been reduced significantly.
  • Bugfixes
  • A bug has been fixed that could cause crashes on Linux based systems.
  • A bug has been fixed that could cause Emulicious to run even slower when it couldn’t reach 100%
  • Additions to Emulation
  • Light Phaser Emulation
  • Emulation of 3 and 6 button Mega Drive Controllers
  • Additions to Tooling
  • Hovering over a RAM addresses in the debugger shows its current value
  • The Memory Editor now indicates labels by underlining the corresponding bytes
  • When the Tracer is enabled the debugger now also visualizes the trace
  • The trace in the debugger can now be followed CTRL+Left and CTRL+Right
  • Port Watchpoints can now be added in the Breakpoint Window using the prefix ‚p‘ so entering „pdd“ would add a port breakpoint on port dd.
  • A completely new tool has been added called „Coverage“. It records all accesses to any address. It uses different colors to encode relative numbers of accesses. It uses 3 base colors at different levels of brightness. Yellow means it is accessed significantly more often than green and red means it is accessed significantly more often than yellow. The brightness indicates the relation to other values with the same base color. A brighter color means that it has more accesses than the one with the darker color. The Coverage tool can be used to identify hotspots but also to identify dead code, unused data or unused RAM. In conjunction with breakpoints and stepping it can also be used to identify which code/data/ram is used from one point of the execution to another.
  • An overview ruler has been added to the debugger which is a 1 dimensional representation of the whole file of the debugger. It also shows the colors of the tracer and the coverage tool. It can be clicked to directly scroll to the corresponding address.
  • Misc
  • Patch files can now be loaded like ROM files
  • Screenshots can now be taken by pressing F12

Emulicious Major Update Release

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
  • Conditional breakpoints
  • 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: =, ==, !=, <, >, <=, >=
decimal numbers
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)

A new update of Emulicious has been released

A new update of Emulicious has arrived!

With this new version you can finally enjoy your favorite games in fullscreen! You can enter fullscreen by either pressing ALT+ENTER or from the Graphics menu.

The debugger has been extended by watchpoints (aka memory breakpoints) that will halt execution on a read/write of a specified memory location.

The memory editor has been extended by a find dialog that allows searching the memory. Besides that the memory editor now supports simple table files.