• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data

Drake Baku

Draconian Dragon Prince
110
Posts
7
Years
  • normally i work on my pokemon data first and map last, but seeing your chosen path of progress i guess ill be having some fun working in reverse this time haha
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • so new question
    when it comes to saving, do i have to save each map each time i wish to switch to an other?
    i went back to an other map to confirm i did things right connection wise and i had to redo my changes

    I was kind of expecting that the changes would remain when i switch maps XD
    guess ill have to see how the saving system works further then haha

    but would i need to reload the rom each time i switch to a map after having done one?


    NVM that one
    bit it is a little annoying that if i switch to an other map and then return (cause i forgot something or wanted to check something) that the map shown to me reflects zero of the changes i did until i save and reload the editor with the newer file
    but yeah beyond that this is really working nicely, cant wait till the script editors and adding new encounter data are added ^^
     
    Last edited:
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    Have you ever wanted to preview grass animations and puddle ripple animations in the map editor? Now you can!

    Quick Changelog:
    - Added saving for monster base stats
    - Added a Behavior tab to the World Editor
    - Added support to click or drag over grass and puddles (while Behavior tab is open) to preview field effects
    - Significantly improved the Field dialog to show structured animations for every known field effect (the first tool I know with this data)
    - Added a highlight/dim effect to some World Editor tabs to help see what you are editing.
    - If you click water with the World Editor's Encounters tab open, the tool will show water encounters.
    - If you click grass with the World Editor's Encounters tab open, the tool will show grass encounters.
    - Cleaned up ROM read/write code
    - Pending Changes system now auto-detects if you reverted a change yourself

    [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data


    I decided to take some screenshots of how this looks on my phone. A lot of these where taken in dark mode since it was pretty early so it default that way: https://imgur.com/a/sCvJRed

    A lot of these where taken right before you pushed your last update, but the animation editor was the only one that I spotted any main changes to for display. I also noted ui that scrolled, meaning they weren't a real problem.

    I tried opening a couple hacks I had on my phone too (which I knew wasn't decomp based), one didn't open while one was mainly still Emerald, left screenshots of those in the album too.

    The load times is way better when opening a map, but I would like to suggest having the Pokémon/Monster tab being the default when you open a rom. It takes 5-20 seconds to open a map for me, adding to the start-up time.

    Thanks for the screenshots! I'll be honest, I had no clue the website had a dark mode and I'm the only developer lol. I guess it was inherited through Angular Material, cool. I will get around to supporting smaller screens within the next week or 2.

    May I ask if know what the license will be? Also is there some way to credit your code, upon release that is. Great work. Looking at the unminified code, it looks neat and very organised.

    The code will be open source with credits appreciated but not required.

    so new question
    when it comes to saving, do i have to save each map each time i wish to switch to an other?
    i went back to an other map to confirm i did things right connection wise and i had to redo my changes

    I was kind of expecting that the changes would remain when i switch maps XD
    guess ill have to see how the saving system works further then haha

    but would i need to reload the rom each time i switch to a map after having done one?


    NVM that one
    bit it is a little annoying that if i switch to an other map and then return (cause i forgot something or wanted to check something) that the map shown to me reflects zero of the changes i did until i save and reload the editor with the newer file
    but yeah beyond that this is really working nicely, cant wait till the script editors and adding new encounter data are added ^^

    Sorry about that! It's a bug that I still have yet to fix.
     
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    XSE scripting has been added seamlessly into to the map editor! Simply click an entity to view its script.

    Quick Changelog:
    - Created a parser for script commands based on ShinyQuagsire's SQLite databasae (which I parsed to CSV then made some fixes). He will be credited in the OP.
    - The commands were for his SEA (Script Editor Advance) language but I adapted the parsing for XSE since all of he keywords match.
    - The parser translates into a flexible object structure before being converted to XSE, so expansion to other scripting languages is possible (e.g. SEA).
    - Added a script preview showing the first 10 lines of the script (check the gif below) so you can quickly preview scripts.
    - Added a script dialog to edit scripts and view all lines in a structured format.
    - Added syntax highlighting (Lua for now, with real keyword reading in the future).
    - Added a "Current Line Helper" to show what the command on the current line does. This is a preview of the larger command dictionary to come.
    - Added support for combination XSE commands such as msgbox, giveitem, etc
    - Added support for many of the constants (e.g. MSG_SIGN, LASTRESULT) found within XSE.
    - Added CodeMirror for an in-browser text/code editor in the script dialog.
    - Script saving not enabled yet but nothing is stopping you from copying/pasting into XSE and saving that way.

    Please let me know if you save anything by copy/pasting into XSE and it breaks. I haven't experienced this yet, but there may be some rarely used keywords which are buggy. Can't test them if we can't find them, so let me know where they are if you see them.

    [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data


    Today I am going to improve performance of the application and look into a friendly mobile view for all. I will then be out of commission until Monday. :)
     
    392
    Posts
    3
    Years
    • Seen Nov 24, 2023
    Suggestion: add a goto button on a warp so it leads to the destination map
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • I love how quickly you manage to update this system ^^
    now if i can create new scripts (have to check haha) then I can add some more cut tree's to my roads ^^

    in time i also want play with wild pokemon interaction scripts, but outside some event give away wannabe's, most will be with new pokemon's i wish to add (and new type)
    but for those ill need to wait till you add such functions (cause ive noticed if i open a rom where things have been extended to new offset's, then it cant find anything, not that i mind so much as long as you keep up this amazing job and add such features in due time cause i rather fully use your tool from now on XD)
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • so i found an other bug
    just as that about the first tile in the second list being blank and in game look funky (causing me to readjust maps to work around it haha)

    the SS Ann is utterly and completely glitched up
     
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    Support for phones and tablets has been added! This is just an initial standup of the UI. The map editor (touch inputs on the map) is still buggy on mobile. Everything else seems to be working pretty well.

    I also temporarily removed the Start tool because its logic is wrong, and removed the Tiles dialog as the Blocks dialog shows the same thing.

    Spoiler:


    so i found an other bug
    just as that about the first tile in the second list being blank and in game look funky (causing me to readjust maps to work around it haha)

    the SS Ann is utterly and completely glitched up

    Strange, but not surprised. I think that's the only sprite of that size. I'm assuming it has a unique OAM key (which is a associated with a width/height) and it's not reading correctly.

    Suggestion: add a goto button on a warp so it leads to the destination map

    Thanks! I will add this Sunday evening or Monday.
     
    Last edited:

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • little suggestion / performance notice.

    when having a tile and using it to drag across the map, the first tile is often ignored so you need to move back, as that you need to move very slowly (which for my little play in the viridian forest is a bit of a bummer, selecting a noticing tile and then dragging it across the screen with the intent to have multiple spots marked and build a new forests from it haha, I mean it works but I need to cross the screen a lot of times more then A-map)
    but yeah in a sense just direct clicking is easier and faster even if it is more tedious due to this matter of how badly the dragging function is working, so i figured ill report it XD

    Also a little question, I know with A-map if you want to place a functional warp then the tile underneath should support it (being a warp or door tile for example)
    is your system bound by the same rules? cause if so then i feel an function to add behavior to specific tiles in the map or a tile editor/ creator like in A-map would be very useful (with such a thing people could even make grass behavior to other tiles by making a new tile haha)
     
    Last edited:

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • So I found something else about the warp's
    you have nicely listed the bank, map and warp destination
    but the warps themselves dont seem to have an indication of which destination the themselves are
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • seems its not possible yet to adjust map layout data, bummer i wanted to add a fourth layer to mt moon so i figured ill overwrite sevii isle 6
    but it being a 1x1 tile map size XD

    guess htta not working yet has to do with the system not being able to read from altered locations and for this it needs to repoint
    now to figure out how to work around this for the time being
     
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    Now open source, entering alpha phase, added a trainer party view in the map editor, and a bunch more!

    Changelog -
    Features:
    - Added a text saving system which can be used to auto-repoint in cases where text length has increased (also flushes existing bytes to 0xFF).
    - Updated the change confirmation dialog to show when something is being repointed. It will say "repointed/changed" in the title and show the before/after addresses.
    - Rebuilt the trainer editor from scratch to include more data, better formatting, and more flexibility (gif below).
    - Rebuilt the battlefield editor from scratch to include more data, better formatting, and more flexibility (gif below).
    - Enabled saving for trainer data with auto-repointing when needed for party data.
    - Enabled saving/editing for trainer names.
    - Enabled saving for basic item data.
    - Enabled saving/editing for item texts (name, description) with auto-repointing when needed for descriptions.
    - Enabled saving/editing for battlefield pointers - with more editable options to come.
    - Added read support for animated monster icons.
    - Added a smart battle preview to the NPC pane of the world editor. You will see the trainer name, sprite, and animated party icons (gif below).
    - Added a "Go to Trainer" button to the NPC pane of the world editor to switch to the trainer editor at a specific trainer.
    - Added basic support for overworld view directions (up, down, left, right) with more support coming in the future for timed movement previews.
    - Added a "Go to Destination Map" button to the map editor's warp pane. (thanks Mason Shu)
    - Added 10 additional editable base stat fields in the monster editor. All base stats are now editable/saveable.

    Fixes/Optimizations:
    - All editors are now lazy loaded for faster start-up
    - Rebuilt the map renderer again, this time using a more optimized animation approach (requestAnimationFrame in Javascript)
    - Fixed the first tile not painting on click-and-drag (thanks Drake Baku)
    - Fixed some script reading errors (e.g. duplicate text/movement/script references)
    - Fixed monster names list to work with existing expanded/repointed name tables
    - Fixed monster base stats to work with existing expanded/repointed base stat tables
    - Fixed monster battle sprites to work with existing expanded/repointed image tables (Fire Red only, still researching Emerald)
    - Fixed an issue where NPCs with no script would be saved with a script address of [00 00 00 08] (little endian)
    - Fixed an issue which would cause app performance to degrade over time when traversing different world maps.
    - Fixed scroll being disabled on some smaller screens, leaving the user unable to view/edit any off-screen data.
    - Fixed party data read errors in the trainer editor.
    - Performance improved on most browsers for both mobile and desktop - around 1.75x FPS increase on average.

    Known Issues:
    - Discovered an issue with the daycare lady script (and probably others) where sub-scripts rely on eachother in a web. This generates a broken script and takes longer to load.
    - Unable to edit EVs for monsters in the trainer editor. If anyone knows the structure of the 16-bit value which holds its data, let me know.
    - App runs better when no other tabs are open in the browser window. No degradation when multiple full windows are running though. This might just be due to how browsers split resources.

    Now Open Source -
    https://github.com/jugales/pokewebkit

    [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • Still wish to add to the warps an "Warp identity" cause when multiple warps exists on a single map (like mt moon), you need to figure out which warp it was (as the cursor/ selected tile location stays in the same spot)

    we got the warp destination showing the warp identity but no identity making it harder to figure out what goes where (especially if you worked on altering the map and forgot to adjust the warp locations using other tools and tricks to figure out what goes where making a chaotic setting of "which warp was which again?" (currently having that exact issue myself now haha))
     
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    Still wish to add to the warps an "Warp identity" cause when multiple warps exists on a single map (like mt moon), you need to figure out which warp it was (as the cursor/ selected tile location stays in the same spot)

    we got the warp destination showing the warp identity but no identity making it harder to figure out what goes where (especially if you worked on altering the map and forgot to adjust the warp locations using other tools and tricks to figure out what goes where making a chaotic setting of "which warp was which again?" (currently having that exact issue myself now haha))

    I knew I was forgetting something small but important haha. I had time to add the field before heading to work; its location is circled in the screenshot below. I hope it solves your issue!

    [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • LOL I certainly have not been playing around with this tool

    my entire download screen is filled with my "saves" from this tool 😂

    now if only you fix the bug when switching maps that the changes still show XD
     
    Last edited:
    19
    Posts
    6
    Years
    • Seen Jun 30, 2022
    I have been curious about how NDS games work, so I added a NDS file explorer to the app. You can view any file on the NDS file system, and it probably even works for non-Pokemon NDS games. It's very primitive for now, just a paginated hex view of each file.

    The NDS and GBA modules are now lazy loaded for better performance and scalability.

    I will be decoding NARC (package) files soon so even more data can be viewed. I also need to fix it to only read the length of each file. Right now it just reads 1024 bytes at the file start, and the ability to read multiples of 1024 bytes ahead using pagination, but I'm out of time before the weekend.

    [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data


    Updated the Github with NDS file system features: https://github.com/jugales/pokewebkit

    LOL I certainly have not been playing around with this tool

    my entire download screen is filled with my "saves" from this tool 😂

    now if only you fix the bug when switching maps that the changes still show XD

    I will hopefully get to fixing the map switch issue Monday!

    Edit: I've found it's easier to do a wipe every 5 saves but keep 1 for a backup
     
    Last edited:

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • I dont mind so far to have such a list of files, backup is one thing but i found it fun to see how much i am doing with this tool based on my number of saves haha

    admitted it would be smaller if i dont have to save and reload each time I switch between maps haha

    to which i started to think, while it is mostly due to that bug for now, but might be useful in the future as well, having a short cut to loading a rom might be useful (now the way to work afterall is refreshing the page to get to select your rom, depending on one's system that could be slow so instead of having to reload to have access to that select a rom to switch when needed at any moment)
     

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • I will hopefully get to fixing the map switch issue Monday!

    dont know if you got to it, but in case you did, then i sadly have to say it did not stick.

    EDIT: ok so what i noticed is that encounter data does get saved when switching maps
    so it seems to be the tiles (I have not changed scripts this time so i dont know about those)


    Edit2; at least I got to where I wanted to get before doing a trial run of the changed maps in game (due to nor being able to make scripts this was kinda the limit anyway haha, but that gave me a good point to set a "from this point in I'll try the maps out" XD)
    Found some things already, got to check if it was human error or something else (I could have sworn I did change movement permissions but r2 still abides vanilla rules, plus some hidden item scripts are weird)
    Once I got to check it out I'll get back to you
     
    Last edited:

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • Alright getting back to my edit 2

    to start with I found that some hidden scripts have item number set to 0, ill be trying with one to see if that might be an issue
    I have confirmed that the global hidden item ID (which is used to set flags abou having found the item yes or no) is set to 1 for all instances ive gotten to so far, which is an issue

    I have played up to pewter city and when talking about scripts all I did was alter the location, which means this is somehow read wrong from the rom (or a patch i run over my rom is the issue, but i dont think ive selected anything related to hidden items so...)

    one hidden item gave me a sooth sack instead of antidote (first when you enter viridian forest)
    that too is something have not changed myself so not sure what is up here, again could be the patch but iirc all stuff i did with that related to items was replacing a blank item with a link stone

    Also ive found something more confusing, due to that matter of getting a sooth sack instead of antidote, ive confirmed the normal items as well, well ive confirmed them on r2, and found this
    in the game files ether is 34 and paralyze heal is 18
    but the scrips are stating item codes 12 and 22
    yet in game you get the right item, which seems like somehow the scrips show the wrong number?

    as for the movement permissions, i had to do R2 twice due to my browser crashing, seems i forgot to redo the movement permissions the second time thinking i did it cause of the first time haha

    have not gotten to play or as such test things yet, likely have to restart to see if i fixed my end of the issues haha
    but i wont have the time atm for that (or to try a clean rom for hidden item id checks), had to make space to fix stuff and report this so now i got to double down on my other stuff for today haha
     
    Last edited:

    Drake Baku

    Draconian Dragon Prince
    110
    Posts
    7
    Years
  • Alright so I've at least got to try the rom out with the "fixes"
    Very oddly the antidote one still ends up as an sooth sack

    I've ateast confirmed that keeping "hidden item number" empty does not effect as it will drop 1 at least
    And that the matter of "global hidden item number" fixed the ones not spawning

    But outside the sooth sack all other hidden items were only ????????? Items
    So even through it is showing the right item in the script editor there is definitely something off on item number checks

    Hopefully I get to check that out on a cleaner rom later unless someone beats me too it
     
    Back
    Top