Emulicious to nowy, przynajmniej dla mnie, projekt multiemulatora systemów SEGA (master system, game gear) i Nintendo (Gameboy BW/Color) napisany w Javie. Celem emulatora jest dołączenie do aplikacji typu cycle exact (co imo przy wybranym środowisku wcale nie będzie łatwe), jednak po drodze do tego multiemulatora dodano parę ciekawych narzędzi - podgląd spritów, kafelków i całkiem użyteczny debugger. Jak na Jave, nie ma też co narzekać na wydajność, więc warto rzucić okiem. Nowa wersja pozwala nam cieszyć się emulacją w "fullscreenie".
- The new version extends the debugger with a Find Dialog and helps you track the control flow by highlighting the trace of the instructions being executed. A Reference Hierarchy has been added that lists all references to a specified label.
- When hovering a control flow instruction its destination will be highlighted now and when it is clicked while holding the CTRL key the debugger will be scrolled to its destination.
→ NOWSZY [Java] Multi - Emulicious 30/03/2021
A major update of Emulicious got released!
The full list of changes follows.
- Added CPU usage meter to debugger
- Added procedure cycles to Profiler’s Hotspot view
- Avoid collapsing nodes in Profiler’s call tree when the order changes (thanks to toxa)
- Added option to Memory Tracer to display file offsets in for ROM (thanks to EmuBoarding)
- Added an option to control whether to bring the debugger to top upon suspend (thanks to tbsp)
- Added options for sound sample rate and sound buffer size (thanks to Kabcorp)
- Added option to decide whether to keep ingame save data (SRAM) when loading a savestate (thanks to Maxim)
- Added color schemes for the Game Boy monochrome colors (thanks to Eievui)
- Show data types in their respective color in the status bar of the Memory Editor (thanks to Advert665)
- Fixed on Linux, sometimes the main window stayed black until a resize of the window (thanks to basxto)
- Fixed Game Boy RTC did not always load properly from .sav files (thanks to kivan117)
- Fixed SHIFT + key did not treat key as pressed (thanks to .exe)
- Fixed that after changing the layout of the Tile Viewer, its cursor did not work properly for the new layout (thanks to Kabcorp)
- Improved the performance of the disassembler
- Several other minor fixes and improvements
→ NOWSZY [Java] Multi - Emulicious 30/01/2020
This update is focused on usability improvements. The keys of the emulator and the debugger can now be configured. This allows everyone to use the keys they prefer. Additionally, the registers in the debugger have been extended and can now be exchanged and reordered.
The full list of changes follows.
- Added more registers to the debugger and made them exchangable
- Added a Key Setup to customize emulator/debug keys
- Show banked addresses in the Memory Editor
- Improved support for installing Emulicious into a folder where it doesn’t have write access (thanks to basxto)
- Fixed the working directory of Emulicious when it gets invoked via Emulicious.exe (thanks to tbsp)
- Fixed an issue where the Outline would show opcodes as labels (thanks to Maxim)
- Fixed Emulicious reverted to scale=1 when it gets closed without loading a ROM (thanks to eruiz)
- Fixed initial state of VBK in Emulicious BIOS for GBC (thanks to .exe)
→ NOWSZY [Java] Multi - Emulicious 27/12/2020
In the past two MacBook users of Emulicious had reported sound issues with Emulicious. Thanks to the report by glinesbdev, this update finally fixes these sound issues!
The full list of improvements follows:
- Fixed issues with sound on some Mac Books (thanks to glinesbdev)
- Added „bankS“ variable to query the current SRAM bank
- Added Profile To Next Line option to debugger’s context menu (useful for profiling call sites)
Emulicious [minor upd] 2020-12-17
- Don't patch in the hacky disk tracking into VRAM when CALL FILES(0) is active - fixes Atlantis
Emulicious [minor upd] 2020-11-30
- Added an option to always keep main window on top (can be useful for VSCode debugging)
- Reduced cracking sounds when emulation lags (e.g. when the debugger is opened)
- Added emulation of the GG X-Terminator cheat device for the Game Gear
→ NOWSZY [Java] Multi - Emulicious 04/10/2020
Emulicious [minor upd] 2020-10-04
- Fixed issues when CTRL or SHIFT were used as buttons (thanks to Kilkakon)
- Fixed code pointer in C source-level debugging
- Fixed an error when trying to paste at the end of the memory editor (thanks to JonteP)
→ NOWSZY [Java] Multi - Emulicious 20/09/2020
A minor update of Emulicious, 2020-09-09
- This update adds remote debugging with VS Code. It allows source level debugging with ASM and C code, breakpoints in your own source code and inspection of variables and system state. I’ve already thought about adding external debugging support for some years now but never got around to actually implementing it. So 2 weeks ago I decided to finally look into it and started to implement it. The required VS Code extension can be found on https://marketplace.visualstudio.com/items?itemName=emulicious.emulicious-debugger
→ NOWSZY [Java] Multi - Emulicious 20/08/2020
A minor update of Emulicious, 2020-08-20
This update comes with the following improvements:
- Fixed Space key in fullscreen with MSX emulation toggled turbo
- Added different disassembler dialects (WLA-DX, RGBDS, Sjasm)
- Added comments on GB header in disassembly.
- Added support for Notepad++ syntax highlighters
→ NOWSZY [Java] Multi - Emulicious 17/07/2020
A major update of Emulicious, 2020-07-17
The update comes with some additions such as a Hot Spots view for the profiler, a CPU tab for the Memory Editor and a dialog to add watchpoints.
Furthermore, support for MIDI devices to be used with MSX emulation has been added and some bugs have been fixed.
The full list of changes:
- Fixed an issue in YM2413 emulation
- Added a setting to the disassembler to use uppercase mnemonics
- Added a dialog to add watchpoints to the Breakpoints window
- Added support for MIDI devices in MSX emulation
- Added CPU tab to Memory Editor
- Added Hot Spots view to the Profiler
- Added setup of file associations for Windows users
- Added exe executable for Windows users
- Improved performance of YM2413 implementation
- Added a proper icon (thanks to MasterEmerald)
- Added @@ operator to read from locations and :: operator to map to a bank (see Expressions.txt)
- Fixed graphical glitches in main window on Linux (thanks to sverx)
- Screenshots are now saved with selected Pixel Aspect Ratio
A minor update of Emulicious, 2020-06-05
- Added stretch to window option
- Fixed issues with glitches in viewers on Linux (thanks to sverx)
- Added integer scaling option to main window and viewers
- Added Pixel Aspect Ratio settings to emulation options
- Slightly improved startup time
A major update of Emulicious, 2020-05-14
This update comes with several additions and improvements. Most notably an additional system is now emulated, the MSX.
Four weeks ago I got interested in emulating the MSX and now I feel it is ready to be released. It supports most cartridge ROMs released for the MSX1. If a disk ROM and an alternative BIOS are provided it also supports program on floppy disks in the form of dsk images.
Emulicious’s debugger now also supports loading Sjasm lst files as source files. Sjasm is a Z80 assembler that is often used for MSX development but can also be used for other Z80 systems like the Mastersystem.
Furthermore, the profiler has been improved to better support the calling convention of C.
The full list of changes follows:
- Added MSX emulation
- Added support to load lst files containing Sjasm sourcecode in the debugger
- Improved Profiler to better work with C calling convention
- Remember last directory for loading sources/symbols
- Fixed an issue with breakpoints on ROMs larger than 4 MB (thanks to Antígeno)
- Improved Auto Palette option in Tile Viewer for SMS Mode 4
- Added View menu to Tile Viewer to choose different layouts
- Added Frame Advance to the main emulator (formerly only available in debugger)
- Improved Tilemap Viewer and Tile Viewer support for TMS Modes
- Added CTRL+SHIFT+BACKSPACE as hotkey for Reload ROM
- Added an option to automatically reload a ROM when it changes
- Fixed a bug that wouldn’t allow setting gamepad inputs if there
- are more than 2 gamepads connected (Thanks to Niloct)
- Several minor bugfixes and improvements
A minor update of Emulicious, 2020-04-03
- When using Table Files the Memory Editor now shows all symbols (e.g. [LF])
- Added missing label for the volume of the noise channel of the Mastersystem
- Fixed a bug where some persisted breakpoints did not work anymore
- Fixed that very long lines did not fully display in the debugger
- Added a status bar to the debugger showing size and cycles of selected lines
- Reduced delay caused by the debugger when changing a lot of bytes
- in the Memory Editor
→ NOWSZY [Java] Multi - Emulicious 02/02/2020
- The PAUSE key on the keyboard can now also be used for pausing the emulator (do not confuse with suspend)
- The disassembler now supports multiple labels at the same address
- WLA-DX’s _sizeof_ labels do not show up in the disassembly anymore
- Added support for child labels
- Breakpoints are based on expressions now instead of just addresses.
This improves the use of breakpoints for ROM development
- Fixed a bug with sustain in YM2413 emulation (thanks to Kagesan)
- Fixed a repain glitch in the disassembler table
- Added a Sound Viewer
- Fixed an issue in Memory Tracer for the Game Boy Color
- Improved batch file to work independently from the current working directory
→ NOWSZY [Java] Multi - Emulicious 17/11/19
- Added FM chip emulation for the SEGA Mastersystem
- Added a Clear Log button to the Breakpoint Window
- Added Palettes tab to the Memory Editor
- Added VDP and PSG tabs for Mastersystem/Game Gear to the Memory Editor
- Added OAM and HRAM tabs for Game Boy (Color) to the Memory Editor
- Added Memory Tracer support for Game Boy (Color)
- Added Watchpoints for the Memory Editor tabs
- Improved the UI of the disassembler table
- Improved Go To dialogs by adding auto-completion
- Improved Find dialogs by adding a history and several search options
- Fixed cropped images in screenshots taken from Game Boy games
This update comes with several additions and improvements. One of these addition is the emulation of the FM chip of the SEGA Mastersystem. When it is enabled in the menu Options->Emulation->Master System then games supporting this chip will play music on it.
People interested in developing, hacking or researching games will be happy to see the new tabs in the Memory Editor. For the Master System and Game Gear a tab for VDP register and a tab for PSG registers have been added. For the Game Boy and Game Boy Color a tab for OAM and a tab for HRAM have been added. All systems received a Palettes tab in the Memory Editor.
Additionally, the memory tracer (previously only available for Master System and Game Gear) now also supports the Game Boy and Game Boy Color.
Furthermore, the UI of the disassembler table of the debugger has been improved. Its first column now spans the whole width of the table.
Last but not least, the Go To dialogs and the Find dialogs have been improved. The Go To dialogs are now enhanced by auto-completion facilities and the Find dialogs received a history and several search options.
→ NOWSZY [Java] Multi - Emulicious 19/10/19
- Added undo/redo of run actions in the debugger
- Added "Chat with the community" menu item to join Emulicious's Discord Server
- Added Expressions.txt with explanations and examples on how to use expressions
- Fixed a bug in the disassembler where it used labels located in wrong slots (Thanks to Wafer for pointing this out)
- Minor bugfix in procedure profiler
- Fixed an issue with automatic updates
- Added the possibility to set a message to log when a breakpoint is hit
These messages can consist of multiple expressions separated by commas. An example is "Entered WaitForVBlank at scanline ", scanline (The quotation marks need to be there to indicate a string) This will yield log messages such as the following: Entered WaitForVBlank at scanline 100
- Fixed an issue with the outline when sources are loaded