ModernSMC is a fork of SMC-Server that is a Work-In-Progress revival of Super Mario Club's servers. The goal here is to have both quantity AND quality, because of course it will, it's a online Famicom program meant to record and share information about the video game market to stores!
When everything is all said and done and ready to go, i'll update this so that people can connect to ModernSMC. However, considering the fact this is meant to run locally, there probably won't be a way to get it really online for a good while. This will be updated when the service has been tested, as due to the lack of required tools, nobody can test it right now.
Research is being conducted to make newly added information as accurate
to historical records as possible. Unfortunately, nobody's bothered to
archive game prices (but we are finding them through said research).
Everything in site/ is authentic and based off data
from the service's time. Assets used in ModernSMC's development
will be uploaded to this repository at one point or another.
Restore all the stuff i axed, and eventually add a Japanese translation for the sake of both historical accuracy and also accessibility
Super Mario Club was a subscription service for the Famicom Network System, Nintendo's 1988 modem adapter for the Famicom. Retailers and software publishers dialed in over an ordinary phone line to read release calendars, sales charts and review scores. The service shut down decades ago, so the cartridge, which is basically just a web browser, has had nothing to talk to since.
This repo contains the missing server side, which serves mock data that aims to replicate the look and feel of the original service. This is primarily for educational purposes. None of the server content is meant to be an accurate historical record. Most of it is LLM-generated and based on plausible approximation.
Everything here was derived by reverse-engineering the cartridge's own 6502 code. No Nintendo code or data is distributed with it.
You need a Famicom + the network system adapter, a copy of Super Mario Club, a phone-line sim, and a USB modem that will answer at 1200 bps.
You'll probably also need a relay board that can reverse the phone line polarity. The card waits for the polarity reversal that NTT's exchange used as answer supervision, and no line simulator produces it (that I own, anyway).
python3 server.py --call
Live demo using a DLE-300 phone sim + relay module hooked up to a Pico Plus 2 W: https://youtu.be/xiyCKUl93Uo?t=2257
The page file is re-read from disk before every reply, so it can be edited during a live call: save, press B (目次) on the Famicom, and the card draws the new page. A page the card would reject is refused as it loads and the last good one keeps serving, so a typo costs a log line rather than a re-dial.
site_page.py+site/- the default. A whole service as a JSON tree: menu, release calendars, game records, title search, questionnaires. Edit the JSON, not the Python.page.py---probe-page. One page at a time behind anEXPERIMENT =string, for pinning down a single widget on the bench.
Run python3 server.py --check in a second terminal to see the verdict on
what you just saved, without a card.
server.py |
the far end: framing, routing, the modem session |
frame.py |
the frame codec both directions, and the card's four inbound checks |
content.py |
records, content streams, tokens, widgets - the builders |
cardmodel.py |
the card's acceptance rules in Python; no ROM needed |
message.py |
the $B60D word-wrap engine |
site_page.py, site/ |
the served service, as data |
page.py |
the bench experiment dial |
tools/ |
serial-port discovery, the relay driver, a 6502 emulator |
testdata/ |
two recorded far-end captures the self-tests replay |
The Famicom Network System, Super Mario Club, Famicom, Game Boy and Nintendo are trademarks of Nintendo. This project is not affiliated with, endorsed by or connected to Nintendo in any way; those names appear only to say what this software interoperates with.
No cartridge code, ROM image, artwork or manual text is distributed here. The implementation is an independent one, written from behavioral analysis of the protocol for the purpose of interoperating with hardware people already own.
Everything under site/ is invented. The release dates, sales forecasts,
review scores, retailer charts and publisher announcements are period-plausible
fiction written to exercise the protocol - they are not Nintendo's data, not a
reconstruction of what the original service transmitted, and should not be
cited as historical record.
MIT licensed; see LICENSE.