|
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 |
---|---|
|
Emulicious Hacking Tools
Posted: Sun Dec 01, 2013 1:42 am Last edited by Calindro on Sun Dec 01, 2013 1:38 pm; edited 1 time in total |
Hi guys,
I'm currently working on hacking tools for my emulator Emulicious. It provides 2 tools so far: A smart (seperating code from data) disassembler that can be configured on a per-rom-basis. Completely seperates code from data in games like Alex Kidd In Miracle World and Sonic 1 already. A memory tracer that can tell the sources of data (see screenshots). For example it can be used to find text within the rom in order to alter/translate it (see screenshot of the Tilemap Viewer). Or just to find out where tiles, sprite data, palettes or tilemap entries are coming from within the rom. I didn't have much time to test these features yet but if you're interested you can send me your email address via pn and I will send you a copy of the most recent version. Best Regards Calindro |
|
|
Posted: Sun Dec 01, 2013 1:02 pm |
btw, the fact that you made it in java means that, for example, we can use them online on applets, like i do about zx-spectrum at http://nitrofurano.altervista.org/retrocoding/zxspectrum/misc ? this would be really interesting! :) | |
|
Posted: Sun Dec 01, 2013 2:01 pm |
Wow, this is the second most amazing hacking tool I've ever seen.
Are you doing some magic or is this a dynamic disassembler like I proposed? For the data source addresses, are you tracing ld-instructions? |
|
|
Posted: Sun Dec 01, 2013 2:21 pm |
Hi Martin,
Haha thank you! This is giving me motivation to make it the most amazing one! :) May I ask which is the most amazing one?
Yes, I guess. :D
No, it's not using anything of the emulation core. It's only analyzing the code to make decisions.
Yes, something like that. I'm also tracing data in RAM trying to provide ROM addresses as much as possible. |
|
|
Posted: Sun Dec 01, 2013 2:38 pm |
No, I'm just quoting someone ;)
Hmm hmm hmm. So it's running just once through the game and could run without the emulator? Do you analyze the code somehow to detect jumptables? |
|
|
Posted: Sun Dec 01, 2013 2:44 pm |
Exactly (yes to both questions). If it fails you can give hints on blocks of codes and jumptables in a cfg file (and tell me so I can improve it to not fail there anymore :)). |
|
|
Posted: Sun Dec 01, 2013 3:21 pm |
Wow. I don't see how it could detect start and end of the jumptables. If it's using a constant to access the table, then it's possible. (SMS Examine was able to do such things, albeit not all that well and probably buggy.)
If I take GG Turrican for example, and I know the game very well, if a disassembler could detect the code handlers for enemy objects for example, statically, I dare say it would mean the disassembler would completly understand the program. |
|
|
Posted: Sun Dec 01, 2013 4:26 pm |
I think it's increasingly rare for people to even install Java these days, for security reasons. Javascript is a better target for in browser emulation. |
|
|
Posted: Sun Dec 01, 2013 6:55 pm |
security reasons on Java, even from OpenJDK versions? but btw, i got really surprised with emulators on javascript nowadays! :) |
|
|
Posted: Sun Dec 01, 2013 7:46 pm |
This. I haven't installed Java in like 2 years and refuse to ever do so again. |
|
|
Posted: Sun Dec 01, 2013 7:49 pm |
Hi olaf, if I write a Zillion level editor it will also be written in Java. Will you still refuse installing it? |
|
|
Posted: Sun Dec 01, 2013 11:02 pm |
Well, there are ways to run a Java VM without actually installing it: you'll notice that Oracle's java download page provides the VM both as an installer or as an tar.gz compressed file; if you want to run a Java program without installing the VM, you may just download the proper tar.gz, decompress it, and use the 'java' executable inside the 'bin' folder. |
|
|
Posted: Wed Dec 04, 2013 8:20 am |
I'm having a good time using the ROM-hacking features of Emulicious. I have set up Context like Maxim describes in programming lesson 1, and having assemble on F9, Meka on F10, and now Emulicious on F11. This makes a nice development platform for hacking/modding ROM's - I dare say best of both worlds: I rely on Meka for the extensive debugging features, memory viewer/editor, cheat finder etc., and on Emulicious for the handy memory tracer, the built-in disassembler, the ability to zoom the screen and different viewers, and its overall speed and responsiveness.
Thank you for contributing this amazing emulator/hacking asset, Calindro! :) |
|
|
Posted: Wed Dec 04, 2013 9:15 pm |
No, I will most definitely install it to use it. :) |
|
|
Posted: Wed Dec 18, 2013 1:31 pm |
hey guys,
I've started working on a debugger with syntax highlighting. It shows the register values in top right and the stack in bottom right. It allows 3 kinds of stepping: Step Into: Steps to the next instruction to be executed Step Over: Steps over the current instruction Step Return: Steps out of the current function |
|
|
Posted: Thu Dec 19, 2013 8:41 am |
This is excellent! I can't wait for a release. It's about time we had a cross-platform emulator with decent debug support. Meka is fine but it's a real pain to get it compiled and running under Linux. Even running it under Wine is no great joy. |
|
|
Posted: Thu Dec 19, 2013 10:56 am |
Great work. Again! | |
|
Posted: Thu Dec 19, 2013 11:25 am |
Sorry for hijacking this topic but, what precisely is the pain with compiling Meka under Linux? I have vastly improved the Windows build now (it should compile out of the box in one step) and I'd be happy to improve the Linux situation as well, it's just that I don't have a Linux install. Any help or questions welcome. If you want to move this further better to reply in the Meka forum to not spam here. |
|
|
Problem
Posted: Sun Dec 02, 2018 9:15 pm
|
I'm trying to see a color in the palette but it says "source not available". help? | |
|
Posted: Sun Dec 02, 2018 9:19 pm |
Why do you resurrect this old thread? There's a more recent Emulicious thread ;) : http://www.smspower.org/forums/16568-EmuliciousUpdateAvailable If you're interested in the source of a color in the palette you need to enable the Memory Tracer. If the Memory Tracer is disabled it displays "source not available" in the source field. |
|
|
Posted: Sun Dec 02, 2018 11:09 pm |
Can you give me like a chart with the colors so I can change it? I'm very new to this. (also if you feel like it you could tell me how to change it? I'll probably figure it out by myself eventually tho) |
|