Sunset Riders & Pocket Analogizer (Patreon)
Downloads
Content
Sunset Riders
Four gunmen looking for action under the hot sun. If you have not met Sunset Riders before, get ready to fall in love with its smooth animations, humour and saloon girls. We welcome a new core: JTRIDERS, compatible with Konami's Sunset Riders hardware. This core operates in all FPGA platforms (including the small SiDi) and should present no problems to CRT screens.
The core has proved to be challenging due to its protection chip. This is a chip that seems to reconvert some data written in the sprite RAM region. We were able to make some measurements but we had to eventually rely on MAME's description of its behavior, which is in turn based on a bootleg PCB. The core adds bus timing accuracy over the emulated version, as the CPU is halted while the protection chip is working.
Technical Chat
The protection chip is also used to calculate collisions. This took much longer to implement than expected because of a very odd quirk. The following code in MAME:
data = -space.read_word(0x105818);
data = ((data / 8 - 4) & 0x1f) * 0x40;
Has an unexpected behavior when the 16-bit word read is negative, because the variable receiving it is a 32-bit integer. When the read word is -4, the divide operation produced a wrong result which was needed by the game. I do not know whether this is a fluke in the MAME implementation, but it is needed. These operations are done in Verilog like this:
vx0 = (v0+16'd32)>>3;
vx1 = -vx0;
vx2 = {5'd0,vx1[4:0],6'd0};
You can see how the minus is applied after the divide by 8 in Verilog. This code produces the same quirk using only 16-bit integers. Without this, the character can just walk through anything on screen, making the game unplayable.
Pocket Analogizer
Supporting CRT gaming is one of our goals so when the Analogizer developer approached us for support we took an interest in the project. This a device that connected to the Analogue Pocket provides analog video output in a number of formats. It also supports SNAC devices (original game console controllers).
As of today, all JT cores support the Pocket Analogizer. You have to enable it, though. Follow these instructions to configure it. Note that JT is not related to this hardware development or selling. Please contact the Analogizer developer for support.
NVRAM Files
Sunset Riders and other games keep their configuration in a non-volatile memory (NVRAM) and do not have regular DIP switches. In order to change the game settings you need to enter the test menu (F2 on MiST(er) and coin+A on the Pocket). When you quit the core on the Pocket, your settings get saved automatically. On other platforms you have to go through the OSD menu and save manually.
This has created discussions in the past. For instance, you had to manually configure The Simpsons to get the theme music on start up. But, for Sunset Riders, the situation is worst. It requires a valid configuration to boot up. This has triggered the need to provide a default NVRAM configuration. Here is how it works:
MiSTer: the default configuration is part of the NVRAM file. No special attention required by the user
MiST family: the default configuration is in a *.RAM file in JTBIN. Copy it to your SD card.
Analogue Pocket: the configuration is in a *.sav file in the Saves folder. If you just copy or unzip the files from JTBIN you will get it. I am not sure about how updaters will handle that folder.
Note that for MiST and Pocket, if you have already created modified settings files, you may lose them when updating cores if you blindly copy the files from JTBIN. Most people do not modify the default settings, but this is a small detail to take into account. If you want your specific configuration to persist, do not copy the default NVRAM files to your SD card.
Other news
Alien Storm graphics have been restored after the regression introduced with the Moonwalker release
WWF SuperStars schematics are now about 30% complete
Fixed a bug in Bubble Bobble for the Pocket that made it start in test mode
Support for 2P versions of Sunset Riders will be released in the future, together with some GFX fixes needed for the second boss fight
The Simpsons default configuration has been set to play the opening theme
Note that today's update already has next week's Friday date in the file names as we are releasing on a Saturday
The full team is on holidays next week, so there will be no update on the 2nd of August