mirror of
https://github.com/etienerodri/PRSA-MapEditor.git
synced 2026-09-02 17:27:19 -05:00
472 lines
9.0 KiB
Markdown
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.
|