Emulicious - An emulator for SEGA Master System and Game Gear

Calindro

New member
Hi guys,

I've written an Emulator called Emulicious. At this point it emulates the Nintendo Game Boy/Game Boy Color, the SEGA Master System and the SEGA Game Gear.

Emulicious is written in Java and therefor will run on Windows, Linux, Mac OS(X) and any other operating system supporting Java SE.

It aims for precision and offers features like adjustable turbo, adjustable throttle and automatic updates. It also provides a debugger, a tile viewer, a tilemap viewer, a palette viewer and a sprite viewer.

Emulicious is still in development so any feature requests and bug reports are very welcome.

If you're interested, please visit
www.emulicious.net

Kind Regards
Calindro
 

Calindro

New member
Hi guys,

I've just updated Emulicious.
I've added a Memory Editor and improved the Profiler and the Tracer of the Debugger.

Kind Regards
Calindro
 

Robert

Member
Any chance of adding the dates to your news blog posts? Makes it hard to know if something new just happened.
 

down51

New member
Sounds cool. emulate different systems in one emulator
 

Calindro

New member
Hey guys,

I've just released a new version of Emulicious!
Finally it allows you to play your favorite games in fullscreen mode as well!
Besides that I've improved the Memory Editor to support table files and searching in memory for text/hex values.
Last but not least I have added watchpoints (aka memory breakpoints)
 

Robert

Member
It would be good if the releases had version numbers. At the moment someone who has the emulator won't know if it's the latest version.
 

Calindro

New member
It would be good if the releases had version numbers. At the moment someone who has the emulator won't know if it's the latest version.

Hi Robert,

thanks for your feedback!
If someone doesn't have the latest version the updater will tell him/her. If you still want to see version numbers I can add them of course!

I've just released another update!
A Find Dialog has been added to the debugger.
Trace highlighting has been added to help you follow the instructions that get executed.
Destination highlighting will show you the destination of a control flow instructions when hovered. CTRL+Click will scroll to the destination.
A Reference Hierarchy has been added to the debugger that can show you all the references to a specified label.
 

Calindro

New member
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

Expressions/conditions support the following:
arithmetic operators:
Code:
+, -
boolean/logical operators:
Code:
&, |
shift operators:
Code:
<<, >>
compare operators:
Code:
=, ==, !=, <, >, <=, >=
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.
Code:
scanline (the current scanline)
For read/write watchpoints only:
Code:
value (the value being read/written)
address (the address being read/written)
For write watchpoints only:
Code:
oldvalue (the value being overwritten)
 

Calindro

New member
Hi guys,

some people have reported issues downloading Emulicious. These issues have been solved now. If you still have trouble please let me know so they can be solved as soon as possible.

An update of Emulicious has been released!

The debugger has been expanded by an outline which helps you navigate through code and orient yourself in it.

The tracer can be controlled using conditions now. You can define start/end conditions and a condition on which to trace an instruction at all.
Additionally you can provide an expression to be evaluated before each instruction being traced. Its result will be appended to the trace. This way you can log additional information. For example if you want to watch the value in RAM at $c100 you can set the expression to "@$c100". That way each line of your trace will also contain the value at $c100.

As usual you will get the update via the auto updater or the full version from http://www.emulicious.net
 

Calindro

New member
Hi guys,

I'm posting here to let you know that Emulicious is still in development and that it has received several updates since my last post in here.
In the meantime MSX emulation has been added. :)

As usual you will get the updates via the auto updater or the full version from https://www.emulicious.net

On a side note: I noticed that Emulicious isn't listed in any of the emulator lists of its emulated systems. Is there a way to get it listed? :)
 

pix07

Well-known member
Its looks like written in Java it can be buggy and slow also high power consuming.
 
Last edited:

Calindro

New member
Its looks like written in Java it can be buggy and slow also high power consuming.
Hi pix07,

thanks for your comment!

Yes, it's written in Java.

What can be buggy and slow also high power consuming? Java?

You are saying it can be buggy which obviously holds true for every software: Every software can have bugs and the more features it has the more likely it will become that there also will be bugs.
But if you're implying that software written in Java can be more buggy than software written in C++ then that's just not true. You can probably translate every bug that you can have in C++ to Java and from Java to C++. But for example in C++ you can easily accidentally access memory that you didn't mean to access (see the famous Heartbleed Bug https://heartbleed.com/). In Java you would get an ArrayIndexOutOfBoundsException in that case instead of just revealing sensitive data to attackers. Of course in Java you could use a huge array and put both into it and that way avoid the ArrayIndexOutOfBoundsException (I.e., as I said above, you can translate the C++ bug to a similar bug in Java) but I doubt that you'd store sensitive data into the same array as some random echo message.

You are saying that it can be slow. Well also every software can be slow and it's rather a matter of complexity of the implemented algorithm than about the code being executed.
If you're implying that Java is slow then you should read the following article https://www.theserverside.com/opinion/Is-Java-slow-Compared-to-C-its-faster-than-you-think
where they conclude
Is Java slow? No.

Is Java a program as fast as one written in C++? Not always, but there are cases where it can, in fact, be faster.
or any other article about that matter.

And last you are saying that it can also be high power consuming. What can be high power consuming? Java? Emulicious? Since Emulicious doesn't use any advanced 3D hardware features it wouldn't use a dedicated graphics card if available so that one wouldn't consume any power for running Emulicious. Also Emulicious doesn't cause high CPU Usage (unless you set it to unthrottled for fast forward, where it runs as fast as it can on your machine). On my notebook it's around 3-4% CPU Usage and power consumption is specified as very low. For comparison, I just started up Kega Fusion 3.64 and its CPU Usage is at 17% with GPU Usage at 4% and power consumption is specified as very high.

In order to avoid derailing this thread further, I hope we can get back to topic and avoid discussions about programming languages. :)
 

ulaoulao

Controller Man
Staff member
No Java is not slow but often times the runtimes are; and that's not JAVA, that is your OS (and what you have on it). JAVA is platform independent so in what it does, it does so alright. I will say in working with it, that it itself is not buggy but many of the SDK's are. It is open source and so much that is opensource is half completed and buggy, and a problem to work with, but it's opensource right? So fix it if you don't like it. I think this is what PIX is trying to say and I most certainly do not agree with the way it was worded, I do agree that it gives off this impression. JAVA based emulation has been around for a while now and should not have the preconception.
 
Last edited:
Top