

This lets PP64 write raw RGBA5551 images in place of HVQ files. If it sees HVQ, it jumps back to the original HVQ decode method. PP64 doesn't know anything about HVQ, which is surprising given how important it is!įor Mario Party 1, PP64 patches the HVQ decompression in ROM with a small ASM hook, and writes a couple dozen lines of logic to check whether the file being decoded is actually HVQ. This reduces game engine knowledge needed to use the editor, and keeps the UI simple. The editor bears the responsibility of generating the chains when writing to ROM. In the board format, the mapping structure simply includes these connections because it doesn't care about chains.
PARTY PLANNER 64 MARIO PARTY CUSTOM BOARD CODE
This is one of the main critiques I would have for the engine (imperative code required for very common tasks). For the simple cases, it doesn't really make sense. Abstracting out chain eventsĪs the game engine overview describes, chain merges and chain splits are implemented as events. I have thought about implementing an advanced UI mode that opens up these possibilities, and extending the board format.

I would be open for any discussion about this. This makes exporting the original boards (and writing them back again) impossible for now (among many other difficulties). The drawback is simply that the complex separate-chain same-spaces implementation cannot be represented. I haven't thought much about it, but I imagine it would be hard to maintain chains from code as the user is editing the board.(A simple example to visualize this would be a running track a track board could have one circle of spaces and separate chains for each "lap.") I haven't come up with a way to express chains simply in UI, particularly the useful ability to reuse the same spaces with different chains.It maps well to the mental model most people would probably have when imagining what the data structure would look like (without knowing about chains).Instead, there is simply a listing of spaces (very similar to the board definition structure) and a separate map structure mapping space index to the possible path options. The board format does not encode the complex chain structures from the game engine. If other Mario Party editors should appear, they could share a common file type.īoard Format Design Decisions Abstracting out chains.PP64 can work with a simple structure that works well with modern programming (JSON).
PARTY PLANNER 64 MARIO PARTY CUSTOM BOARD PATCH
The format is plain text and likely smaller than any patch format.Boards can be distributed legally, as long as the user has the rights to distribute the assets used for the board.Having a custom format makes a lot of sense. A patch file couldn't be applied to the game in a different region, and exporting only to a ROM would mean custom boards couldn't be easily distributed legally. These end up being inflexible and limiting.

