Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.
Recently I'm attempting to convert some CoolX-Lite specific MMC3 hacks I found on the web for use on a standard MMC3.
Most of them like Mr. Gimmick and Ai Senshi Nicol are simple as adding code to enable WRAM, but some of them like Batman Return of Joker and Wai Wai World 2 makes use of 1-screen mirroring which is not present on a standard MMC3. I'm thinking on converting them for use on a standard MMC3 by writing the exact same PPU data on $2000-$23FF into $2C00-$2FFF, but I don't know how to do that.
And yeah, I definitely know that Mapper 118 can handle the job better, but it writes the 1-screen mirroring informations to the bankswitching registers itself rather than MMC3's dedicated mirroring register, which might cause some conflicts with bankswitching. (Note: Some of the CoolX-Lite MMC3 hacks makes use of 32KB banking feature of the CoolX-Lite mapper, and I will not touch on it since I believe standard MMC3 don't support 32KB banking feature even with hacking. ) lidnariq had informed me that Mapper 189 can handle 32KB banking, so I will try targeting to it.
Last edited by SF-Human on Mon Jul 29, 2024 12:38 am, edited 1 time in total.
Wai Wai World 2 doesn't scroll in 4 directions at any point. There are both horizontal and vertical scrolling levels. You can simulate single screen mirroring by using horizontal mirroring during horizontally scrolling levels, and use vertical mirroring during vertically scrolling levels. When the game wants to write to the status bar, you'll need to redirect it to the 4th nametable, and when the game wants to scroll to the status bar, pick a different scroll location.
Or alternatively, target the NES Play Action Football board instead (NES-TLSROM), which actually supports single screen mirroring.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
SF-Human wrote: Sat Jul 27, 2024 8:11 pm(Note: Some of the CoolX-Lite MMC3 hacks makes use of 32KB banking feature of the CoolX-Lite mapper, and I will not touch on it since I believe standard MMC3 don't support 32KB banking feature even with hacking. )
MMC3 with only 32KB banking is mapper 189, if the hacks don't need to switch between multiple banking types.
Dwedit wrote: Sun Jul 28, 2024 10:17 am
Wai Wai World 2 doesn't scroll in 4 directions at any point. There are both horizontal and vertical scrolling levels. You can simulate single screen mirroring by using horizontal mirroring during horizontally scrolling levels, and use vertical mirroring during vertically scrolling levels. When the game wants to write to the status bar, you'll need to redirect it to the 4th nametable, and when the game wants to scroll to the status bar, pick a different scroll location.
Or alternatively, target the NES Play Action Football board instead (NES-TLSROM), which actually supports single screen mirroring.
Thanks for the information.
I actually considered TxSROM at one point, but I'm worried that it might cause conflicts with bankswitching since it writes mirroring data directly into bankswitching registers.
SF-Human wrote: Sat Jul 27, 2024 8:11 pm(Note: Some of the CoolX-Lite MMC3 hacks makes use of 32KB banking feature of the CoolX-Lite mapper, and I will not touch on it since I believe standard MMC3 don't support 32KB banking feature even with hacking. )
MMC3 with only 32KB banking is mapper 189, if the hacks don't need to switch between multiple banking types.
I've done a quick check on the original game of the hacks and the hack itself before and it seems that:
1. Q Boy, Bio Senshi Dan and Xexyz's hacks don't switch banking types during gameplay. I will try target into it.
2. Street Fighter II switches two 16KB banks, so it probably don't fit there.
Since CoolX-Lite mapper is poorly (if ever) documented, I have to look at the source code of the fork of FCEUX from evgenykzz2 which adds support of CoolX-Lite mapper. It can be found at here: https://github.com/evgenykzz2/fceux-evgenykz
Attempting to fix more up today and got these findings.
1. Crisis Force
According to CoolX-Lite's website, this hack generates the background animations at the start of the level and loads them into video memory (CoolX-Lite specific feature? It appears to glitched up when played on an emulator with only standard MMC3 support, this is especially apparant in later levels). Also, one of the 2nd player's forms loads the wrong tileset from the PPU memory. I don't know how to fix them up/make them work on standard MMC3.
2. Final Fight 3
Since MMC3 don't support 512KB CHR-ROM, this conversion uses 256KB CHR-RAM to load compressed art instead. For some reason it wasn't specified in the header with NES 2.0 format and uses standard iNES format instead.
3. Kid Dracula
Using both vertical and single-screen mirroring and switches in real time. This is most noticeable at the end of the second floor on the first level.
There was an earlier attempt on an MMC3 hack circulating on the internet utilizing TxSROM's single-screen mirroring feature, but the author for some reason uses a pirated version ([p1][t1] in GoodNES) to convert it and added his name on the title screen ("Zhengwei 2012").
You do not have the required permissions to view the files attached to this post.
t3m1v8f4 wrote: Tue Jul 30, 2024 8:14 am
For Kid Dracula, have you tried using the TxSROM's single-screen mirroring feature again but with a different base ROM?
I'll look into that when I got some spare time - I'm pretty busy recently and don't have time for those hacking stuff.
New "findings":
1. Among the CoolX-Lite hacks I have, Wai Wai World 2, Batman - Return of Joker and Kid Dracula all seems to have 256KB CHR-ROM. The mirroring configuration in Mapper 118 might conflict with CHR bankswitching registers if hack into this mapper.
2. Crisis Force's glitched background in the CoolX hack seems to be caused by incorrect CHR bankswitching. I will also look into that.
Just investigated the CoolX mapper a bit more today and it seems to only allow one 32KB bank being switched rather than two 16KB banks in its 32KB banking mode. So Street Fighter II's CoolX mapper hack could also be one 32KB bank, meaning there's possibilities that it can be converted into Mapper 189.
After a quick and dirty hacking BS I've done the first level of Wai Wai World 2, but the HUD doesn't look right at the moment (which is out of my knowledge currently). (Shoutout to Dwedit for his method on single-screen mirroring! )
The rest of the game doesn't seem to use single-screen mirroring (only horizonal and vertical), so what I need to do for them is (probably) only fixing the HUD so it displays correctly in the bottom instead of leaving it blank.
You do not have the required permissions to view the files attached to this post.
Dwedit wrote: Sun Jul 28, 2024 10:17 am
Wai Wai World 2 doesn't scroll in 4 directions at any point. There are both horizontal and vertical scrolling levels. You can simulate single screen mirroring by using horizontal mirroring during horizontally scrolling levels, and use vertical mirroring during vertically scrolling levels. When the game wants to write to the status bar, you'll need to redirect it to the 4th nametable, and when the game wants to scroll to the status bar, pick a different scroll location.
Or alternatively, target the NES Play Action Football board instead (NES-TLSROM), which actually supports single screen mirroring.
The final section of World 9 scrolls diagonally (which is the only level besides the entirety of World 1 that utilizes single-screen mirroring), but since the entirety of the level is consisting a straight line with little obstacles (unless you count the enemies and the platforms which doesn't appear on the ground), I think it won't hurt.