
A second team optimized the code, and combined with computer upgrades around the Nintendo offices, this let Mirage run in pseudo-realtime, although it was a fraction of the speed of a real Super Famicom. This process took several seconds on our original hardware-one could watch the screen slowly draw from top to bottom-but it worked, and it was more accurate than most of the emulators you see today. A team working on some tricky graphical effects added the first major patch, a separate window (originally forced onto a second monitor) which would render a virtual SNES screen.
#N64 EMULATOR MAC CHIP CODE#
Of course, bugfix after bugfix was added, patching the code to make sure its output matched that of a real Super Fami. However, over time, the Mirage project got more advanced. Final testing was done on a real Super Fami unit. It was meant for programmers and used for writing code. It did not run in real-time, there was no controller interface, no SPC700 chip emulation (required for sound), a text-based user interface.

#N64 EMULATOR MAC CHIP SOFTWARE#
Developers were happy, and Mirage proved to be an excellent way to write Super Famicom software in record times.Īt first, Mirage was anything but a traditional emulator-the video consisted of squares on a black background (showing where sprites would be) and pages of debugging information.
#N64 EMULATOR MAC CHIP FULL#
Along with full 65c816 emulation, interrupt timing and memory management, the Mirage dev platform offered realtime debugging, code stepping, breakpoints, limited video support and almost instant compile times.

The project was codenamed Mirage, and several of the key designers of the Super Fami hardware were assigned to the project. Nintendo soon pushed its efforts hard into developing a reasonable development platform for Super Famicom (and soon, the Super Nintendo). Many continued to write 6502 code using the old NES development environment, choosing to ignore on the 16-bit advantages of the 65816 in order to complete the project without losing their sanity. Programmers, in general, hated the thought of Super Famicom development. And obviously, the graphics support on IIgs' was minimal, so testing out small programs required switching between a Super Fami prototype on the left and a IIgs on the right. Most machines didn't even have hard drives! Compile times for even meager projects were horrendous, and keeping all the work on floppies was getting out of hand. However, the IIgs proved woefully inadequate for large projects. Deadlines approaching, the Apple IIgs was chosen as a quick if inelegant solution-several C and assembly compilers were available, and testing and debugging was easier since we were able to use a native 65816 for testing. However, it was soon realized by the development teams that a reliable 65c816 development platform could not be found on the usual Nintendo platforms (most Nintendo devs at that time had a generic PC, excluding the art and marketing department which was mostly Macintosh and a few segments of the development team). The other reason for difficulty in development is much less known, and very surprising-almost all the programming for these titles was done on the Apple IIgs! This seems ridiculous until you realize that both the Super Famicom and the Apple IIgs are based on the 65816 processor, a cheap toy with inadequate processing power that was stuck in the Super Famicom to smooth over the early development process (since it is backwards compatible with the 6502, the NES' processor). (Trivia tidbit: the original Super Famicom plans called for much more extensive onboard 3D hardware-PilotWings was developed assuming that this hardware would be present, and since this chip was scrapped from the Super Famicom at the last minute, Nintendo was forced to include this 3D chip on the PilotWings board in order to keep the game on schedule.) Popular Super Famicom titles, like F-Zero and Super Mario World, were the most difficult for several reasons-if nothing else, the Super Famicom hardware specifications changed in small ways at least twice during the development project, requiring changes to existing code. The first batch of games for the Super Famicom were developed around 19. Adequate explanation of Silhouette requires a step back to the original days of Super Famicom development. Originally developed under the code-name "Mirage" and designed to serve as a Super Famicom development environment, Silhouette has been modified into a working Super Nintendo emulation environment which rivals the best efforts of any public development. In my opinion, the history of Silhouette is nothing short of fascinating, so please read this document at least once before you throw it in the trash. Silhouette is the product of internal Nintendo research over several years.
