14 ms·
SNES Cartridges and Enhancement Chips
- CodeArtisan 7y agoSoftware implementations of these chips can be found here https://github.com/byuu/higan/tree/master/higan/sfc/coprocessor https://github.com/byuu/higan/tree/master/higan/sfc/coproces...
- waz0wski 7y agothe owner of this repo also has some good blog posts about this topic, including an overview of some of the custom chips and their impact on the emulator they also maintain (bsnes) https://byuu.net/cartridges/boards https://byuu.net/cartridges/boards
- throwaway2048 7y agobsnes is now named higan, and does several systems besides SNES.
- Wowfunhappy 7y agoNope, byuu spun bsnes back into its own project.
- floatingatoll 7y agoThanks, @byuu!
- remlov 7y agoHere is a very detailed programming guide for the Super FX: https://en.wikibooks.org/wiki/Super_NES_Programming/Super_FX_tutorial https://en.wikibooks.org/wiki/Super_NES_Programming/Super_FX...
- byuu 7y agoMy favorite bragging point: the code in the necdsp folder (and the CPU core itself at component/processor/upd96050) there was used by Stephen Hawking when they emulated his old voice machine that used the same chip. http://pawozniak.com/emulator/ http://pawozniak.com/emulator/ Pretty cool that the same NEC uPD772x chip was shared between a text-to-speech engine and Super Mario Kart. If you want to know everything there ever was to know about the chip, I mirrored every PDF datasheet I could find on it on my site: https://byuu.net/datasheets#uPD7720 https://byuu.net/datasheets#uPD7720 It has one of the most wild ISAs I've ever encountered, using a strict Harvard architecture and 24-bit VLIWs (very long instruction words.) Every opcode can do over a dozen different things in the same instruction at the same time. Writing code for it is quite the challenge.
- jamiek88 7y ago> My favorite bragging point: the code in the necdsp folder (and the CPU core itself at component/processor/upd96050) there was used by Stephen Hawking when they emulated his old voice machine that used the same chip Wow that really is amazing. The diversity of uses cannot be foreseen and is a good argument for both documentation at the time and emulation as useable history. I’ve followed your work for a while, spent many hours playing Super Mario 3 on your emulators and reading your dev blogs. Thanks for all you give.
- aidenn0 7y agoWith regards to compression chips; If someone can substantiate this vague recollection I have it would be great. I seem to recall Nintendo charged a per-unit royalty based off of the ROM size of the cartridge, which would make including a dedicated decompression chip reasonable, particularly since they are likely fairly simple to design anyways. [edit] In addition, the two games listed as using the S-DD1 were 32M,it and 48M,it roms (there were very few 48 Mbit roms and 32Mbit was considered "large"), so these were already fairly expensive cartidges. Found a pic of the Star Ocean PCB; note that the S-DD1 takes up less PCB space then even 1 of the two ROM chips: https://snescentral.com/pcbboards.php?chip=SHVC-LN3B-01 https://snescentral.com/pcbboards.php?chip=SHVC-LN3B-01 [edit2] The SF Alpha PCB was much simpler by comparison: https://snescentral.com/pcbboards.php?chip=SHVC-1N0N-01 https://snescentral.com/pcbboards.php?chip=SHVC-1N0N-01
- gergles 7y agoThis is true (the royalty varying on the size of the memory) but the royalty was also significantly higher if there was any custom hardware involved on the cart - specifically because you actually had to purchase the "Game Pak" from Nintendo, so they would charge you "whatever they could get away with" for enhancement chips.
- aidenn0 7y agoAny idea if Enix was locked into buying the Game Pak already for Star Ocean by use of battery-backed SRAM or not?
- claudeganon 7y agoFascinating! Did any later gen systems besides the Nintendo 64 use these chips? Would it be possible to use a similar configuration in Switch cartridges?
- bitwize 7y agoI think Switch carts use a form of flash memory, which precludes this sort of extra-flexible expansion. You could include a chip on the cart, but it wouldn't have much throughput to do things like real-time graphics transformation. As for compression, most consoles just do regular decompression with the open source image libraries in the system BIOS, or on-GPU texture decompression. It wouldn't surprise me if the sprites in a game like River City Girls, for instance, were just PNGs.
- monocasa 7y agoSmall correction: the chips inside switch cartridges are mainly mask ROMs, not Flash.
- fl0wenol 7y agoThe Switch is "just" an Nvidia Shield, albeit not running android. The carts are your standard mask ROM on a (proprietary) bus manufactured by Macronix and so would not be able to extend the functionality in a meaningful way. Texture decompression is handled using the hardware acceleration on the Tegra if being used to save VRAM, otherwise using standard libraries (like libpng, libjpeg, etc.) in the game software.
- codesushi42 7y ago32X was a similar concept, with the idea of packaging up and reusing enhancement chips in a base cartridge that would add 3D support to the Genesis. The Genesis VDP is still used in 32X games, usually to render the background while the 32X's VDP renders flat shaded polygons on top. The Saturn uses a similar architecture of using two VDPs, with one mainly dedicated to rendering the background.
- 7y ago
- makerofspoons 7y agoThere was also a Super FX 2 which powered Doom, among a few other games. Notably Winter Gold looked quite good given the platform's limitations: https://www.youtube.com/watch?v=9uQlCZVb_Ro https://www.youtube.com/watch?v=9uQlCZVb_Ro
- lostgame 7y agoWow, yeah, this is fantastic, thank you for sharing - I love seeing the development of early polygonal 3D, such as Virtua Racing and Starfox, but I’d never seen this! Very cool.
- portlander12345 7y agoNever heard of this game. It has a totally different visual style from anything else on the platform. Very impressive.
- vardump 7y agoFor a moment I thought this was an old Amiga 500 demo (older than this game). Spaceball's "State of the Art" [0]. Apparently same author for both rotoscoped animations. [0]: https://www.youtube.com/watch?v=89wq5EoXy-0 https://www.youtube.com/watch?v=89wq5EoXy-0
- seibelj 7y agoThis strategy was used in most cartridge-based systems that became popular enough to warrant the engineering effort. The original NES had "mappers" which accomplished similar feats, mostly expanding ROM / RAM but also interesting actions like triggering interrupts when the PPU (Picture Processing Unit, nowadays called GPU) took certain actions. https://wiki.nesdev.com/w/index.php/Mapper https://wiki.nesdev.com/w/index.php/Mapper All of this was to squeeze more performance and make more advanced games.
- tenebrisalietum 7y agoOne mapper even added audio channels to the NES, but would only work on the Japanese Famicom because the pins passing through the audio weren't present on the American NES. There's also one mapper that I guess may have been recently discovered that had a microcontroller on it that had its own ROM and IIRC was an attempt to copy protect the game. I think you can't quite equate the PPU with GPUs - because the PPU doesn't run instructions or render things to a framebuffer. It's more like just the part of the GPU that takes memory and outputs a display signal - in VGA that's called a RAMDAC, not sure what the digital TMSS/HDMI/LVDS equivalent is.
- TazeTSchnitzel 7y ago> One mapper There were several that added extra audio. My favourite is the VRC7, Konami's mapper used in just one game, Lagrange Point, providing Yamaha OPL FM synthesis.
- gvfff 7y agoThe pins are there actually, just not on the cartridge side. The little expansion slot under the NES has these and other pins. Some of the pins are electrical shorts with pins on the cartridge side. So to play Japanese games with full audio all you’d need is an expansion cartridge selectively shorting the pins on that expansion port.
- patrickyeon 7y agoA little bit meta here, but I know it's going to come up: somebody is going to complain that Twitter is the wrong way to write this content. How they loved it but were infuriated to read it in snippets. Pre-emptively, I'm copy-pasting an earlier comment of mine on this: > Heh, from foone themself: https://threadreaderapp.com/thread/1066547670477488128.html https://threadreaderapp.com/thread/1066547670477488128.html > Not to humblebrag or anything, but my favorite part of getting posted on hackernews or reddit is that EVERY SINGLE TIME there's one highly-ranked reply that's "jesus man, this could have been a blog post! why make 20 tweets when you can make one blog post?" CAUSE I CAN'T MAKE A BLOG POST, GOD DAMN IT. > The short story is they are quite open about having ADHD, and that's what causes the long twitter rambles, but also what makes it very difficult to assemble it into a blog post. Every once in a while foone's wife will edit a popular thread into a blog post, examples: https://foone.wordpress.com/ https://foone.wordpress.com/ > If this seems like a particularly good story to you, maybe you'd like to edit it into a draft for a blog post and gift that to foone? https://news.ycombinator.com/item?id=19884445 https://news.ycombinator.com/item?id=19884445 And yeah, as soon as I saw "SNES Cartridges and Enhancement Chips" and the twitter domain, I felt about 90% sure it wouuld be linking to a foone tweetstorm.
- capsulecorp 7y agoWhy does ADHD prevent someone from making a blog post, and how does posting it on twitter change that? Sincerely curious.
- patrickyeon 7y agoI can't speak from experience, but I can try to relay how I understand it from others. Part of the pattern of behaviour some people with ADHD describe is intense focus on topics, with no sense of when or what topics this will happen to. So someone may be intending to only post one or two tweets worth of interesting notes on enhancement chips, but find themselves going on and on without realizing that they've just spent an hour talking about the topic. They never intended to create blog-length material on the topic, but there it is. The converse happens too: they can desperately want to write a long form article on a topic, and just can't find themselves starting it. The blank blog page is imposing and they don't know where they would start and maybe they'll distract themselves for a minute with something and whoops now they're very focussed on that distraction for a few hours. I'm sure there's a lot more subtlety to this than I'm describing, and there's a real diversity of peoples' experiences with this, but there's one way that I understand it can lead to this situation.
- rolltiide 7y agoIt took Star Ocean forever to be emulated properly because of that co-processor chip!
- byuu 7y agoTengai Makyou Zero (SPC7110 + RTC-4513) suffered much longer, and the fan translation of it even longer still. Absolutely worth the wait though.
- codesushi42 7y agoSega had their own version for the Genesis, the SVP: https://en.m.wikipedia.org/wiki/Sega_Virtua_Processor https://en.m.wikipedia.org/wiki/Sega_Virtua_Processor Virtua Racing was the only game released with it, but there were others planned for it originally. That is, until Sega decided to use the same technology for the 32X, which added a lot of power but was a terrible commercial failure.
- morkfromork 7y agoI had that game for the 32x. You could get the car airborne, lock the brakes and leave skidmarks in the air.
- fireattack 7y ago> used by the Japanese-only RPG What is the name of that game?
- zerocrates 7y agoI believe the name left out of that message was Daikaijuu Monogatari II
- derefr 7y agoFun fact about the SuperFX chip: it was turned into its own commercially-licensable IP core (the "Argonaut RISC Core", or "ARC"), which became its own business, similar to ARM Holdings: https://en.wikipedia.org/wiki/Synopsys#ARC_International https://en.wikipedia.org/wiki/Synopsys#ARC_International Other fun fact: for a long while, Intel used an ARC core in its Management Engine. That's right—not only can your motherboard run rootkits; it can also run StarFox ;)
- saganus 7y agoInteresting fun fact! How is it that a chip used for 2D/3D operations gets used in the ME though? I would've thinked that they are pretty different, but I'm no expert so, any ideas?
- DiabloD3 7y agoThe chip never did such operations... instead they ran it as both a secondary processor and a math DSP. The operations otherwise were entirely software, and conventional. Another interesting one was the SA-1 chip used in a few games, such as Super Mario RPG. Its a SNES-compatible 65C816 that is 3x faster, has its own RAM bank, and can interrupt and be interrupt the main CPU, among other features, and was used to offload a lot of things, including some graphics tasks.
- monocasa 7y agoThe SuperFX was pretty dedicated to graphics. It had stuff like a "plot pixel" instruction.
- benj111 7y agoFor X86 at least, there's different names for the same instruction, depending on what you want to do. So this could be an instruction that has other more general uses. That said, digging around I havent found reference to Intel using the chip, and another responder claims it was a different chip by the same manufacturer.
- jordigh 7y agoThis thread mentions the Super Gameboy. There's a deeply fascinating series of blog posts about the Super Gameboy that everyone should read: https://loveconquersallgam.es/post/2350461718/fuck-the-super-game-boy-introduction https://loveconquersallgam.es/post/2350461718/fuck-the-super...
- artsyca 7y agoFascinating --
- kjar 7y agoOk - everyone should feel free to publish as they prefer. On the other hand lashing out at critics is unproductive.
- sdenton4 7y agoAlong these lines, Tom7 invented* 'reverse emulation' which effectively uses a Raspberry Pi as a co-processor, allowing him to run [spoilers ahoy!]an SNES emulator on an NES.[/spoilers] The talk is brilliant: https://www.youtube.com/watch?v=ar9WRwCiSr0 https://www.youtube.com/watch?v=ar9WRwCiSr0 * - as far as I know...
- tibbon 7y agoIn theory, could you make some ultra-modern SNES game using a modern ARM chip or such in the cart? Still some basic system limitations, but running pretty much everything on the add-on chip?
- sgrove 7y agoIn fact, you can take it even further! tom7 (all of his pieces are amazing) put a raspberry pi into an NES cartridge, and manages to "run" Super Mario World on an NES. My short description really does it a disservice - I strongly recommend watching the video explanation https://www.youtube.com/watch?v=ar9WRwCiSr0 https://www.youtube.com/watch?v=ar9WRwCiSr0
- benj111 7y agoTo be fair 'Super Mario World' already runs on the Nes. https://m.youtube.com/watch?v=TEZ3vZIi71g https://m.youtube.com/watch?v=TEZ3vZIi71g
- zamadatix 7y agoYeah, the SNES would pretty much turn into a (crappy) AV hub.
- dmitrygr 7y agoI am doing that for PalmOS 5.0 with reSpring actually: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
- zokier 7y ago> I settled on the 4KB part purely based on cost. Even at this measly 4KB size, this one RAM is by far the most expensive component on the board at $25. Given that the costs of putting in a 64KB part (my preferred size) were beyond my imagination (and beyond my wallet's abilities), I decided to invent a complex messaging protocol and make it work over a 4KB RAM used as a bidirectional mailbox. Is this not the sort of memory you'd need? https://www.digikey.com/product-detail/en/cypress-semiconductor-corp/CY7C0241E-15AXC/428-3064-ND/2485900 https://www.digikey.com/product-detail/en/cypress-semiconduc... or https://www.digikey.com/product-detail/en/idt-integrated-device-technology-inc/70V24L20PFGI/800-2606-ND/2010029 https://www.digikey.com/product-detail/en/idt-integrated-dev... just trying to understand the details here.
- arebours 7y agoDoes anybody knows how emulators cope with such games? Can you find them as ROM files?
- zamadatix 7y agohttps://news.ycombinator.com/item?id=20976633 https://news.ycombinator.com/item?id=20976633
- nwallin 7y agoSince there are only a small number of such chips, the emulator will also have a library of cartridges it supports. You emulate those chips the same as you would emulate the CPU or PPU. Sometimes it's easy: the add-on chip is just a regular SNES CPU at a higher clock speed. Sometimes it's hard, because it's some sort of obscure finicky twiddly bits. The situation is significantly worse on, for instance, the NES, which had 40 or so different chips for bank switching, which is thankfully natively (and therefore uniformly) supported by the SNES.
- tanr54ok 7y ago> Rather than try to emulate the Game Boy on the SNES, they just included the CPU in the cart! There’s no way you could do that anyhow
- ct520 7y agoWow I feel like gaming back in those days was the Wild West. So cool to edge up the competition with custom hardware
- fapjacks 7y agoIf anyone is interested in learning a little more about the 6502, Ben Eater recently did a video about it [0]. Also just in general if you hadn't heard of his channel and are reading this comment, you'll definitely enjoy what he does. [0] https://www.youtube.com/watch?v=LnzuMJLZRdU https://www.youtube.com/watch?v=LnzuMJLZRdU
- BuildTheRobots 7y agoThere's actually a couple variants of Pilot Wings with different math coprocessors that act ever so slightly differently: https://twitter.com/foone/status/1126996260026605568?lang=en https://twitter.com/foone/status/1126996260026605568?lang=en
- BuildTheRobots 7y agoI know I'm not supposed to comment on voting, but I'm honestly curious why this deserved to be taken down to -1. The link seems entirely related to the original article and contains interesting information. If I'm not to do it again, I need to understand why, please.