Super Famicom Box (Hotel Box)

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Super Famicom Box (Hotel Box)

Post by nocash » Mon Dec 10, 2012 6:15 am

Mark has been running my "kromtest" program (ie. replaced the KROM bios chip on the SFC-Box mainboard by the kromtest EPROM)!
21 screenshots showing the kromtest v1.0 results can be found here:
kromtest10.zip
(281.2 KiB) Downloaded 642 times
(aside from the screenshots, the original test program v1.0 is also included for reference).

The cpu tests are showing invalid opcode traps, "-"=passed, "0"=trapped with UFO=0, "."=skipped/not tested. The interesting part is that the HD64180 is actually trapping all undocumented opcodes, even those that are more or less commonly used on Z80 CPUs, ie. the HD64180 doesn't support accessing IX/IY 16bit registers as 8bit fragments (IXH,IXL,IYH,IYL), doesn't support "SLL" opcode, nor useless opcode mirrors (like alternate NEG/IM/RETN/RETI/NOP mirrors).
Please ignore the "DDCBxx" test page, it's rather meaningless; I wanted to test DDCBNNxx, not DDCBxx, but I got that wrong :-)

The TEST "VBLANK" TIME test... I've no clue what the results mean. It was intended to measure timings of a bit that was assumed to be a VBLANK (or maybe VSYNC) signal, but somehow the timings don't seem to match either one...
For a 60Hz signal I would have expected 8 times bigger values (although the HD64180 waitstates and refresh cycles might slowdown the CPU, but even then the values should be around 4 times bigger as they are). And transformed to 262 total scanlines, the "duty" would be around 10 scanlines, which also doesn't match typical vblank or vsync periods.

The WATCHDOG is trapping in both cases (when leaving the watchdog bit stuck set to "1", or stuck set to "0"). Meaning that... watchdog reset should occur either on 1-to-0 or 0-to-1 transitions (or both)... or on repeated writes without transitions. That isn't quite clear yet, anyways it's confirmed that the bit is really having a watchdog function.
The 00000ABAh value gives some hint on the timeout, but it's also affected by memory waitstates and refresh cycles, so it'd be a bit difficult to convert that value to an actual "time" value counted in cycles or seconds.

OSD Tests are showing the full charset, the resolution isn't yet good enough for dumping it, but at least one can see japanese characters, special volume/tape/am/pm/no/arrow symbols, and the normal ASCII characters (which lack some chars like "@|\").
Char Sizes test reveals which bits do control horizontal and vertical zoom. Also note that, after vertical zoom, the next line is skipped, eg. after zoom in Line 3, next line is Line 5 (and Line 4 isn't displayed).
The Special Styles screen reveals a blink-feature, the abitlity to use the "unknown color" as per-character background color, and some complicated bit-combinations that do enable using the "background color" either as "outline" or as "solid" background.
The blink interval isn't visible in the screenshots (obviously), but it can be seen in the original test video http://www.youtube.com/watch?v=nDwZ62e1FdQ

Next kromtest version will include a higher resoltion font-viewer with chars drawn on a chessboard pattern. The missing DDCBNNxx opcode trap test, and verification of (un-)expected traps.

Markfrizb
Posts: 540
Joined: Sun Dec 02, 2012 8:17 am
Location: East Texas

Re: Super Famicom Box (Hotel Box)

Post by Markfrizb » Mon Dec 10, 2012 9:04 am

Martin,
i forgot to mention that the controllers, only the up works (to make the menu scroll down).
Some of the other buttons work, do you want me to document of what they do or wait for the next Krom test?

mark

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Tue Dec 11, 2012 8:07 am

What up, in which menu, and what scrolling? You mean dpad up button, in the kromtest menu... moving the cursor symbol? Ah, yes, looked at the source code, and I've toggled the joypad clk bit the wrong way, thanks for pointing me on it! Here's an updated version, http://nocash.emubase.de/kromtest.zip most of it is same as in old version (you don't need to repeat all tests). Things that are new (and would be nice if you test them):

Joypad should be now working.

The five CPU TEST screens are now colorizing expected/unexpected results in green/red (if everything is working as expected then they should be all green), and the 5th cpu test screen is now testing what I had originally wanted it to do.

In OSD TESTS II, there's a new OSD FONT (ZOOMED) option, showing the character set in double size on four pages. This is intended for dumping the charset, pixel by pixel from screenshots. So a good camera resolution would be nice here (so one can see the individual pixels). If you have a PC with Video-In, that would be even better (as it should give perfectly horizontally and vertically arranged pixels/scanlines, so one could easily dump pixels from the bitmap array by software) (with camera based screenshots that'd be more difficult, as due to the camera perspective "straight" lines are appearing "curved" in screenshots).

The eight REGISTER DUMPS screens would be nice, too (you somehow skipped them in previous test). They are maybe all showing more or less the same values, but that's just the interesting part: If they are same, or if they do differ. For getting an idea about I/O mirrors and such stuff.

And in GENERAL TESTs, there is the SHOW SYSTEM inputs page. Can you check if it shows correct input states? If you do slowly turn the keyswitch from left to right, it should display
"SWITCH: 1st/2nd/3rd/4th/5th/6th (FROM LEFT)"
in exactly that order. If it shows differently ordered positions then I got something wrong.

And RESET BUTTON and TV/GAME BUTTON should display "PUSHED" when pressed, RELEASED otherwise.
For the TV/GAME button, I am not sure, is it a normal push button (shows PUSHED when/while pressed), or is it "sticky" (keeps showing PUSHed when pressed once, and RELEASED when pressed another time)?

And finally, GENERAL TESTs has two PULSE PORT xxh options, and eleven TOGGLE UNKNOWN BITS options. Which I was thinking that something might happen when running the PULSE tests, or when changing the eleven bits from 0 to 1 (or back from 1 to 0).
Ie. watch out (and listen) if something happens. Like a beep sound appearing (if you have speakers connected), a relay rattling, a LED starting to blink, the screen getting black, or the like. Can't promise that anything like that will happen, but maybe you'll notice some interesting effects.

Markfrizb
Posts: 540
Joined: Sun Dec 02, 2012 8:17 am
Location: East Texas

Re: Super Famicom Box (Hotel Box)

Post by Markfrizb » Wed Dec 12, 2012 11:45 pm

nocash wrote:What up, in which menu, and what scrolling? You mean dpad up button, in the kromtest menu... moving the cursor symbol? Ah, yes, looked at the source code, and I've toggled the joypad clk bit the wrong way, thanks for pointing me on it! Here's an updated version, http://nocash.emubase.de/kromtest.zip most of it is same as in old version (you don't need to repeat all tests). Things that are new (and would be nice if you test them):

Joypad should be now working.

The five CPU TEST screens are now colorizing expected/unexpected results in green/red (if everything is working as expected then they should be all green), and the 5th cpu test screen is now testing what I had originally wanted it to do.

In OSD TESTS II, there's a new OSD FONT (ZOOMED) option, showing the character set in double size on four pages. This is intended for dumping the charset, pixel by pixel from screenshots. So a good camera resolution would be nice here (so one can see the individual pixels). If you have a PC with Video-In, that would be even better (as it should give perfectly horizontally and vertically arranged pixels/scanlines, so one could easily dump pixels from the bitmap array by software) (with camera based screenshots that'd be more difficult, as due to the camera perspective "straight" lines are appearing "curved" in screenshots).

The eight REGISTER DUMPS screens would be nice, too (you somehow skipped them in previous test). They are maybe all showing more or less the same values, but that's just the interesting part: If they are same, or if they do differ. For getting an idea about I/O mirrors and such stuff.

And in GENERAL TESTs, there is the SHOW SYSTEM inputs page. Can you check if it shows correct input states? If you do slowly turn the keyswitch from left to right, it should display
"SWITCH: 1st/2nd/3rd/4th/5th/6th (FROM LEFT)"
in exactly that order. If it shows differently ordered positions then I got something wrong.

And RESET BUTTON and TV/GAME BUTTON should display "PUSHED" when pressed, RELEASED otherwise.
For the TV/GAME button, I am not sure, is it a normal push button (shows PUSHED when/while pressed), or is it "sticky" (keeps showing PUSHed when pressed once, and RELEASED when pressed another time)?

And finally, GENERAL TESTs has two PULSE PORT xxh options, and eleven TOGGLE UNKNOWN BITS options. Which I was thinking that something might happen when running the PULSE tests, or when changing the eleven bits from 0 to 1 (or back from 1 to 0).
Ie. watch out (and listen) if something happens. Like a beep sound appearing (if you have speakers connected), a relay rattling, a LED starting to blink, the screen getting black, or the like. Can't promise that anything like that will happen, but maybe you'll notice some interesting effects.

I'll try to get to these tests soon. Sorry, but I don't have a pc video capture card.

Mark

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Fri Mar 08, 2013 3:03 pm

Here comes the SFC-Box OSD charset.
Mark has got hold of a video grabber which gives pretty much perfect screenshots of the charset:
MB90082_screenshot.png
Here's the same picture with a red pixel grid:
MB90082_gridded.png
For extracting the "raw" pixels, I've been writing a tool that computes the average pixel color (within the above grid). If it's a clearly black or clearly white pixel then it's takes as is. If it's an unclear "gray" pixel, then the tool is examining the left and right pixels, and adjusts the intensity of the middle pixel to the opposite of the intensity of those left/right pixels, and does then retry to identify the adjusted pixel. The result looks like so:
MB90082_pixelized.gif
MB90082_pixelized.gif (6.6 KiB) Viewed 24720 times

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Fri Mar 08, 2013 3:19 pm

The final font bitmap (with the chessboard pattern and duplicated chars removed):
MB90082_final_font.gif
In case somebody should be interested, here's the conversion tool with source code:
Mb90082_tool.zip
(7.43 KiB) Downloaded 486 times
(it does require the above "MB90082_screenshot.png" file saved as 24bpp 5,005,966-byte bitmap named "MB90082_original_screenshot.bmp" as input file).

And finally, the plain font as binary file:
Mb90082.zip
(2.87 KiB) Downloaded 615 times
containing the MB90082.BIN file for use in no$sns BIOS folder (works with the currently released no$sns version) (ie. no$sns v1.4 was ready to support the font once when it gets dumped) (though the emulator's font resizing doesn't look too well, maybe I'll add some cosmetic fixes on that part in next no$sns versions).

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Wed Feb 03, 2021 4:26 am

I've got a bunch of PMs from gorgyrip about a newer KROM version (the Z80 BIOS). The chip is bigger (128Kbytes), and it seems to include more payment options, and it's mounted on a different daughterboard version (with more (optional) components).

Here are the component lists for the older and newer daughterboard versions...

SFC-Box KROM Daughterboard "PU 0871-101" (for older KROM version):

Code: Select all

  IC1  28pin  DIP 27C512 (EPROM 64Kx8) "KROM 1" (28pin and 32pin are possible)
  IC2  28pin  SMD SRM20257 (SRAM 32Kx8) ;Work-RAM for HD64180, battery-backed
  IC3  16pin  SMD 74HC139               ;demux
  IC4  20pin  SMD 74HC273D (Philips)    ;8bit latch
  IC5  20pin  SMD 74LS541               ;8bit buffer/driver
  IC6  16pin  SMD MB3790 (Fujitsu battery controller)
  IC7  14pin  SMD S-3520CF (Seiko RTC, Real Time Clock, battery-backed)
  IC8  14pin  SMD 74xx04                ;hex inverters
  IC9  14pin  SMD 74xx32                ;quad OR gates
  X1   2pin   Oscillator (for RTC) ("S441") (probably 32kHz or so)
  TC1         Osc-Adjust (for RTC)
  BAT  2pin   Battery (for IC7/RTC and IC2/SRAM)
  RY1  10pin  Not installed (relay?)
  TR1  3pin   Not installed (transistor?)
  TM1  8pin   Not installed (massive connector, maybe FamicomBox-style CATV?)
  CN1  44pin  DIP Female Connector 2x22pin (to Mainboard)
SFC-Box KROM Daughterboard "PU2 0871-106" (for newer KROM version):

Code: Select all

  IC1  32pin  DIP M27C1001 (ERPOM 128Kx8) "KROM 2.00"
  IC2  28pin  SMD SRM20257 (SRAM 32Kx8) ;Work-RAM for HD64180, battery-backed
  IC3  16pin  SMD 74HC139A (M)          ;demux
  IC4  20pin  SMD 74HC273D (Philips)    ;8bit latch
  IC5  20pin  SMD 74HC541D (Philips)    ;8bit buffer/driver
  IC6  16pin  SMD MB3790 (Fujitsu battery controller)
  IC7  14pin  SMD S3520CF2 (Seiko RTC, Real Time Clock, battery-backed)
  IC8  14pin  SMD 74HC14A (M)           ;hex inverters, schmitt-trigger inputs
  IC9  14pin  SMD 74HC32A (M)           ;quad OR gates
  IC10 28pin  SMD 8251A (serial uart)                           (not installed)
  IC11 20pin  DIP ADM233L     (rs232 interface, alike MAX232)   (not installed)
  IC12 16pin  SMD SN75ALS1177 (2x differential driver/receiver) (not installed)
  IC17 20pin  DIP GAL16V8B (with custom marking "PU-STD-1)
  IC18 14pin  SMD 74HC393 (dual 4bit counter)                   (not installed)
  IC19 5pin   SMD TC4S71 (single OR gate) (PCB back side)       (not installed)
  X1   2pin   Oscillator (for RTC) ("KDS5E") (probably 32kHz or so)
  X2   3pin   Oscillator (for 8251A?)                           (not installed)
  TC1         Osc-Adjust (for RTC)                              (not installed)
  BAT  2pin   Battery Cxxxxx32 (for IC7/RTC and IC2/SRAM)
  xx?  10pin? Relay? OMROM G5AK-234P
  RY6  10pin  Relay?                                            (not installed)
  TR10 3pin   SMD transistor? (for relay?)
  TR11 3pin   SMD transistor?                                   (not installed)
  PI1  4pin   NEC 2501                  ;opto coupler
  PI2  4pin   NEC 2501                  ;opto coupler
  PI3  4pin   NEC 2501                  ;opto coupler
  PI4  4pin   NEC 2501                  ;opto coupler
  TM1  9pin   Massive connector (maybe FamicomBox-style CATV?)
  CN1  44pin  DIP Female Connector 2x22pin (to Mainboard)
  CN2  6pin   DIP whatever, maybe serial uart? (same as TM1?)   (not installed)
  SP1..SP6   3x6pin
  SP7..SP11  3x5pin
  SP12..SP15 2x4pin
  SP16(1..8) 2x8pin
And PCB photos for the newer version...
Attachments
krom2-pcb-image1.jpg
krom2-pcb-image0.jpg
Last edited by nocash on Sat Feb 06, 2021 8:44 am, edited 3 times in total.
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Wed Feb 03, 2021 4:37 am

Also SFC-Box related, there has been this thread a while ago: http://forums.nesdev.com/viewtopic.php?f=12&t=21511 (originally with GUI questions, and ending up with GAL dumps for SFC-Box game cartridges, that GAL dumps aren't disassembled yet though, and the GAL pinout/wiring is still unknown).
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Wed Feb 03, 2021 4:42 am

Some stuff from the PMs (about the old KROM1 version and mainboard pinouts)...
gorgyrip wrote:
Sat Jan 30, 2021 12:34 pm
You can find the translation for the menu here (krom1):
http://www.famicom.ch/home/super-famicom-box
Okay, that makes the options screens a bit less bewildering.
gorgyrip wrote:
Sat Jan 30, 2021 12:34 pm
I'm sure you've noticed that the krom pcb has some missing components.
I've only seen the PCB front side... are those components wired to the huge 8pin TM1 conncector?
RY1 might be a relay.
And TM1 might resemble the CATV thing in FamicomBox (whatever that CATV thing is doing there).
gorgyrip wrote:
Sat Jan 30, 2021 12:34 pm
I made the pinout of CN8 in front of the console:
1 - vcc
2 - TXA0 (HD64180RF6X_pin48)
3 - RXA0 (HD64180RF6X_pin49)
4 - RTS0 (HD64180RF6X_pin45)
5 - CTS0 (HD64180RF6X_pin46)
6 - gnd
Good to know. KROM1 contains some unused code for recording demo joypad data via ASCI Channel 0. So it might be just that, used on "dev boards" only. Or "hotel boards" might use it for something else (the KROM1 version doesn't seem to do so though).
gorgyrip wrote:
Sat Jan 30, 2021 12:34 pm
About krom2.
2 new options available:
2-3-5. Something like video off. This is weird and not useful. What is does, it sets the tv connection at 2-3-1 to av and console mode at 2-3-1to TV. I don't know the point of that.
2-4-3. I think it mean clear coins an time after X hours. Either it's not that or it's not working.
Back to 2-2 (payment) option 3. The krom2 has some more text about that located at 0xc8ba (but you still cannot activate it). Google translates 2 of them as serial and parallel.
Okay. I am not sure how the TV and AV stuff works.
RF OUT does forward ANT IN, with the SNES+OSD picture injected on a spare channel, just like VCRs do?
AV OUT does merely output the SNES+OSD picture (unless the GUI should happen to somehow support TV channel selection)?
Is there some signal to force the TV using the AV input, like on 21pin SCART connectors?
What is the relay on the mainboard doing close to the TV/AV section?
gorgyrip wrote:
Sat Jan 30, 2021 12:34 pm
SP1
1- ic31_pin8
2- RESET (HD64180RF6X_pin80)
3- 10uf--gnd
The console works with the jumper in any one of the 2 positions

SP2
1- MB90082_pin21
2- gnd
if bridged, the osd text will wobble a little.

SP3
the side with 3-15 is connected only to some test points, nothing else
the side with 1-3 is connected with the middle pins. they go to the snes cpu. And to somewhere else. Maybe there was a device that sat between snes cpu and z80 for testing?

PS: At 1. in krom1 it showed how many times a game has been played. In krom2 it shows how many minutes a game has been played.
And i think krom2 is more stable. in krom at 5. when you add yen credits, sometime the menu will lag, in krom2 it behaves better.
Good to know, too.
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Wed Feb 03, 2021 5:18 am

Some of the payment options cannot be enabled unless when tweaking the KROM to do so...
gorgyrip wrote:
Sat Jan 30, 2021 3:23 pm
In krom 2, replace at offset d508 with 07 and now you can activate option 3 in payment. Now there are some more menus. Go back to attract mode and start the game. the atrom will display a new menu with 2 more options.
I also forced krom1 to activate option 3 in payment (offset 9149 replace 02 with 07).
That seems to be patching a CMP A,02h opcode, changed to CMP A,07h. Whereas, A seems to something in range 00h..03h (so 07h just means to force the comparision result to be always not equal).
I don't know where A comes from... it might be some jumper or cable detection, or another SRAM setting that needs to be set to some specific value before trying to activate the payment mode. Or maybe there are yet more different KROM versions (eg. depending on whether the KROM board has the relay installed or not).

The payment options are:

Code: Select all

2-2. Set Payment Options:
  1 With Key
  2 Freeplay
  3 Central Administration
  4 Coin Operated (Set Playtime 1-99, 0 ))
Whereof, the Central Administration mode seems to have three sub-options, which seem to translate to:

Code: Select all

  - Serial
  - Parallel
  - Refrigerator or Laundry (?) 
I don't know how those options are numbered, and if all three options exist in the older KROM1 version (which doesn't have 8251A uart on the old KROM board) (though the older boards could have theoretically used one of the various other serial ports on the SFC-Box mainboard).

The Coin-operated mode seems to require a separate coin box: http://www.famicom.ch/home/coin-box though it seems to be unknown how to connect that thing to SFC-Box... maybe it's simply plugged to unknown 3pin CN3 connector on the SFC-Box mainboard?
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

gorgyrip
Posts: 53
Joined: Tue Jan 11, 2011 4:41 am

Re: Super Famicom Box (Hotel Box)

Post by gorgyrip » Wed Feb 03, 2021 6:57 am

The coin box connects to the 3 pin connector. If you simply connect the middle pin to ground, you'll get a coin inserted.
About The CMP, if you replace 02 with 01 or 00 (can't remember) you won't be able to access KEY after using Central Administration.

If you access central administration, the menu will be 2-2-3 and you will have this:
1. connection. i think refrigerator means using the cable used fro mini fridge/mini bars used in hotels: https://www.youtube.com/watch?v=sU7Ltxw9pSg
2. settings. not really sure but: at what time to show the remaining time, time to play and how many times you can play/continue (0-255)
They messed up the numbering. If you access the settings, it should be 2-2-3-2, but it's 2-2-3-1.

I've just noticed that TM1 has 9 pins on the pcb with krom2.00SH. The old board has 8 pins. Maybe there was a plain krom2.00 for the old board?

nocash
Posts: 1397
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Super Famicom Box (Hotel Box)

Post by nocash » Thu Feb 04, 2021 6:43 am

About the PM'ed schematics (which I hope you'll publish them here):

GROM_ and KROM_D0..D7 and _A0..Axx are almost certainly the Z80 data and address bus, so Z80_D0 would be a better name (except for some of the chip selects and some of bank-switched higher address lines).

A19_HIROM and up are SNES_A19 and up. For A22_LOROM, that would be SNES_A23 (since LoROM has A15 skipped).

The meaning of the data bits for the various ports is more or less well described in fullsnes.htm and it might be useful to adopt that descriptions as short signal names. From what I can see, the ports should be...

Port [A0h].W = IC4 on KROM board
Port [A0h].R = IC5 on KROM board

Port [C0h].W = IC2 on GROM board
Port [C1h].W = IC4 on GROM board (guessed)
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

Post Reply