SNES PowerPak 1.03b mappers

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
SNES PowerPak 1.03b mappers
by on (#55019)
If anyone has a console that reports the SDRAM Error, this mapper set will hopefully fix that problem. No boot ROM flashing or hardware changes needed. It works here on the 8 various consoles I have but won't be official until more peeps try it out. Should also mean that the SNES mini will now be supported. I still need to get the new portable SNES to test :)

Also adds an autosave option for battery RAM at the saving question screen. This will save to the same file that was loaded when you started the game.

Download at: http://www.retrousb.com/downloads/POWERPAK132103b.zip

by on (#55020)
Has the sram issue with rom expanded ExHiRom games been fixed? I tried out dq3e and it still doesn't save.

by on (#55022)
I'll try it when I get home. Does this also fix the DSP-1 detection error?

by on (#55034)
shadowkn55 wrote:
Has the sram issue with rom expanded ExHiRom games been fixed? I tried out dq3e and it still doesn't save.

Nope, just those changes noted for now.

by on (#55035)
mic_ wrote:
I'll try it when I get home. Does this also fix the DSP-1 detection error?

Yes both were the same problem, where some timing signals ended significantly later on the mini and some EU 2/1/3 systems.
Re: SNES PowerPak 1.03b mappers
by on (#55042)
bunnyboy wrote:
Also adds an autosave option for battery RAM at the saving question screen. This will save to the same file that was loaded when you started the game.


how exactly will this work ? you must still press the resetbutton for 5 seconds or so ? (i'm not sure how it works because mine is not arrived, till now)

are you already in conversation with d4s for the ultra 16 save-compatibility ?
Re: SNES PowerPak 1.03b mappers
by on (#55043)
Zoigl wrote:
how exactly will this work ? you must still press the resetbutton for 5 seconds or so ?

You still hold reset for 5 secs and the screen asking to save appears. But now there is an option to use the ram file that was originally loaded so you do not need to navigate and choose it again. There are still the options to choose a different file or not save at all.

Zoigl wrote:
are you already in conversation with d4s for the ultra 16 save-compatibility ?

Don't know what that is...

by on (#55062)
Great to see continued support for the PowerPak, will report back any problems encountered by the end of the week.


Quote:
Zoigl wrote:
are you already in conversation with d4s for the ultra 16 save-compatibility ?

Don't know what that is...


When the PowerPak has switched to SRAM saving mode after holding reset for a couple of seconds, it will output what appears to be garbage data around range $00-3f:21c0-$00-3f:21ff.
Intended or not, this breaks compatability with devices using that memory region, among these are the LifeFitness bike interface and Ultra16, which is a BIOS for the SNES of sorts I developed a couple of years ago. Ultra16 menu on youtube

Unless there's no way around it, it would be greatly appreciated if you could either disable that data output or move it to some other region.

by on (#55073)
Mini-derail, please feel free to respond via PM.

d4s, how did you get info on the LifeFitness interface? Did you disassemble the game, or did you actually buy one of those crazy ass things? Heh.

Fascinating to hear that it connects to the SNES' B-bus like that. I figured it was just a fancy controller.

by on (#55080)
$21FF is used for the SDRAM DMA port, so that won't be moving. Might work to use the DMA=0 config option so it never touches that port. Sounds like cool hardware tho!

by on (#55106)
I just updated to the latest mappers and it is working on my SNES jr now. I will keep an eye out for any new bugs.

Mitch

by on (#55125)
bunnyboy wrote:
$21FF is used for the SDRAM DMA port, so that won't be moving. Might work to use the DMA=0 config option so it never touches that port. Sounds like cool hardware tho!


Thanks, that's good to know!
Using $21c0-$21c3 myself here.
I'm pretty sure the PowerPak was outputting data on the whole upper $21xx range, but only in SRAM save mode. Will look into that and the new mappers later.


Quote:
d4s, how did you get info on the LifeFitness interface? Did you disassemble the game, or did you actually buy one of those crazy ass things? Heh.

Fascinating to hear that it connects to the SNES' B-bus like that. I figured it was just a fancy controller.


Yeah, I finally bought one of these interface boxes after several years of hunting on ebay. Guess I'm just a sucker for crazy hardware. ;)

To be perfectly honest, I haven't researched it as much as I'd have liked to yet.
It is an interesting piece of hardware, though. The base unit has battery-backed RAM and an RS232 interface IIRC.
A PCB-shot should be in there somewhere: http://dforce3000.de/?p=filedump&srch=exertainment

Will send it over if you ever feel like emulating it.

by on (#55126)
I'm glad you've got hopefully all of the compatibility issues fixed now. I figured like the early NES PowerPAK issues we would see them resolved shortly. One question I wanted to ask you was about ROM loading and how you determine loading and mapping. The reason being certain strange roms like the BS-X roms have been reported not to load properly. They work just find in copiers like the GDSF7 though. So if you can share how the loader determines the cartridge setup that would be great as it would be nice to get games like the BS Shockman Zero and BS Zelda working, assuming the reports I've heard are true and they don't currently work.

by on (#55129)
Quote:
It is an interesting piece of hardware, though. The base unit has battery-backed RAM and an RS232 interface IIRC.
A PCB-shot should be in there somewhere: http://dforce3000.de/?p=filedump&srch=exertainment

Will send it over if you ever feel like emulating it.


Really appreciate the offer, but I really don't think I could pull it off. Wouldn't want to deprive you of something so rare. And even if I could (I can't), the hotel overlay thing looks like a lot more fun, bleh. Besides, still have Matthew's BS-X over here collecting dust >.>

I do notice there's an EPROM on that board, with the UV window covered. So it looks like we need to emulate the TL16C550AN (which has serial interface stuff in it, looks like it was meant for a modem, maybe an online firmware update mechanism or service mode?) and connect it to that EPROM's data.

http://www.alldatasheet.co.kr/datasheet ... 550AN.html

God, all sorts of controller insanity, too. SNES to RJ45 ... I am aware you can use RJ45 as a ghetto serial cable, telxons usually do that. So all in all, wow. This is an insane amount of work for something that can't even be emulated via keyboard / mouse / gamepad. Amazing.

I posted some minor software disassembly notes here:
http://board.byuu.org/viewtopic.php?f=3&t=477

If you want to continue work on this sometime, let me know and I'll try and help out, but I don't think I want to do all of that work alone :/

by on (#55130)
First impressions:
-Autosave works great! (How about auto-loading *.srm files that have a filename equal to the ROM's that's been selected for loading?)
-2Mbit hirom games don't work yet.(example: Hungry Dinosaurs.
Not valid by official Nintendo specs, but how about having a minimum bootable filesize of 32kbyte(lorom) and 64kbyte(hirom)? Would be great for homebrew stuff.)
-no issues with SDRAM/DSP-1 errors so far on any unit.

Regarding that $21xx-region issue:
-after holding reset to enter SRAM saving mode, the PowerPak responds to read accesses from $21c0-$21ff. Here's what it looks like, although that picture itself doesn't prove anything in particular, of course: http://dforce3000.de/index.php?p=fdsingle&uid=361
-DMA=0/1 doesn't affect this.
-Data read appears not to be random, patterns are visible.

Here's a guess:
The PowerPak DMA port is accessed at $21ff by software, but you don't actually decode the full b-bus adress in hardware, just the upper two adress lines, resulting in the DMA port being accessible from $21c0-$21ff.
The port just stays on after ROM loading.
I assume the adjustment neccessary would be rather small, unless you don't have the full adress bus b connected to your FPGA, of course.

My general experience with the b-bus is that quite a few games accidentaly access the whole bus range, most prominently during memory clearing operations. I had to put a hardware lock on the Ultra16 registers to prevent some games from messing up (Lion King comes to mind in particular).
Disabling most PowerPak registers after ROM load might increase compatability. Just an idea, though.

by on (#55131)
byuu wrote:
Quote:
It is an interesting piece of hardware, though. The base unit has battery-backed RAM and an RS232 interface IIRC.
A PCB-shot should be in there somewhere: http://dforce3000.de/?p=filedump&srch=exertainment

Will send it over if you ever feel like emulating it.


Really appreciate the offer, but I really don't think I could pull it off. Wouldn't want to deprive you of something so rare. And even if I could (I can't), the hotel overlay thing looks like a lot more fun, bleh. Besides, still have Matthew's BS-X over here collecting dust >.>

I do notice there's an EPROM on that board, with the UV window covered. So it looks like we need to emulate the TL16C550AN (which has serial interface stuff in it, looks like it was meant for a modem, maybe an online firmware update mechanism or service mode?) and connect it to that EPROM's data.

http://www.alldatasheet.co.kr/datasheet ... 550AN.html

God, all sorts of controller insanity, too. SNES to RJ45 ... I am aware you can use RJ45 as a ghetto serial cable, telxons usually do that. So all in all, wow. This is an insane amount of work for something that can't even be emulated via keyboard / mouse / gamepad. Amazing.

I posted some minor software disassembly notes here:
http://board.byuu.org/viewtopic.php?f=3&t=477

If you want to continue work on this sometime, let me know and I'll try and help out, but I don't think I want to do all of that work alone :/


Sure!
Didn't mean to sound like you have to in any way.
Just wanted to mention that it's available for research should you ever feel like it.
I don't see an EPROM on that pcb, though. Are you refering to the 8464a-10 right next to the battery? That's an 8k SRAM.

by on (#55132)
d4s wrote:
How about auto-loading *.srm files that have a filename equal to the ROM's that's been selected for loading?

Thats probably the eventual plan, with a folder path in the config file.

d4s wrote:
-2Mbit hirom games don't work yet.

Also probably a future change. The block size is 4Mbit so anything smaller will just have to be copied multiple times when loading.

d4s wrote:
you don't actually decode the full b-bus adress in hardware, just the upper two adress lines, resulting in the DMA port being accessible from $21c0-$21ff.

Yup when you said C0 I knew that was the problem. Should be an easy fix. All regs are only on when the boot rom is enabled so it doesn't affect any running games.

by on (#55136)
The updated Powerpak is now working in my SNES jr (2/1/3). Also the 2GB Dane Elec cart which refused to work at all with the Powerpak now seems to be working correctly.

Remembering the save file is nice :)

by on (#55147)
My brothers 1/1/1 SNES still seems to have intermittent issues where it doesn't want to load some games at times. This is the same as what is was doing with the old mappers.

Mitch

by on (#55227)
I am very pleased to report that this works like a charm on my Super Famicom Jr. as well. If only composite video didn't look like crap on an LCD (not that S-Video on an LCD is anything to phone home about either)...

I can't wait for autoloading (that's really a better feature to me than autosaving). If I may make a suggestion, I suggest keeping things simple when/if you implement this. Rather than having an clunky menu, it would be better I think to just have the SRM file show up by default under "Load Battery RAM", and if the user wants to load an SRM file other than the one with the same file name as the SMC file, s/he need only select "Load Battery RAM" as before.

The one weakness I see with this simple approach is in situations where someone might want to load a completely blank SRM file, but the obvious remedy is just to keep a spare blank file on the card. :P

EDIT: Oh, and also separate toggles in the config file (e.g. "AUTOLOAD=1") would be nice too.

Anyway, awesome update! Keep up the good work!

by on (#55234)
Eyedunno wrote:
If only composite video didn't look like crap on an LCD (not that S-Video on an LCD is anything to phone home about either)...

A lot of LCD TVs have something called "picture in picture", where one "sub" picture is drawn in a small window over a full-screen "main" picture. I seem to remember trying some 240p consoles like the NES and Super NES on my Vizio TV, and the composite video looked as sharp as a DS.

But now my question: Why does the "long reset" take so much longer with the SNES PowerPak than the NES one?

by on (#55235)
tepples wrote:
A lot of LCD TVs have something called "picture in picture", where one "sub" picture is drawn in a small window over a full-screen "main" picture. I seem to remember trying some 240p consoles like the NES and Super NES on my Vizio TV, and the composite video looked as sharp as a DS.

I'm reasonably sure my cheapo Sanyo doesn't have PIP, but even if it did, I think I'm better off getting a small cheapo CRT than playing in a tiny window on a larger LCD TV. There seem especially to be issues with what I assume to be alternating scanlines (for blinking), for instance, when you target all in FFV, I tend to have the cursor either not appear at all or appear as a regular, non-blinking cursor. Chnaging the settings, I can get it to appear like a comb, which is actually better, but the same settings result in intolerable jumpiness when the screen scrolls.

tepples wrote:
But now my question: Why does the "long reset" take so much longer with the SNES PowerPak than the NES one?

Interesting... Not that it's been an annoyance to me by any means - I played through FFIV from beginning to end on my PowerPak.

by on (#55248)
Eyedunno wrote:
EDIT: Oh, and also separate toggles in the config file (e.g. "AUTOLOAD=1") would be nice too.

You pretty much described what I was thinking :) The only missing part is a line in the config file to say the path to the saves folder. Should be able to do the same thing for both NES and SNES. Just need more free time...

tepples wrote:
But now my question: Why does the "long reset" take so much longer with the SNES PowerPak than the NES one?

That's just how my counter worked out :) Didn't think people would be saving often enough to really notice.

by on (#55576)
No longer beta, available from the website. Also tweaked the exhirom mapping so hopefully DQ3en is good now. Hope it didn't break anything else!

by on (#55738)
Tried the release version on Test Drive II. Not that I was expecting a fix given the error, but figured it couldn't hurt :)

Code:
                                Copying Game...                 Game Copied  0800sectors 8Mbit  Checking BRAM...                No Save File                    MAP00 TYP40 ROM74 SRM74 RST407400                               No $40FFC0 Header               MAPFF TYPFF ROMFF SRMFF RSTFFFF No $FFC0 Header                 MAP32 TYP00 ROM0A SRM00 RST802A Header at $7FC0                 0KB SRAM Added                  ExLoROM 8Mbit unsupported

by on (#55740)
Here is the problem with trusting headers, they aren't used by the physical cart so they can be wrong! ROM says the mapper is ExLoROM (MAP32) but it is actually just plain LoROM (30). Changing byte $7FD5 from $32 to $30 will likely make it good. Not near a system so I haven't tested this yet...

It may be a good idea to handle cases like this. Assume that anything under X Mbit isn't actually an ExLoROM game because it doesn't make sense.
Bad File Header
by on (#55741)
bunnyboy wrote:
It may be a good idea to handle cases like this. Assume that anything under X Mbit isn't actually an ExLoROM game because it doesn't make sense.

But by then, you're almost doing the equivalent of DiskDude! correction, a feature that at least one PowerPak-owning cousin has been begging for.

by on (#55752)
bunnyboy wrote:
Not near a system so I haven't tested this yet....

Yes, that does indeed do the trick. :)

by on (#55754)
bunnyboy wrote:
ROM says the mapper is ExLoROM (MAP32) but it is actually just plain LoROM (30).

This is simply because as in Contra 3, the name extends into the mapper field. It says THE DUEL: TEST DRIVE 2, which is 22 bytes instead of the 21 bytes reserved for the game title. And ASCII "2" equals $32. ;)

by on (#55802)
I just had a chance to test it with my brother's 1/1/1 SNES and it still has the same problem of randomly failing to load games.

Here's the error log from Super Street Fighter 2 if that helps.
Code:
Copying Game...                 Game Copied  2000sectors 32Mbit Checking BRAM...                No Save File                    MAP79 TYP79 ROM79 SRM79 RST797969                               No $40FFC0 Header               MAP79 TYP79 ROM79 SRM79 RST7979 No $FFC0 Header                 MAP79 TYP79 ROM79 SRM79 RST7979 No $7FC0 header                 No Internal Header Found                                        Check the unsupported games listor verify your game file is good


I have no problem on either of my personal SNES systems with the same setup and game.

Mitch

by on (#56809)
Thank you so much for this update. Now my SNES Powerpak works! Couldn't be happier!

by on (#57678)
Eyedunno wrote:
I am very pleased to report that this works like a charm on my Super Famicom Jr. as well. If only composite video didn't look like crap on an LCD (not that S-Video on an LCD is anything to phone home about either)...

Just quoting myself to mention that I finally broke down and bought a $20 14" CRT TV at Goodwill. :P No stereo sound, unfortunately, but as I suspected, composite on a CRT looks better than S-Video on an LCD (though maybe some expensive LCDs are better), and it means that I'm now using the SFC Jr. Eventually I'll go pick up some old PC speakers I left at my dad's house to fix the present lack of stereo; for now, I have a Y-cable for the two RCA plugs, which works well enough...