Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Nintendo Programming

Early Nintendo Programmer Worked Without a Keyboard (arstechnica.com) 111

Much like IT guys, every programmer has a horror story about the extreme work environments that forced them to hack together things. But as ArsTechnica points out, not many of them can beat the keyboard-free coding environment that Masahiro Sakurai apparently used to create the first Kirby's Dream Land. From the story: The tidbit comes from a talk Sakurai gave ahead of a Japanese orchestral performance celebrating the 25th anniversary of the original Game Boy release of Kirby's Dream Land in 1992. Sakurai recalled how HAL Laboratory was using a Twin Famicom as a development kit at the time. Trying to program on the hardware, which combined a cartridge-based Famicom and the disk-based Famicom Disk System, was "like using a lunchbox to make lunch," Sakurai said. As if the limited power wasn't bad enough, Sakurai revealed that the Twin Famicom testbed they were using "didn't even have keyboard support, meaning values had to be input using a trackball and an on-screen keyboard."
This discussion has been archived. No new comments can be posted.

Early Nintendo Programmer Worked Without a Keyboard

Comments Filter:
  • by DarkOx ( 621550 ) on Thursday April 27, 2017 @01:25PM (#54314115) Journal

    That is amazing, because that was a great game!

    • By comparison, that means the Atari 2600 E.T. game was coded with a larger hammer and an industrial pushbutton.

    • Kirby's Dream Land, the first in the series, would have been for the Game Boy. My understanding from the article is that the GB development was done on a Twin Famicom, even though the sprite hardware and CPU were quite different.
      You may be thinking of Kirby's Adventure for NES/Famicom. Which was an excellent game for that console, and fairly late in the life of the NES.

  • by Tangential ( 266113 ) on Thursday April 27, 2017 @01:28PM (#54314143) Homepage
    Pretty impressive. I remember hand assembling Z80 assembler and manually entering as hex pairs into a string in a 'c' program so I could vector to it as a device driver after my program loaded. I thought that was labor intensive but at least I had a keyboard.
  • by stx23 ( 14942 ) on Thursday April 27, 2017 @01:29PM (#54314147) Homepage Journal

    I've programmed with switches, with punchcards. This doesn't seem that outlandish.

    • Well, I think the point here is by the time THIS game was developed, use of keyboards was a pretty standard thing in programming. Had this been closer to the punch card era, then yeah, the response could be "at least he had a trackball".
  • by freax ( 80371 ) on Thursday April 27, 2017 @01:37PM (#54314209) Homepage

    I once had to use ClearCase.

    QED

    • by creimer ( 824291 )
      I had to install ClearCase when I did help desk support at eBay. Half the time it didn't install properly, requiring a reimage of the system. If it did install properly, it didn't have the proper configuration to work correctly. The only thing worse than that was reinstalling Adobe Creative Suite.
      • by freax ( 80371 )

        Okay. That doesn't sound as bad as having to use it..

        • Try migrating from CC to Perforce...
          Several hundred engineers have their workflow completely broken (yes P4 is *better* but the devil you know and all that). Productivity tanks for the first month as accidental overwrites of commits and reversions from merges and other wonderful shit hits all the fans...

          • by freax ( 80371 )

            Ever had this thing called eclipsed files with ClearCase? Ever received a huge E-mail with fifty "element"-lines as reply "can you give me your branch so that I can help out with your feature?". Ever didn't know what version of a file you were looking at because the config_spec has some magical order in that it processes said element lines (making me call ClearCase the SchrÃdingers Cat Management - you have to open the box to know if your code was dead or alive, and opening it kills it).

            Ever saw compil

            • Ever had this thing called eclipsed files with ClearCase? Ever received a huge E-mail with fifty "element"-lines as reply "can you give me your branch so that I can help out with your feature?". Ever didn't know what version of a file you were looking at because the config_spec has some magical order in that it processes said element lines (making me call ClearCase the SchrÃdingers Cat Management - you have to open the box to know if your code was dead or alive, and opening it kills it).

              Ever saw compilation performance drop to 500% or 600% or more slower due to fstat being called on each and every header file in a preprocessed .cpp file's output over the network? (so, network latency is killing your compiler's speed). Ever had a SCM that required you to rewrite all your Makefiles in some absurdly stupid format so that some omake thing understands it?

              Ever had to head time and time again that it's all your fault because "you don't use ClearCase right". While when you ask the ClearCase fanboys "so then how do I use it?" you basically get IBM this and IBM that and IBM is great and no answers.

              I'm going to stop.. before I mental because of thinking about the horror I've been through.

              Sorry. No keyboard. Poor guy.

              Yes to most all of this.
              We had a *dedicated* CC management team of about 20 people.
              Seriously, their *entire* job was manage CC and related bullshit.
              So I didn't have to deal with the "you're not doing it right, but no help for you either." I got "you're not doing it right, use this tool we created that takes the input you gave and transmogrifies it to CC brainfuck".

              • by freax ( 80371 )

                The same thing. A staff, a bunch of people, who made it their career for others to depend on their shitty tools. The guys in the company that I worked at even made some thing, some program, with a UI, that would show the elements that got changed given a specific mkbranch for a specific workflow (because in ClearCase a 'branch' is apparently just a way of marking elements. I don't even dare to call them files anymore, as they are 'elements'. Or something somethings).

                Problem was this tool they made didn't ha

                • Makes sense to me...
                  But only because I've dealt with the mindfuck of ClearCase.
                  I'm not entirely sure that Visual Source Safe is worse in fact...

                  • by freax ( 80371 )

                    For example: rumor has it that you can't work on the same file with two people in Visual Source Safe, as you have to lock files while working on it.

                    But then again, I always convinced the teams I was working with to use a CVS service that I set up and then at the of the day we copied that over to VSS, whenever I had to use VSS. Nowadays everybody uses git of course, and before that most companies and/or teams had already migrated to Subversion. Long time since I heard about Visual Source Safe. Didn't know it

                    • My current company *finally* migrated our last project off VSS.
                      I've used:
                      ClearCase
                      SVN
                      Git
                      Perforce
                      VSS
                      dated tarballs
                      dated directories

                      So far my personal favorite is actually Perforce for massive codebases, and SVN for almost everything else.
                      I have nothing against Git, but most of my crud is in SVN and I have no compelling case to change it.

      • by hvdh ( 1447205 )

        Last year, I wanted to update ClearCase, because my version caused a blue-screen every few days and made Visual Studio hang for a few minutes several times per hour. As the update failed to install, I called the IT guy, who tried a lot of things. In the end, he gave up. I had no IBM Rational software installed anymore and could not install any IBM Rational software anymore. Instead of taking this as a sign, he re-imaged my PC.

    • by mjr167 ( 2477430 )
      I still use ClearCase
    • I had to use VSS. But only after convincing the lead developer that keeping everything on a Windows share wasn't working out after he overwrote my changes.

  • Early computer users worked without a mouse.
    • But at least had a keyboard.

      • Early computers had a switchboard instead of a keyboard, and the mice had to compete with the rats for nesting space.

        • You just took things too far. "Early computers did not have switchboards because most of them were women". See what I did there?

          The era of the current topic is the Nintendo NES/Famicom/GameBoy period. When freeze128 said "Early computer users worked without a mouse", I replied that computers of that same era at least had a keyboard, unlike that early Nintendo programmer.

  • He had to walk 15 miles.... in a raging snowstorm... uphill... both ways!!!

    • uphill... both ways!!!

      When I was a kid I also had to cross a hill. Uphill both ways, and walking downhill right after doesn't actually make the uphill part any easier. Luckily I only had to walk 1 mile.

  • by nukenerd ( 172703 ) on Thursday April 27, 2017 @01:49PM (#54314287)

    Sakurai revealed that the Twin Famicom testbed they were using "didn't even have keyboard support, meaning values had to be input using a trackball and an on-screen keyboard

    Like certian modern devices you mean?

    • by EvilSS ( 557649 )

      Sakurai revealed that the Twin Famicom testbed they were using "didn't even have keyboard support, meaning values had to be input using a trackball and an on-screen keyboard

      Like certian modern devices you mean?

      What modern device has no options for a keyboard, and uses an onscreen keyboard with a trackball?

      • A Certian-branded computer, of course.

        • by EvilSS ( 557649 )

          A Certian-branded computer, of course.

          Ah yes. Those guys always sucked at hardware design. Although the people that work there are handy to know for other... things.

      • Sakurai revealed that the Twin Famicom testbed they were using "didn't even have keyboard support, meaning values had to be input using a trackball and an on-screen keyboard

        Like certian modern devices you mean?

        What modern device has no options for a keyboard, and uses an onscreen keyboard with a trackball?

        The navigator in my car. I'm certian of it.

    • It reminds me of 1997. There was one guy at work that didn't know how to use a computer, but he kept repeating things he "learned" online from conspiracy websites. It took awhile to figure out what was really going on; at first we thought he was trolling us. (we used the word prank back then)

      Eventually we figured it out; he had WebTV. He did not have the wireless keyboard that cost an extra $50. He just had the WebTV remote. So a URL with 32 characters would require something like 300 button presses. Mostly

      • You should have given the poor guy an old keyboard, the WebTV had a PS/2 input. Then again, it sounds like you would have been doing the web a disservice...
  • by creimer ( 824291 ) on Thursday April 27, 2017 @01:53PM (#54314339) Homepage
    I read that the initial levels for the video game Doom were created on a grid pad and the coordinates for each wall or object defined in a text file. This was before level editors became commonplace.
    • Possible those where the first maps to test the engine and not the actual levels that ended in the final game.
      Romero made a level editor for the NeXT computers they had, and that's what they used.
    • Have you ever tried using GTKRadiant? Trying to shape a 3-d object using 3 fixed planes in a 2D editor gets interesting :P Or accidentally resizing an object below zero size, which makes it invisible but doesn't delete it, and then the compilation blows out with a weird error. Not that all the errors aren't rather cryptic...

      Also the documentation is terrible, but at least it exists. Thank god for wikis.

      • by creimer ( 824291 )

        Have you ever tried using GTKRadiant?

        I've used the BSP Quake Editor [bspquakeeditor.com] during my Quake 2 days. I'm familiar with the all quirks of the editor and compiling maps.

    • I can believe it. One of the interesting properties of the Doom engine was, even though there were vertical changes in levels it wasn't possible to place one object of a map over another, i.e. no platforms, no overhead walkways. Any time two level points met each other at a different height they did through a gap in the wall or a fence or something similar.

      In that regard doing coordinate mapping via a grid and a text editor isn't as complicated as it sounds. Managing a true 3D map on the other hand would be

    • When my company bought our first commercial 3D animation program, the "editor" was just that...a text editor. It came with a carboard fold-up of a set of 3 arrows representing the XYZ axes. The manual instructed me to fold the axes mockup, then hold it out in front of me and wave it around like I imagined the object I wanted to animate was supposed to move. I was to "visualize the coordinates" the axis passed through...and write them down into a text file, that was then fed as an input to the commend-line t

  • Neat, but I think I can beat it. I programmed PDP-8s from the front panel switches. In octal. A little while later, I wrote 8k BASIC programs with DATA statements containing a list of integers. The integers were Z-80 opcodes to be POKEed into memory...
    • I did programs on front panel switches a few times on an old IBM System/7. 16 bits (although used IBM notation which was inverted and backwards) and, if I remember correctly, 1k switches (ROM - or "ROS" as IBM called it) and 8k RAM. Execution speed was 500 kHz.

      There was an assembler, which produced values in standard notation (and have to be inverted and reversed on the front panel switches for the IBM standard notation). The 1K was basically a bootloader to load the ram from cassette recorder storage -

    • Yeah, but he did it in Japanese. Have you ever typed in Kanji with front-panel switches?
    • I did this in Commodore 128 BASIC, too. It made it really simple to load a BASIC program that needed some assembly language support without having to pre-load the machine language file. I wish I still had the source code to my (crappy) BBS that used assembly to provide a text-based windowing system (for the sysop) and converted quickly between Commodore ASCII and standard ASCII.

  • Having lived when computer gaming was new it is eye opening to learn how innovative early developers had to be to get around limitations of the systems at the time. Today we take nearly lifelike VR for granted when early developers had to choose between display or sound. I often wonder how much creative programming we don't see in a world of effectively unlimited memory, storage and cpu cycles.
    • Look at the Uzebox, a game console based on the Atmel ATmega328. Plenty of creativity there.

    • by GuB-42 ( 2483988 )

      You may get interested in the demoscene then, because being creative and overcoming limitations is exactly what they do. They can do really impressive stuff on old
      computers (C64, Amiga, ...) or with modern PCs with extreme size constraints (ex : everything must fit in 4kB).
      And they always manage to find new things. Last year, for example, a demo called "8088 MPH" came out, doing things on a 8088 IBM PC that were never done before, like showing 1024 colors on a 16 color system.
      Of course, these are not practi

  • Did I mention I once programmed using two wires I shorted together at different lengths of time to gets ones and zeros and had to read back the data on an oscilloscope? It was for a one bit computer and we considered ourselves lucky to have it, as zeros had only be invented a year or two before.

    More seriously, while not very fast, a trackball and screen doesn't seem that unreasonable - especially from the perspective that I would expect Sakurai san to spend more time on the game design so to minimize the

  • When I started my PhD in image processing, I was given an 80-column, 24-line text terminal to the department microVax (approximately 1 MIP, shared between about 40 people). I was lucky, and got one of the good ones, it had an amber phospher :)

    Seriously, the only place to see the results of the algorithm was on a shared display downstairs in the lab - which was in high demand. I ended up doing a lot of terminal-style graphs (mine wasn't a tektronix terminal, so I only had text-like characters) to prove an al

    • And now I look at the technological ability of my freaking phone, and I wonder at just how far things have come in 30 years or so...

      Between Windows 10, FaceBook, Twitter and all the spyware and marketing-infested crap, I'd say "too far".

    • Re:Image processing (Score:4, Interesting)

      by KiloByte ( 825081 ) on Thursday April 27, 2017 @03:42PM (#54315077)

      I was given an 80-column, 24-line text terminal to the department microVax

      And I'm typing these very words on a 79-column 25-line text terminal on a N900, using elinks. It's too much pain to use a graphical browser with only 256MB ram (built-in microB is insecure, unmaintained and can't even do SSL anymore; modern "slim" browsers need 1-2GB minimum), elinks works fine.

      Still better than a modern Android/iJunk dumbphone.

    • Ah yes, the uber-expensive "frame buffer device". Luxury.

  • by FFOMelchior ( 979131 ) on Thursday April 27, 2017 @02:14PM (#54314515)
    it[s hinesty not tat hard
  • after 1 hour a trackball onscreen keyboard sounds pretty good

  • by Anonymous Coward
    System and method for trans-compiling video games [google.com] For when you absolutely, positively have to port a game and lost he source code.
  • If someone hasn't already brought that up, they should!
  • I walked 5 miles to and from school - uphill in both directions - through snow most of the year and rain the rest.
  • There's a realistic solution to this. Duplicate the trackball encoder pulses and button with a microcontroller. Attach a keyboard to said microcontroller. Map encoder counts to a screen key position map in the code. When a key is pressed, output the appropriate number of x-y pulses based on the from-to position in the map and push the button. Include increment/decrement buttons to allow adjustment for offsets from various sources, such as accumulating rounding errors between the screen and encoders.

Some people pray for more than they are willing to work for.

Working...