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".
- 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.
→ 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
→ NOWSZY [Java] Multi - Emulicious 19/07/19
This new version of Emulicious enables you to load your own source files into the debugger. This means that you no longer have to step through a disassembly of your code when developing a game. Instead, you can step through the code you wrote.
Additionally the outline has been improved and now shows different icons for code and data. You can even decide if you want to hide code or data labels from the outline. The Reference Hierarchy also uses the new icons now.
A full list of changes can be found below:
- The debugger now allows to load sourcefiles so you can work with your own code now
- The disassembler now groups consecutive runs of equal bytes with dsb directives
- Added Volume levels to Sound menu
- The Outline can hide code or data now
- Outline and Reference Hierarchy use icons now to differentiate between code and data
- Coverage data is now persisted
- The memory editor now allows to save the current selection as a binary file
- On Mac OS when Emulicious is closed via Cmd+Q it will now also save its settings
- Fixed issues with symbols loaded from SDCC map files
- Fixed wrong position of current address in overview ruler
- Several minor bugfixes and improvements