|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
Author | Message |
---|---|
|
A new version of Emulicious is available
Posted: Fri Jul 19, 2019 9:35 pm
|
A major update of Emulicious is available!
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. It has been tested with the source code of all homebrews which provide source code (not only limitted to assemblers, i.e. it also works with SDCC). 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. This version also adds an option to setup the volume levels (Master System 1 or Master System 2) to use for Master System emulation. A full list of changes can be found below:
Users of Emulicious can receive the update via the update system, others can check it out at http://www.emulicious.net |
|
|
Posted: Sun Jul 21, 2019 7:46 pm |
I already had the chance to test the new features, and they're super useful! | |
|
Posted: Thu Sep 26, 2019 4:19 pm |
There was an issue with the automatic updates: On startup Emulicious shows an error that it failed to update and suggests to manually update by downloading the current version from the website.
The issue is fixed now but in order for the automatic updates to work correctly again you will have to manually update Emulicious now. You can do that Sorry for any inconvenience this has caused. Edit: The update needs to be downloaded from the website in order to fix automatic updates. |
|
|
Posted: Fri Sep 27, 2019 6:12 pm |
A minor update of Emulicious is available.
This update introduces the possibility to specify what 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
Unfortunately, there was an issue with automatic updates. Due to this issue you might need to manually update to the new version by downloading Emulicious from its download page https://emulicious.net/downloads/. |
|
|
Posted: Tue Oct 08, 2019 5:05 pm |
I believe I've come across a bug in the disassembler/debugger.
It seems when dealing with word length data, at least sometimes it is making the data lower than it should be by $4000. From the examples I've found, it seems to be happening when it thinks the data is an address, and when that address would be over $8000. As a result, it also creates unnecessary labels for these addresses. For an example, see Captain America and the Avengers (UE).gg address $5BD7. |
|
|
Posted: Wed Oct 09, 2019 6:28 pm |
It does not make the address lower than it should be. This is a concept called mapping. You can read about it here: http://www.smspower.org/Development/Mappers In this case bank 1 is mapped on slot 2. So the addresses $8000-$bfff (slot 2) accessed by the Z80 are mapped to the addresses $4000-$7fff (bank 1) in the ROM. |
|
|
Posted: Thu Oct 10, 2019 12:49 pm |
I don't think I've explained myself very well. I'm aware of mapping and I've been using it myself.
I think the best way I can explain myself is to describe it as steps to recreate: 1. Disassemble Captain America in Emulicious 2. Make no changes to the assembly 3. Build it again in WLA DX 4. Compare the binaries in a hex editor - some bytes in the new binary will be too low The problem isn't just limited to that game either, I first spotted it in Sailor Moon and I've come across it in a few others. Other games come out and the binaries are identical, which is the behaviour I would expect. |
|
|
Posted: Thu Oct 10, 2019 1:15 pm |
Yes, this explanation is clear now. :) You are right. That should definitely not happen and I will look into it! You already named Captain America and Sailor Moon and said you also encountered it in a few others. Any chance you can remember the full list and send it to me via pm or mail? It's also ok if the list contains a few false positives. :) It will help me track the issue down and fix it. |
|
|
Posted: Thu Oct 10, 2019 1:28 pm |
I'll certainly have a look, as I need to go back over the ~10 or so hacks I've done in the last couple of weeks to check if this issue has affected them. | |
|
Posted: Thu Oct 10, 2019 1:38 pm |
That's what I mean by false positives. You can just send me the full list and I will find the relevant ones. :) I don't want you to have extra effort because of this. |
|
|
Posted: Sat Oct 12, 2019 3:22 pm |
An update is available that fixes the issue in the disassembler that Wafer has experienced and described here.
Thanks to Wafer for pointing it out. :) |
|
|
Posted: Sun Oct 13, 2019 1:27 pm |
Nice! Thanks for the quick fix. |
|
|
Posted: Sat Oct 19, 2019 10:34 am |
An update of Emulicious is available!
This update adds undo/redo functionality for debugger run actions. When you notice during stepping that something in your code went wrong you can just undo your last steps and try again. Furthermore, a Discord Server for Emulicious was launched. A menu item to join this server was added to the Help menu. This server can be joined via the following link: https://discord.gg/YuKjBUF Additionally, the file Expressions.txt was added which contains explanations and examples on how to use expressions in Emulicious. Users of Emulicious can receive the update via the update system, others can check it out at http://www.emulicious.net |
|
|
Posted: Thu Oct 24, 2019 10:18 am |
Can palette entries shown in the palette viewer be changed so that the new values are reflected immediately in the running program? | |
|
Posted: Sat Oct 26, 2019 11:40 am |
There's no easy way to do that, yet. What do you want to use that for? :) |
|
|
Posted: Fri Nov 01, 2019 11:02 pm |
I was trying out various palettes for some GG2SMS hacks. It would be much easier if I could do it in-game via the palette window. |
|
|
Posted: Sat Nov 02, 2019 2:10 pm |
I noticed F8 and F9 resume/suspend only work if the debugger window has focus. Could it be made to work with the emulator window also? Would be useful when debugging.
Also, in the debugger window when I use the CTL-G or CTL-F (Goto and Find) features, the debugger window doesn't get focus after the input box is closed. Could this be fixed please as it gets annoying lol :) It's very good software. Thanks for developing it. P.S. One more thing - Can I add custom labels to the disassembly as I figure routines out? It would help to keep track of things. |
|
|
Posted: Sat Nov 02, 2019 11:17 pm |
A couple more questions as I have been using the program a lot.
Can the system areas be dumped like in MEKA - RAM, VRAM, Palette, Sprites. CPU Regs, VDP Regs, etc? Sprites and SATs would be good to be able to save out. Is there a way to see the VDP registers? I see the option, View->Show Registers on the Memory Editor window but enabling/disabling the option doesn't appear to do anything? Can the profile be set to profile accesses to the VRAM? This would be good when trying to unroll graphic routines. |
|
|
Posted: Sun Nov 03, 2019 2:21 pm |
How can this be reproduced? Whatever I try, as soon as I close the Find dialog the debugger window gets focus. I tried closing it while another window of Emulicious has focus and I tried closing it while another program's window has focus. Everytime the debugger window gets focus after closing the Find dialog. For the Goto Dialog there's even less to try because it's a modal dialog so there's not even a way to focus another window of Emulicious.
Yes, you can manually create a symbol file for that. When using a symbol file you can enable the automatic reload on change to continuously work with your new custom labels.
In the Memory Editor there are 2 save options. The first one saves the whole range while the other one saves only the selected bytes.
By enabling/disabling this option you enable and disable displaying the registers in the Memory Editor.
What's the profile? |
|
|
Posted: Sun Nov 03, 2019 5:40 pm |
hmm, maybe it's my window manager on linux then. Ok, but I don't know where to look to find them. Are they at a specific location under the VRAM tab or should they be displayed somewhere else? Because when I select the option, I don't see any difference in the Memory Editor window. Sorry, that was a typo, I meant the profiler. |
|
|
Posted: Mon Nov 04, 2019 11:11 pm |
I just tried it on Ubuntu with GNOME and it behaved the same way as on Windows. So there I also did not find a way to reproduce your issue.
At the bottom of the window you can select a register to follow. That should be the easiest way to see the registers being displayed in the Memory Editor. |
|
|
Posted: Tue Nov 05, 2019 12:11 am |
Yes, I'm using xfce4 and openbox. That's probably where the issue is.
As far as the vdp registers, I still don't see them. Here is the memory editor window as it shows on my system. I guess I was expecting a list of the vdp registers on the side of the editor window with the current values similar to how the debugger shows the z80 registers. |
|
|
Posted: Sat Nov 09, 2019 1:25 am |
Can someone give me an example please of how to set up the symbol file so that the default labels can be over-ridden with custom descriptions?
I can't seem to find anywhere that explains it. |
|
|
Posted: Sat Nov 09, 2019 7:50 am |
Here you can find an example created by Bock: http://www.smspower.org/forums/14446-WonderBoyIIITechnicalQuestions#84596 |
|
|
Posted: Sat Nov 09, 2019 1:35 pm Last edited by TheNameOfTheGame on Sat Nov 09, 2019 2:19 pm; edited 1 time in total |
Thanks, I read it but it's still not working for me. Not sure what I am doing wrong. This is the first time I've worked with Emulicious. Here's what I want to do: 1) Allow Emulicious to disassemble the program and create its labels. 2) Have a .sym file that overlays or over-rides only the symbols in it so I can slowly document routines and variables while keeping all others just as Emulicious created them. Is this possible? For example, the program has a routine at $1BE9 for moving some data into the vdp. Emulicious creates the label: _LABEL_1BE9_
So in my symbol file I put the line: 0000:1BE9 TILE2VRAM
and so I want all instances of _LABEL_1BE9_ to change to TILE2VRAM. Then I go to the menu File->Load Symbols and choose the symbol file. But the label _LABEL_1BE9_ never changes. What can I do? |
|
|
Posted: Sat Nov 09, 2019 1:40 pm |
Yes, that's how it works. Note: If you put the sym file next to your rom file and make it have the same name (except for the file extension) it will load it automatically. Maybe something is wrong with your sym file. Can you attach it? |
|
|
Posted: Sat Nov 09, 2019 2:17 pm |
Ok, thanks. I thought I was doing it properly, but it never changes the label in the Debugger window when I load the file.
I am just using a simple symbol file to test. I attached it below. The contents are just one line: 0000:1BE9 TILE2VRAM
Thanks for your help. *Edit* It is now working! I had to uncheck the option File->Load Sources Automatically. Not sure why that was checked since I am not working with sources. |
|
|
Posted: Sat Nov 09, 2019 2:26 pm |
That option automatically loads the source file with the same name as the name of your ROM. I guess you have saved the disassembly next to your ROM with the same name as the ROM? |
|
|
Posted: Sat Nov 09, 2019 2:28 pm |
One other suggestion.
The hscroll and vscroll values are displayed in the tilemap viewer as decimal. This makes it hard to cross-reference to values in the code that are in hex. Could you show the hex values also besides the decimal values? |
|
|
Posted: Sat Nov 09, 2019 2:29 pm |
Yes, I had saved the disassembly just to see what it did. I am not using it though. I guess that was causing the problem. I deleted it now. |
|
|
Posted: Fri Nov 15, 2019 2:12 pm |
Another request to make the VDP registers available to view. | |
|
Posted: Tue Dec 03, 2019 3:56 pm |
Thanks for the update!
Quit menu not working for me on macOS. Workaround is to use the red dot to close the window and therefore the app. |
|