Files
PRSA-MapEditor/README.md
etienerodri 68fe39ce25 Add contributor acknowledgments to README
Added acknowledgments for contributors to the README.
2026-08-17 20:31:11 -04:00

472 lines
9.0 KiB
Markdown

# PRSA Map Editor
PRSA Map Editor is a map editing tool for **Pokémon Ranger: Shadows of Almia**.
The goal of this tool is to make editing the game's maps easier without having to edit everything by hand in a hex editor.
The tool can load a Shadows of Almia ROM, extract the files it needs, render the maps, let you edit different parts of the map, and save your changes back into a new ROM.
This project is still being worked on, so some parts may change as more of the game formats are figured out.
Wouldn't be possible without SunakazeKun , Fexean , ronitsinha , pokemonlover1234 .
---
## Features
### Map Viewer
* Load a Pokémon Ranger: Shadows of Almia ROM
* Extract the ROM files needed by the editor
* Load already extracted ROM files
* Browse the maps in the game
* Render the maps using the real game graphics
* Zoom in and out
* Scroll around larger maps
* Play map animations
* Render CTA animations
* Render PLA palette animations
* Render NPC animations
* Render object animations
* Show or hide Pokémon
* Show or hide NPCs
* Show or hide objects
---
## Collision Editor
The collision editor lets you edit the map's `0x03` collision layer.
You can:
* See the collision grid over the map
* Paint collision values directly on the map
* Drag the mouse to paint multiple cells
* See every collision value used by the map
* Select different collision types
* Use **Color Mode**
* Use **Number Mode**
* Save the edited collision back into a new ROM
Each collision cell is based on a **16x16 pixel** part of the map.
Number Mode shows the collision value directly on each tile.
For example:
```text
0x001A
```
will show as:
```text
1A
```
---
## Palette Editor
The palette editor lets you change the colors used by the map.
You can:
* Select a tileset
* Select a palette bank
* Edit colors one at a time
* Use a color picker
* Enter colors using HEX
* Preview the tileset
* Import palette TXT files
* Export palette TXT files
* Change Hue
* Change Saturation
* Change Value
* Change every color in one palette bank
* Change every palette color in the map
* See palette changes on the map
* Edit colors used by PLA animations
* Keep palette changes when moving between maps
* Save changes from multiple maps into one ROM
There are two larger palette tools:
### Change All Palette Bank Colors
Changes the colors inside the selected palette bank.
### Change All Colors
Changes all palette colors used by the map.
---
## Pokémon Editor
The Pokémon editor lets you change the Pokémon placed on a map.
You can:
* View Pokémon already on the map
* See their real sprites
* Move Pokémon by dragging them
* Edit their X and Y position
* Delete Pokémon
* Add Pokémon
* Browse Pokémon using the Pokémon Menu
* Search Pokémon by name
* Select multiple Pokémon from the menu
* Add multiple Pokémon at the same time
* Save Pokémon changes into a new ROM
If a map does not already have a Pokémon layer, the editor can create the `0x09` layer when Pokémon are added.
---
## Pokémon Randomizer
The tool also has a Pokémon randomizer.
The randomizer goes through the maps and changes Pokémon placements while trying to keep the field move requirements usable.
The original ROM is not overwritten.
A new randomized ROM is created instead.
---
## NPC Editor
The NPC editor lets you work with the map's `0x08` NPC layer.
You can:
* View NPCs on the map
* Render their real sprites
* See NPC animations
* Select NPCs
* Move NPCs by dragging them
* Edit X and Y positions
* Add NPCs
* Delete NPCs
* Set an NPC to visible
* Set an NPC to not visible
* Browse available NPCs using the NPC Menu
* Search NPCs by ID
* Select multiple NPCs
* Add multiple NPCs at once
* Save NPC changes into a new ROM
The editor uses `fielddata.bin` when needed to match NPC records with the correct NPC graphics.
---
## Object Editor
The object editor works with the map's `0x04` object layer.
Objects can be things like:
* Boxes
* Signs
* Doors
* Furniture
* Map props
* Other interactive objects
You can:
* View objects on the map
* Render their real game graphics
* See object animations
* Move objects
* Edit X and Y positions
* Add objects
* Delete objects
* Browse objects using the Objects Menu
* Search objects by ID
* Select multiple objects
* Add multiple objects at once
* Create needed TOBJ entries in `fielddata.bin`
* Save object changes into a new ROM
New objects are created using the correct starting state needed for them to appear on the map.
---
## PNG Export
Rendered maps can be exported as PNG images.
The exporter uses lossless PNG and exports at a larger resolution when possible.
This is useful for:
* Looking at full maps
* Map research
* Comparing edits
* Making references
* Working with map graphics in image editors
---
## Saving
The editor does not overwrite your original ROM.
When saving changes, the tool creates a new `.nds` file.
Depending on what you edited, the tool can update things such as:
```text
Map DAT files
Map TEX files
fielddata.bin
```
The files are then put back into a new ROM.
Always keep a backup of your original ROM.
---
## Requirements
You will need:
* Windows, Linux, or another system that can run Java
* Java 17 or newer
* A Pokémon Ranger: Shadows of Almia Nintendo DS ROM
The ROM is **not included** with this project.
---
## Running The Tool
Download the latest `.jar` file.
Run:
```text
AlmiaMapEditor.jar
```
You can also run it from a terminal with:
```bash
java -jar AlmiaMapEditor.jar
```
---
## Basic Use
### 1. Start the editor
Open the JAR.
### 2. Select your ROM
Press:
```text
SELECT ROM
```
Choose your Pokémon Ranger: Shadows of Almia `.nds` file.
The editor will extract the files it needs.
### 3. Select a map
Use the map list on the left side.
Click a map and wait for it to render.
Map names look like:
```text
m001_001
m001_007
m002_003
```
### 4. Choose what you want to edit
Use the buttons at the top:
```text
POKEMON
NPC
COLLISION
PALETTE
OBJECTS
```
### 5. Make your changes
Edit the map using the menu you selected.
### 6. Save
Use the save button inside the editor you are using.
The tool will create a new ROM with your changes.
---
## Map Files
Shadows of Almia maps mainly use files like:
```text
m001_001.map.dat.lz
m001_001.map.tex.lz
```
The DAT contains the map layout and different map layers.
The TEX contains the map graphics and palettes.
Some of the map layers currently used by the editor are:
```text
0x02 - Map graphics
0x03 - Collision
0x04 - Objects
0x08 - NPCs
0x09 - Pokémon
0x0D - Map graphics / shadows
0x0E - CTA animation
```
The game also uses other files such as:
```text
fielddata.bin
PokeID.bin
NPC archives
Object archives
CTA files
PLA files
```
The editor reads these files to make the maps look and work closer to how they do in the game.
---
## Extracted ROM Folder
After selecting a ROM, the editor creates an extracted ROM folder.
You can use:
```text
LOAD ROM FOLDER
```
to load those files again without extracting the ROM another time.
This is useful when testing the tool or working on the same ROM more than once.
---
## Current Status
The editor is still in development.
A lot of the map format is working, but Pokémon Ranger: Shadows of Almia has many different map systems and special cases.
Things may still be wrong on some maps.
If you find a map that:
* Renders wrong
* Has the wrong colors
* Has a broken animation
* Has the wrong NPC
* Has the wrong object
* Saves incorrectly
open an issue and include the map name.
Example:
```text
m001_007
```
Explain what is wrong and what you expected to happen.
Screenshots are also helpful.
---
## Bugs
If the tool crashes or something does not work, open an issue.
Please include:
* What you were doing
* The map name
* What editor you were using
* What happened
* What you expected to happen
* A screenshot if possible
Do **not** upload copyrighted ROM files when reporting a bug.
---
## Project Goal
The main goal is to eventually make editing Shadows of Almia maps as easy as possible.
Instead of manually editing game files, the editor should handle the file formats and let the user work directly with the rendered map.
More parts of the game will be added as they are figured out.
---
## Game
This tool is made for:
**Pokémon Ranger: Shadows of Almia**
Nintendo DS
---
## Disclaimer
This is a fan-made project.
This project is not made by, connected to, or supported by Nintendo, The Pokémon Company, Creatures Inc., or HAL Laboratory.
Pokémon and Pokémon Ranger are trademarks of their respective owners.
No Pokémon Ranger ROM or copyrighted game files are included with this project.
You must provide your own legally obtained copy of the game.
---
## License
The source code in this repository is released under the license included with the project.
Game assets, Pokémon graphics, Nintendo DS files, and other copyrighted content extracted from Pokémon Ranger: Shadows of Almia are **not** part of that license.
---
## PRSA Map Editor
Made to make Pokémon Ranger: Shadows of Almia map editing easier.
More updates will come as more of the game is figured out.