• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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

How do I cache this webpage for offline use? Hexed.it allows their tool to be cached for offline use and even adds an icon to your home screen on android for easy access. Will you implement the same? Also how do I edit pokemon sprites on Pokemon Emerald?
 
seems the creator of this tool has been silent for a while now, hopefully he/she/who has entered a busy time and will continue in due time, not that this project has been abandoned
 
Thank you so much for making this open-source Jugales! It's a goldmine of information which is helping me create my C# asset ripper a lot faster.

I did notice a small bug:

On some maps the secondary tilesheet seems to be corrupted / not read correctly. Here's an example in BPRE on bank 1, map 42:
[PokeCommunity.com] [ALPHA] PokéWebKit, a browser-based toolkit for editing GBA/NDS ROM data

I'll have a look myself to see if I can find out what's up. If I find something I'll let you know.

Thanks again for the great contribution!

Edit 1:
  • On map 1.42 the blocks start working correctly after 640 (that's the same value as stored in MAIN_TILESET_BLOCK_COUNT for BPRE)
  • It seems on every other map tile 640 is glitched
  • It seems unlikely to me that this is a coincidence, I will go through the if-statements containing references to MAIN_TILESET_BLOCK_COUNT and see if theres a problem there.

Edit 2: Fixed tile 640 not being loaded
Although this does not yet fix the problem with the secondary tilemap, it does at least fix tile 640 never being loaded correctly:

Replace
Code:
blockId > gbaService.constants().MAIN_TILESET_BLOCK_COUNT
in the 3 if-statements in world-structures.ts with
Code:
blockId >= gbaService.constants().MAIN_TILESET_BLOCK_COUNT

I'm nearing the clean solution for the other problem. It seems 640 is not (always) correct. I'll keep ya posted

Edit 3: BlockCount can differ per level
The 640 constant is right most of the time, but sometimes not. For reference the amount of blocks in a tileset can be calculated with:
Code:
int totalBlockDataLength = tileset.BlockMetaOffset - tileset.BlockOffset;
tileset.BlockCount = totalBlockDataLength / BLOCK_DATA_LENGTH;
BlockMetaOffset is the pointer/address to behaviors in this tileset.
BlockOffset is the pointer/address to blocks in this tileset.
BLOCK_DATA_LENGTH = 16

I haven't yet found what causes the original bug, though I suspect the last bytes of tileset1 aren't being read/decompressed correctly. I'll have another look soon.

Final Edit: Fixed!
After a long day I've found the problem:
Change the if-statement found in world-structures.ts:179 to this:
Code:
if ((normalizedTileId == tile.tileId && !this.isSecondary)
      || (normalizedTileId != tile.tileId && this.isSecondary)) {
      for (let i = 0; i < bitmapLength; i++) {
        tilePixelsValues[i] = this.pixels[normalizedTileId * bitmapLength + i]
      }
    } else {
      for (let i = 0; i < bitmapLength; i++) {
        tilePixelsValues[i] = this.alternatePixels[normalizedTileId * bitmapLength + i]
      }
    }

Good luck implementing this, let me know if you have any questions.
 
Last edited:
The idea of this tool is absolutely fantastic, and I love the features described in this thread. I think I see why some people are having trouble with this. For FireRed, I couldn't get this app to work with 1.1. I happened to have 1.0 handy for other reasons, and tried that, and that worked! That looks like a bug worth looking into.
 
Hello everyone,

I appreciate your continued support as I have been away. I started a new job in October and have been working 60-hour weeks. Things have calmed recently and I can get back to development here.

A complete look-and-feel update has been released. The primary goal of this release is to address screen compatibility on mobile, which should be fixed. I also added some colors to make the app less bland. If you do not see the update when you visit the website, clear your browser cache.

Changelog:
- All tools are no longer on a single page - each tool has its own page
- To navigate to a tool, click/tap the PokeWebKit logo at the top then select from the list
- Added a new background color, inspired by the bag color on FireRed
- Added consistent styling to all editors
- Added a spinning pokeball loading animation between pages
- Added full mobile compatibility (some large maps still lag on phones)
- Changed movement editing to me more simple - green for allowed movement, red for obstacle, orange for wildcard
- Separated all editors into tabs of related information where possible
- Marked "Animations" toggle as experimental and disabled it by default
- Temporarily disabled some unstable features, such as grass/puddle overlay animations
- Temporarily disabled some features which are still being refactored - e.g. block editor, editor settings
- Included some fixes that some of you mentioned in this thread. Thank you all!
- Probably broke a few things along the way, still testing

World Editor:
Spoiler:


Monster Editor:
Spoiler:


Trainer Editor:
Spoiler:


Item Editor:
Spoiler:


Battlefield Editor:
Spoiler:


Tool Picker:
Spoiler:
 
Last edited:
It lags its ass off whenever i load it. but aside from that pretty cool
 
Hello,
Already congratulations for the development of this your site.
I am French and I have a few questions.
Is it possible to make the fireRED version in French editable?
If not, is it normal that the "Change Name" button is gray and does not work?
Thank you and I give you all my support for the future.
 
Does anyone know why the website for PokeWebKit is down?

It was one of my favourite ROM editors, and I was looking forward to using it again. If the issue is the cost of hosting it, I'd be happy to donate to keep it going.

Hopefully the site comes back online at some point.
 
Back
Top