Code Monkey home page Code Monkey logo

skytemple-ssb-debugger's Introduction

logo

SkyTemple Script Engine Debugger

Version Downloads License (GPLv3) Supported Python versions Discord

Debugger and code editor for the Script Engine of Pokémon Mystery Dungeon Explorers of Sky.

A proper README will follow later.

To run, you need GTK3. Please keep in mind that some stuff may be pretty broken right now, so make sure to keep backups of ROMs!

skytemple-ssb-debugger's People

Contributors

dependabot[bot] avatar end45 avatar irdkwia avatar mirkn avatar tech-ticks avatar thecapypara avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

skytemple-ssb-debugger's Issues

Segmentation fault on ExplorerScript compile

When ExplorerScript files are compiled, sometimes the app crashes with a segmentation fault at the end.

This is probably due to the save thread unsafely accessing some parts of the file manager.

Incorrect auto replacement or typo

search_down = not self.builder.get_object('sr_search_setting_search_backward2s').get_active()

search_down = not self.builder.get_object('sr_search_setting_search_backward2s').get_active()

    search_down = not self.builder.get_object('sr_search_setting_search_backward2s').get_active()  #backward2s < backwards

Breaks "find and replace" @theCapypara ;-)

Add 'compile all' menu option

To make it easier for teams to share ExplorerScript files, a compile all option should be added that compiles all ExplorerScript files which are not up-to-date with the game


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #hack-discussion.

Melon DS backend

Make a new ABI interface for melonds if none exists, a Python lib and then interfaces in the debugger to be able to switch between Desmume and MelonDS


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #general.

Fix scrolling in search (Win only?)

If the next search result is far away / if the document is big, clicking the icon for the next result stops midway through


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Incorrect number of arguments for back_SetBackEffect in parameter hint

Sentry Issue: SKYTEMPLE-K

SsbCompilerError: The number of parameters for back_SetBackEffect must be 1, is 2.
  File "skytemple_ssb_debugger\model\script_file_context\ssb_file.py", line 172, in save_thread
  File "skytemple_ssb_debugger\model\ssb_files\file_manager.py", line 101, in save_from_explorerscript
  File "skytemple_files\script\ssb\script_compiler.py", line 132, in compile_explorerscript
  File "skytemple_files\script\ssb\script_compiler.py", line 290, in compile_structured

Illegal instruction (core dumped) when trying to run main

Hi again,

Issue comes when i try to open scripts in skytemple. The application just close and the Illegal instruction (core dumped) pop in the terminal.
I've tried to do python -m skytemple_ssb_debugger.main to get more info. But nothing more happen.

Sorry not to be able to provide more info :/

Make `synchronized_now` work with "default" asyncio

Currently skytemple_files.threadsafe.synchronized_now requires erdewit/nest_asyncio to wait for the next job in the event loop to finish.

This is kinda an ugly hack, because asyncio doesn't support nested loops by default. There are some issues with this solution on Python 3.6 and on Windows.

We should check if we could replace this with a combination of asyncio.all_tasks and asyncio.wait.

asyncio.all_tasks is only available with Python 3.7, so there should be some backwards compatibility with Python 3.6 in place.

Missing File Extension in Screenshot

Selecting Emulator -> Screenshot... in the SkyTemple debugger will not save the image unless the user adds their own ".png" extension to the file.

Improve debug printing

  • Check what exactly DebugPrint2 was meant to be and fix up the offsets
  • Support hooking into the copy of DebugPrint0 and into DebugPrintTrace

Rewrite emulator integration

Rewrite the emulator integration so that:

  • it's faster: Goal is to reduce the overhead of the hook functions to the absolute bare minimum by avoiding the Python GIL however much possible and delaying processing hooks, so they don't block the emulator
  • it's stabler and actually thread safe: By delaying book execution and letting them be processed by the main thread instead of the emulator thread, get rid of any current thread synchronization issues

To achieve this, the interfacing code between the debugger and the emulator should be rewritten in Rust and use a queuing mechanism to send and receive events to/from the main thread to the emulator thread.

Windows: Issues with the Gtk SourceView

Sometimes the search 'lags' and you have to hit the arrow buttons multiple times to jump to the next match (though only in unionall?) and dragging and dropping script text duplicates it instead of moving it


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple-tester.

Error with routine aliases (for targeted routines)

Originally reported at: https://discord.com/channels/710190644152369162/712341699292037121/955919539307159633

While trying to load a new scene from the debugger, this error pops up and disallows savestates. When trying to close SkyTemple, it also hangs indefinitely.
For context, I had only added three new scenes and one new script (this particular one was the first new scene added). This error did not happen immediately, as it only started failing sometime after adding two new scenes.

Validation for control sequences

Refuse to save with undefined control sequences? Should probably be optional -> be able to turn that off


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Undo/redo is broken

On the current 1.6 pre-release line the undo/redo functionality in the Script Engine Debugger no longer works.

Debugger's emulator pause not working properly

I encountered an issue while using the emulator's debugger. I paused the emulator and then loaded my save state. However, I noticed that even though the "pause" button was still pressed and the debugger was indicating that "The game is paused," I could still use the emulator. This is different from the past versions where I had to press the unpause button to resume the emulator's functionality. This has been encountered in Skytemple's latest build.

Emulator.issue.mp4

(I apologize if the video's quality is not the best.)

Wrong loglevels for some messages

Eg:

ERROR:skytemple_ssb_debugger.model.script_file_context.ssb_file:After save: Build temporary text marks for opcodes...
ERROR:skytemple_ssb_debugger.model.script_file_context.ssb_file:After save: Triggering callback...

Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Button to skip to the next dungeon floor

To quote UsernameFodder:

I was randomly skimming through your latest dev stream VOD while procrastinating, and I noticed the chatter about the stairs item in PSMD. Is live RAM editing a current/future possibility in the debugger? Idk if End has mentioned this to you but there's this specific byte (actually two of them, *dungeon_ptr + 0x6 and *dungeon_ptr + 0x8) you can set that'll automatically advance you to the next floor at the end of the turn. Maybe that'd be useful for doing test runs? You could also use this in conjunction with the


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Screenshots do not capture anything

Attempting to use the screenshot feature in the debugger successfully saves an image, but it results in a blank, transparent 256x384 image.

Suggestion: add a Search All option

Add an option to search all scripts. Currently one can only search a single opened script at a time. This option would be useful for cases when one wants to replace all appearances of a certain term, which are generally inconvenient to look for (such as all appearances of a vanilla character's name in cutscene dialogue, when users want to change the species of that character - we've had many cases of users wanting to do that).

Freeze with auto-proceed option (Windows only?)

The new version of SkyTemple crashes whenever I try to auto proceed to next floor, and sometimes when I reload a savestate and get the "x script was changed" message, the emulator crashes but not SkyTemple as a whole. Not sure if there's any correlation. My last version was pre-1.0 so that could be something within the last few builds


Beep, boop, I'm a bot! This issue was created by @MaxSchersey in #beta-tester.

Save file location

Write the save file to the project directory instead of the current working directory


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Fix Spellcheker

The spellchecker breaks with any new lines inserted


Beep, boop, I'm a bot! This issue was created by @Parakoopa in #skytemple.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.