Coin-Op Collection Presents: Pretty Soldier Sailor Moon (Cave 68000)
Today's release marks the next entry in our Cave 68000 platform, Pretty Soldier Sailor Moon. A unique game featuring large sprite work, colorful tiles, digitized voice samples from the cast, and cel animation from the original animated series.
I've always been a fan of beat 'em up games, this one in particular, and the franchise itself. Unfortunately, it's not a common PCB; it's highly sought after and quite expensive. It’s a shame the development was rushed by Gazelle, as the game had potential to be much more than what was released.
The Usagi (Serena) sprite is layered incorrectly at the top of Tokyo Tower. This issue is caused by the sprite buffer overflowing. Initially, the object ID is correctly positioned in WRAM, but when the buffer overruns, it temporarily causes the object ID to render in the wrong section of WRAM, resulting in layering issues.
What's New For Cave68000?
Rewritten audio pipeline; full sound support across all Cave68000 hardware
New parametric audio mixer module from our Koin3 (K3) framework
Sound CPU implementation with synchronization and acknowledgement system between both CPUs
New OKI MSM6295 (x6295) implementation
IKAOPM, a die-shot based YM2151 implementation
What's Next For Cave68000?
Koin3 (K3) framework and supporting modules for MiSTerFPGA
xsd64/xsd128 SDRAM controller with faster CAS2 timing
New YMZ280B (ADPCM8) sound implementation for Cave68000 hardware
Encrypted sprite support
DDR3 framebuffer and sprite ROM relocated to SDRAM
Upcoming titles: Air Gallet, Metamoqester
Installation:
This installation is similar to Mazinger Z due to the same issues. Sailor Moon uses encrypted sprite data, and until we move to a line-buffered approach and rework both the loader and SDRAM handling, you’ll need to patch the sprite ROMs manually, as there’s currently no loader support for decryption.
To keep things simple and avoid OS issues or Python setup, two .ips patches are provided. Apply these to the following sprite ROMs:
bpsm.u76
bpsm.u77
The easiest way to run an .ips patch is by visiting Rom Patcher JS. Below is a brief tutorial on how to patch the sprite ROMs:
bpsm.u76.d
bpsm.u77.d
You'll also need to create a merged Layer 2 ROM. Why? Because support for interleaving multiple ROM files (e.g., 2bpp, 4bpp) that require interleaved padding is currently lacking in mra_loader.cpp for MiSTer. I'll set up a build environment for MiSTer Main in the future and submit a pull request to expand interleaving support.
In the interim, we've created a script that merges the 4bpp and 2bpp tile ROMs into a single 8bpp graphics ROM. It expands the 4bpp pixels, unpacks the 2bpp overlay, and combines them so each byte contains both layers, with 2bpp in the upper nibble and 4bpp in the lower. This packed format matches the expected ROM layout for Layer 2.
The process for running the script is simple; ensure you have Python 3 installed, then copy generate_layer2.bat, layer2_to_8bpp_interleaved.py, and the following files into the directory:
bpsm.u57
bpsm.u58
bpsm.u60
bpsm.u61
bpsm.u62
bpsm.u63
bpsm.u64
bpsm.u65
After this, double click the generate_layer2.bat or run it from cmd line and you'll see the following message:
Once we've completed the above, the interleaved Layer 2 requirement will be supported by the mra_loader in MiSTer Main, and decryption can be handled directly in the core loader.
Place your chosen method of using the patched sprite ROMs in the games/mame directory on your sdcard. If you do not follow the instructions you'll see scrambled sprites (left) and Layer 2 (middle) will display incorrectly.
Core Options:
Below are the current options for Cave68000. If an option is grayed out in the OSD, it is not currently supported. This will change in following releases as we swap out modules and eventually move the core to k3 framework.
The service menu is accessed through the EEPROM. To save your changes, click "Save settings". The EEPROM does not store hiscores, so we'll be adding support for that in a future release.
We'll see several tutorials and updates in the coming weeks; expect to see weekly posts, open-source framework, module support, updates to previously released games and a few other surprises this summer!
Until next time... GO JOE!!!
Disclaimer:
All product names, trademarks, and registered trademarks mentioned are the property of their respective owners. "MiSTerFPGA," "MiSTer", "Mazinger Z", "Pretty Soldier Sailor Moon", "Banpresto", "Cave", "Gazelle", "Toaplan", "Toei Animation," and all derivative works are trademarks, registered trademarks, or copyrighted materials of their respective holders. Use of these names does not imply endorsement or association with this post. All rights reserved to their respective owners. This post is for educational and research purposes only.
Comments (17)
Stellar work! 👏👏👏 Thankyouverymuch.
This is awesome! Is there any way to play the USA release on this version?
Check the alternatives folder. The US version is missing elements from the game though.
Long time no see. But what a treat!. Thank you team. Good job. And waiting for you to take out some "Roadblocks" on your way so the "Duke" can go through.
Amazing, looking forward to high score saving
Thanks vsync_adjust=2; video_mode=0;vrr_mode=0 in my Mister.ini fixed it!
This is awesome, nice work! I think I followed all the instructions correctly (I don't see corrupted sprites) - but the frame rate is super slow and stuttering for me.. on both HDMI and CRT... I'll try Mazinger and see if it happens there too
Check discord. This is.ini related.
Doesn’t work for me on TV or hdmi, only CRT. It got output at 114.9Hz for some reason
dear, try changing this in the ini file: vsync_adjust=2; video_mode=0;vrr_mode=0
So good - thanks Coin-Op Collection team!!
Yeah these installs are quite the pita… I will wait until G.I. Joe drops. Great work, however I would rather pay another 5 bucks or something to get a 1 or 2 step solution. Just my 2 cents..
Thanks guys as usual.. install was so simple, took about 2 minutes. I've said it before but I really do like these semi - manual installs.
Always delivering! Great job guys!!
Will this be coming to analogue pocket?
Once the DDR3 framebuffer is swapped out, yes.
Great work!!!
