Slashdot Mirror


Game Boy Zelda Comes With Source, Sort Of

Jamie found a fun story about a 90s Zelda Game Boy ROM that shipped with the source code- not so much on purpose, but more because the linker padded out the last meg of ROM with random memory contents, which happened to include game source code.

200 comments

  1. Avoiding the malloc() by kcbanner · · Score: 4, Informative

    I guess the only way to really avoid the malloc() calls grabbing your source code would have been to compile, then reboot to link...so the extra data thats padded on the end of the ROM image would just be your emtpy RAM contents.

    --
    Obligatory blog plug: http://www.caseybanner.ca/
    1. Re:Avoiding the malloc() by Anonymous Coward · · Score: 3, Insightful

      Or you could, you know, manage your memory properly.

    2. Re:Avoiding the malloc() by MBCook · · Score: 2, Insightful

      Am I missing some reason that you can't just pad with 0s or 1s? Why bother with random data?

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    3. Re:Avoiding the malloc() by simcop2387 · · Score: 5, Informative

      thats what calloc is for, it'll clear it for you, malloc just gets it.

    4. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      We're talking about building the ROM image, not how malloc/calloc works right? It should have been padded with 0s.

    5. Re:Avoiding the malloc() by uofitorn · · Score: 1

      RAM contents aren't necessarily zeroed on reboot. In fact, researchers found that physical memory retained data for as long as 30 seconds while powered off on certain laptops.

      --
      "What kind of music do pirates listen to?" -Paul Maud'dib
      "Yeeeaaarrrrr n' Bee!!" -Stilgar, Leader of Sietch Tabr
    6. Re:Avoiding the malloc() by MBCook · · Score: 1

      That was my point. There is no need to malloc the whole 2MB, just what you need. Pad whatever comes after with 0s or 1s, and any checksumming (unlikely on a GB cart) could be done trivially. You didn't need to allocate that extra space at all.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    7. Re:Avoiding the malloc() by LiquidCoooled · · Score: 2, Funny

      In my first experience with IT, our technology teacher (who was also the metalwork guru) tried to show us the source code to the program.
      He spent about 30 minutes loading the (BBC micro) computer and flicking the power switch to try to see under the hood.
      "If you do it really fast it comes up and shows you the code"

      Incidentally he was also the teacher who taught us about the wankel engine, I am not sure which caused a bigger laugh.

      --
      liqbase :: faster than paper
    8. Re:Avoiding the malloc() by billcopc · · Score: 5, Informative

      When you're a ROM developer, you don't think in such terms. It's all about mapping this and interleaving that.

      Rather than writing the extra few lines to calculate the padding required, set up a 0-filled buffer and truncate the first (or last) buffer, rounding up the fwrite call to 2mb requires 0 extra lines.

      Besides, they don't expect many people to actually look at the ROM code. This emulation craze is fairly recent.

      --
      -Billco, Fnarg.com
    9. Re:Avoiding the malloc() by simcop2387 · · Score: 3, Insightful

      it was filled with things in ram, most likely because malloc was used to get the ram needed to link the image, and they didn't bother to clear it, calloc would have cleared it for them

    10. Re:Avoiding the malloc() by Carrot007 · · Score: 5, Insightful

      > This emulation craze is fairly recent.

      What? I really mean it what?

      I remeber running sonic (megadrive) on a low end pentium (133) back in the day, albeit with no sound.

      I also remeber using various earlier emulators on my amiga before that (speccy and such).

      Maybe you have a differnet definition of recent than me though.

      --
      +----------------- | What is the question!
    11. Re:Avoiding the malloc() by KDR_11k · · Score: 1

      Or link to the past?

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    12. Re:Avoiding the malloc() by KDR_11k · · Score: 2

      A pentium 133 is recent compared to this. When I got my Gameboy my PC was a C64, a bit later we got a 386. Sure, we weren't cutting edge but the best you could get at the time was a really early 486 IIRC.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    13. Re:Avoiding the malloc() by Kelz · · Score: 1

      Reboot the link. Haha. Good one.

    14. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Link's Awakening was released in 1993...

    15. Re:Avoiding the malloc() by Dogtanian · · Score: 2

      A pentium 133 is recent compared to this. When I got my Gameboy my PC was a C64 That as may be, the game in question was released in *1998*. I bought my Pentium 233 PC that same year- and even then there were much faster processors available.
      --
      "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
    16. Re:Avoiding the malloc() by Anonymous Coward · · Score: 5, Insightful

      "Maybe you have a differnet definition of recent than me though."

      No, he just apparently has a different definition of "craze" to you. Being the only person in your state to emulate a megadrive on a low-end Pentium without sound doesn't mean that's when the emulation craze started. That was just you pushing the boundaries of what was available at the time. The average gamer wouldn't have understood you back then if you said the word "emulation" to them.

      Only in recent years have so many people been emulating earlier consoles and arcade games on their home PCs, with pretty faithful representation of the original experience.

    17. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Except that this is about a Game Boy Color game. The Game Boy Color was released in 1998, by which time most gamers had Pentium IIs.

    18. Re:Avoiding the malloc() by antime · · Score: 3, Informative

      Malloc isn't the only culprit - some old DOS-era linkers would directly allocate disk blocks but not clear them, so whatever old content that wasn't overwritten remained in the final binary.

    19. Re:Avoiding the malloc() by kevmatic · · Score: 4, Informative

      First release of Zsnes was in 1997. It was designed to run on 486es, and was written in heavily optimized ASM.
      NESticle was also released in 1997. These pretty much sparked a craze, and lead to the creation of the Emulation Community and its Golden Age was pretty much in full swing by the middle of 1998.

      It has pretty much died, but Zsnes is still under very active development and the new pSX Emulator has revitalized Playstation emulation since ePSXe hasn't been updated in years and leaves MUCH to be desired.

      http://www.romhacking.net/ for info on ROM hacking.
      http://psxemulator.gazaxian.com/ for pSX Emulator. Try it!

    20. Re:Avoiding the malloc() by PhoenixFlare · · Score: 3, Interesting

      Same here, I used to run all sorts of SNES games in ZSNES on a 200 MHz Pentium, at normal speed. Heck, I even managed to get a NES emulator running on a 20 MHz 386 with 2 megs of RAM....Only at about 30% speed, but still.

    21. Re:Avoiding the malloc() by SynapseLapse · · Score: 1

      The parent's point is still valid.
      The game boy color hit the market in 1998 and modern video game emulation was just starting to take off about then.
      When the developers were working on the Zelda DX they weren't concerned with emulation. Their code has gone unnoticed for 9 years now. Emulation has been around for decades. The emulation "craze" is far more recent.

    22. Re:Avoiding the malloc() by zippthorne · · Score: 1

      Um.. the Wankel engine works. There's one in the Mazda RX- series.

      --
      Can you be Even More Awesome?!
    23. Re:Avoiding the malloc() by iamhassi · · Score: 2

      "That as may be, the game in question was released in *1998*."

      actually the color-added version was released in 1998 but the original came out in 1993, and since you can play the 1998 version on the old monochrome gameboy methinks it's not truly a title that was entirely redone for the gameboy color and it makes me question whether this left over code could also be found in the 1993 monochrome version of Link's Awakening.

      --
      my karma will be here long after I'm gone
    24. Re:Avoiding the malloc() by PhoenixFlare · · Score: 1

      and the new pSX Emulator has revitalized Playstation emulation since ePSXe hasn't been updated in years and leaves MUCH to be desired.

      Thanks for this link - had just yesterday decided to try and get espxe working again, 2 hours of tweaking settings didn't achieve what the new one does with no setup besides the gamepad configuration.

    25. Re:Avoiding the malloc() by LiquidCoooled · · Score: 1

      A group of 12-13 year old lads don't care if something "works".
      The name set the tone for the entire lesson and every single reference was followed by the entire class breaking down in fits of giggles.
      As for the technology itself I never once disparaged it.

      --
      liqbase :: faster than paper
    26. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Wooosh, you wanker!

    27. Re:Avoiding the malloc() by arashi+no+garou · · Score: 2, Funny

      I'm pretty sure the laughing was due to the name of the engine and not the question of its efficiency or practicality. Personally I am a fan of rotary engine technology.

    28. Re:Avoiding the malloc() by jmv · · Score: 1

      I guess the only way to really avoid the malloc() calls grabbing your source code would have been to compile, then reboot to link...

      How about:
      - Using calloc() instead of malloc()
      - calling memset() after malloc()
      - Using a good ol' for loop

      You make it sound like writing (zeros) to memory wasn't invented at that time!

    29. Re:Avoiding the malloc() by Anonymous Coward · · Score: 1

      I've had roms for nintendo and snes for over a decade.

      Remember Snes9x?

      It's been around and well known for a LONG time, you just seem to have been out of the loop.

    30. Re:Avoiding the malloc() by aichpvee · · Score: 1

      Where's the source?

      --
      The Farewell Tour II
    31. Re:Avoiding the malloc() by kcbanner · · Score: 3, Funny

      This is DOS we're talking about ;P

      --
      Obligatory blog plug: http://www.caseybanner.ca/
    32. Re:Avoiding the malloc() by nurb432 · · Score: 1

      I remember running MSDOS on PCDitto long before that.

      --
      ---- Booth was a patriot ----
    33. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      hey i'm a bulimic anorexic you insensitive clod

    34. Re:Avoiding the malloc() by sukotto · · Score: 1

      Reboot to link


      ha ha very punny :-)

      --
      Come play free flash games on Kongregate!
    35. Re:Avoiding the malloc() by CastrTroy · · Score: 2, Insightful

      I remember a big craze back when I was in highschool. About 10 years ago. Almost all the kids were into it. We played mostly NES and Gameboy games. I remember Pokemon being a huge hit. I actually think it was more popular back then than it is now. You could play games on your computer that were only 1 generation behind the current technology. Now the emulation hasn't really kept up with the advancing consoles. The bests emulators you can find are Playstation and N64, which are very old systems by today's standards.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    36. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Snes96 rather.

    37. Re:Avoiding the malloc() by Romancer · · Score: 1

      Again the "recent" word being used without numerical thought. The game was released a year after the defacto emulator (zsnes) was created and was downloaded by millions a year after that. These numbers are not recent, they also don't define a craze but they at least help narrow the discussion.

      --


      ) Human Kind Vs Human Creation
      ) It'd be interesting to see how many humans would survive to serve us.
    38. Re:Avoiding the malloc() by freeweed · · Score: 1

      Actually, as one who followed the whole thing pretty closely, the GP was definitely correct. The days of everyone and their dog running console/arcade emulators on their PC was years ago. There's been little activity in the area since maybe 2001-2, and anyone doing it now has either just bought a PC, or is a die-hard emulation enthusiast.

      Seriously, in recent years emulation has reached the masses by way of officially licensed collections of ROMs for PS2, Gamecube, etc - but in terms of running an emulator on the PC? No average person has done it in years. The craze was most definitely around 1998-2000 or so. It wasn't just some guy running it without sound - that might have been in the 1995-6 timeframe.

      --
      Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
    39. Re:Avoiding the malloc() by Opportunist · · Score: 1

      Yup. The compiler could also simply clear out the ram. It's not like a compiler is a time critical application that cannot be bothered to make a "needless" call. At the very least when compiling the release version, zeroing the mem should be a given.

      Of course, I'm quite sure the creators of the compiler just didn't think of the possibility. It's rather negligance than trying to squeeze the last nanosecond of speed out of the compiler. Like I said, compilers are hardly real time applications.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    40. Re:Avoiding the malloc() by mikael · · Score: 1

      The point is that the game was developed using an emulator running under a MS-DOS/Windows system. When it came to saving the image used to burn the ROM cartridge memory, the cross-compiler simply malloc'ed a large block of memory, copied the code, data and static stack segments into this block and wrote the solidified block out. Unfortunately, the block of memory also contained fragments of system memory (editor source code, registry settings, and just about everything else floating about in system memory). The cross-compilation tools developer should have used 'calloc' instead of 'malloc', except that 'malloc' is generally quicker.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    41. Re:Avoiding the malloc() by Monsuco · · Score: 1

      Only in recent years have so many people been emulating earlier consoles and arcade games on their home PCs, with pretty faithful representation of the original experience.
      Not just PCs dude. the origional Xbox could be modded as a wonderful emulator and playing with real controllers rocks. The Wii has emulators for sale. I see the consoles as being golden age 2.0 of emulation.
    42. Re:Avoiding the malloc() by Schraegstrichpunkt · · Score: 1

      It was, but presumably not writing the zeros was faster, and a faster linker meant faster development time, so compiler/linker developers learned to favour speed over trivial-seeming things like clearing memory.

      If the game developers wanted to zero that memory, they could probably have done it after the linking step was done.

    43. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0
      From the FAQ:

      Q. pSX is great, but it'd be even better if it goes open source! So how about it?
      A. There are no plans to take pSX open source as of yet. If you are an emulator author, feel free to email pSX Author, as he is willing to share the source code (within reason). If that's not good enough for you RMS-worshippers, too damn bad. Not everything needs to be open source.
    44. Re:Avoiding the malloc() by aichpvee · · Score: 1

      Fuck RMS and fuck you too, asshole coward. PSX emulators should be open sourced because the authors tend to drop the projects before they're complete and then everyone loses. That should be good enough reason to open source for anyone. You clearly don't agree with your own idiotic statements because you aren't willing to put your troll on the record. Get lost.

      --
      The Farewell Tour II
    45. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Are you stupid? The post you replied to contains the information that the author is willing to share the source code (within reason).

      From that I infer that if the author ever drops the project, he would be willing to give the source to anyone interested in continuing development. There are a lot of reasons not to make the source public but willingly provide it to people who request it (after evaluating that they have a legitimate need of it, and won't just 'steal' it for example).

    46. Re:Avoiding the malloc() by cheater512 · · Score: 1

      This is rather old dont you think? It didnt matter at all back then.
      These days you would do it properly of course.

    47. Re:Avoiding the malloc() by aywwts4 · · Score: 1

      Anyone remember digging around the dark side of the internet (Pre-p2p) scouring virus ridden german warez sites for hours trying to find a handful of roms while fighting to keep the porn popups away? No I'm sure everyone here somehow managed to know about all the Usenet groups and all the private IRC and FTP sites and never had to do that.

      --
      Web Developers: Celebrate to our roots! Animated Gifs and Tiled Backgrounds, dont let our history die!
    48. Re:Avoiding the malloc() by yoshi3 · · Score: 0

      since when did gameboys run dos?

    49. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      It was. they shut down their text editor, compiled, and malloc() happened to grab some memory that was just freed by the text editor. Or would you prefer that the editor retains the memory after shutdown. (I'd hate to be your support guy once you implement that)

    50. Re:Avoiding the malloc() by OrangeTide · · Score: 1

      This particular game came out in 1998. So we're talking on the very edge of when the original Pentium was no longer being produced and Intel was getting ready to migrate manufacturing to replacing Pentium I/II with Pentium III.

      But yes. for the original GameBoy, a 486 would have been pretty cutting edge. and XTs and 286s were still very common systems.

      --
      “Common sense is not so common.” — Voltaire
    51. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      C64 Emulators were fairly big back in the mid-1990s.

      They were all over my local BBSes.

    52. Re:Avoiding the malloc() by ultranova · · Score: 1

      The bests emulators you can find are Playstation and N64, which are very old systems by today's standards.

      PSX emulators - ePSXe in particular - are okay, if a bit slow on my machine; but I've never seen an N64 emulator which wouldn't have been alpha quality (meaning very slow and crashes. Is there a useful one fro Linux there; I'd really like to play OoT ?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    53. Re:Avoiding the malloc() by G+Fab · · Score: 1

      Well, obviously the AC was being a troll (And a moron), but if this author is willing to share his source with other programmers, I think that's cool of him. This emulator is his own work, and if he doesn't want to open source it, I think that's his right.

      Even if that's bad for the community (it obviously is).

      We give props to those who share their work precisely because they didn't have to be that generous. It's wrong to condemn those who exercise their rights. After all, if you truly are this dedicated to PSX emulation being open sourced, you would write an emulator and publicize your code. You and I aren't willing to pay that kind of price, so it's unfair to demand that this author do so.

      I guess I care a lot less about the PSX emulator because I have so many playstations of various generations that can run these discs. Do you find this useful just because it can run your backups? How much of this stuff is piracy?

    54. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Do you find this useful just because it can run your backups? How much of this stuff is piracy? Im sure there are a few people that use emulation for running backups, and I'm sure that more that a few people use it for piracy. There are other reasons too, though.

      Personally I own a PS1 (in a closet, but still working) and a PS2 (still hooked up) but I play my PS1 games emulated (with epsxe) whenever possible. I have two main reasons for this:

      First, the graphics plugins allow sharper, higher resolution rendering and the numerous filters like hq4x make a big difference in the appearance of sprites. This is purely a cosmetic advantage, but it's nice all the same.

      Second, and by far the biggest reason I run my ps1 games emulated, is that I can fast forward! I absolutely love playing through games like FF7 and Xenogears and Chrono Cross, but after beating them a few times you just get sick of pounding the X button and telling cloud to attack the enemies in yet another random encounter. Cranking up the speed and flying through all the less exciting parts is a godsend. I would never play a game through the first time like that mind you, but thanks to epsxe and zsnes I just can't stand to play through old PS and SNES RPG favourites without this feature handy.

      Even in non RPG games the fast forward feature can be extremely useful. For example in the Resident Evil series you can hit the fast forward button for a second every time you open a door to fly past the painfully slow door-opening-loading-sequence which was already annoying even back when the game was new and long boring loading screens were common.
    55. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      8bit emulators were big in the late 80's & early 90's, PC/MS-DOS emulators for the Amiga, Mac emulators (Remember ShapeShifter?) for the Amiga, hell even UAE was usable by the mid-90's. I remember running MacOS 7.5 on ShapeShifter on UAE on a Pentium 90. It took forever to get it all to boot, but getting the Mac desktop on a Windows 3.1 machine was worth it.

      Basically the OP isn't as old as he thinks he is.

    56. Re:Avoiding the malloc() by LKM · · Score: 1

      If you RTFM, you'll find that after looking at the source they found, they think Nintendo may have lost the original source code to Link's Awakening (which would be truly sad) and had to dissassemble it to create DX. So the original game probably has different stuff on it, if anything.

    57. Re:Avoiding the malloc() by LKM · · Score: 1

      I remember Connectix had an awesome PS1 emulator for Macs called "Virtual Game Station". It ran PS1 games perfectly well even on early PPC Macs such as the toilet seat iBook. Current Playstation emulators should not run slow on current machines, I think...

      But you're right about the N64. I've yet to see a really good N64 emulator.

    58. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      "but I've never seen an N64 emulator which wouldn't have been alpha quality (meaning very slow and crashes. Is there a useful one fro Linux there;"

      If you use linux, tough luck for you fagget.
      Nearly perfect N64 emulators do exist for windows, i've been through Zelda OoT plenty of times enough to say this.

    59. Re:Avoiding the malloc() by Stonent1 · · Score: 1

      I've dumped bios data from a Dell laptop before and snooped around using the strings command in Linux. I found the words "Back in the saddle" , some compiler information, a few snips of code and lots of error messages in plain text. On one bios at least, there was a warning inside that the bios was a beta release and not for production use.

    60. Re:Avoiding the malloc() by wed128 · · Score: 1

      They don't, but the development toolkit likely did (this was the 90's)

    61. Re:Avoiding the malloc() by rbanffy · · Score: 1

      And since when did anyone develop gameboy software in a gameboy?

      But that's an interesting question: What kind of computer did they use top develop those games?

    62. Re:Avoiding the malloc() by CastrTroy · · Score: 1

      You obviously don't remember UltraHLE. It was (is) an emulator that worked only with 3DFX cards and got very good results for the games that it worked with. The problem from what I recall was that it only played a few games, such as Mario 64, Zelda OOT, and Waverace. I think there may have been a total of 15 games that worked. It could also be used without a 3DFX card via a 3DFX wrapper, but performance in this case was very bad. That was back around 1999-2000. I remember looking up the N64 emulators a couple years back and finding that they had improved them quite a bit in terms of getting them to work on a wider variety of computers, but also remember that they hadn't got a whole lot of games working. I wonder what was so special about the N64 that made it so hard to emulate, especially considering the high quality of the PS1 emulators.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    63. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      Besides, they don't expect many people to actually look at the ROM code. This emulation craze is fairly recent.
      It has already been pointed out that the emulation craze was in full swing by 1998, but I also wanted to chime in that even before emulation, people were copying cartridges in one form or another for a very long time. Remember those pirate carts that included multiple games on the same cartridge? Remember the copying units that would load images from a floppy disk? (Back when it was current, a friend of mine had a Pro Fighter, which was one of these for SNES). Remember the lawsuit when some company made a third-party NES cart by including bits from a licensed ROM? Interested parties looking at ROM code is not without precedent, even without emulators.
    64. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      But the 1998 Link's Awakening DX was just a re-issue of a game from circa 1993, 1994.

    65. Re:Avoiding the malloc() by poot_rootbeer · · Score: 1

      Now the emulation hasn't really kept up with the advancing consoles. The bests emulators you can find are Playstation and N64, which are very old systems by today's standards.

      Those are the best hobbyist-authored emulators, perhaps.

      Microsoft and Sony have both implemented backward-compatibility in their 7th-generation consoles by writing emulators for their 6th-generation consoles. Since they had access to the official specs (and often, the original design talent) for the emulated systems, they were able to write emulators the exceed the capabilities of even the brilliant hackers and reverse-engineers that work on things like Project64 and MAME.

    66. Re:Avoiding the malloc() by Anonymous Coward · · Score: 0

      You don't eat, then vomit up what you've just not eaten?

    67. Re:Avoiding the malloc() by hansamurai · · Score: 1

      I played Jet Force Gemini last week perfectly on the latest stable release of Project 64. Widescreen worked just fine and the sound worked a lot better than on ePSXe.

    68. Re:Avoiding the malloc() by Overly+Critical+Guy · · Score: 1

      Only if you define ten years ago as "in recent years."

      --
      "Sufferin' succotash."
    69. Re:Avoiding the malloc() by aichpvee · · Score: 1

      Yeah, I guess it's better than nothing that he's willing to share the source with serious developers, and as someone else said he'd likely release it if he were going to drop the project. But that's still no guarantee and likely he'd just forget about it.

      And I've actually used PSX emulators to play my legit PSX games, despite having a PS3 (and a PSX and PS2 that are indefinite loan to my brother). Mostly for the save states, something Sony REALLY should have implemented with for PSX games on PS3.

      --
      The Farewell Tour II
    70. Re:Avoiding the malloc() by Dirk+Pitt · · Score: 1

      A bit of a non sequitur - I completely agree that the compiler should pad with 0s at least as an option - but I must say that the compiler can be a time critical application. Certainly not real-time, but slow compiles can be a pain.

      We have about 600 developers working on our primary product. Nightly compiles can top 40,000, individual developer projects can easily generate 1000s of compiles. Yes, dependency management is an important aspect of our development and it saves more time than anything, but there are common scenarios where we need to complete a large number of compiles. So multiply a compiler inefficiency by 600, and add to your favorite pointy-headed power point presentation on development cost...

    71. Re:Avoiding the malloc() by Torvaun · · Score: 1

      Yep, I remember that. During class, no less, because we had a truly sucktastic internet connection at home, and the school was blazingly fast.

      --
      I see your informative link, and raise you a pithy comment.
    72. Re:Avoiding the malloc() by billcopc · · Score: 1

      Having played both versions, they do have minor differences in gameplay, but we're talking about teeny weeny little timing issues like a certain water maze about 2/3rds into the game that was originally frustrating, but the DX version made a tad easier due to some change in the way the water's current was implemented.

      I wouldn't be all that surprised if they did have to recode some of it. Keep in mind that 2D games are almost trivial to code for any game developer, so it's not as big of an effort as you'd think. The fun part is that the code being so simple, you usually end up improving during the rewrite since you're aware of the entire project. Back in those days, many "2.0" games were the result of a partial or complete rewrite that elegantly solved various hacks.

      --
      -Billco, Fnarg.com
    73. Re:Avoiding the malloc() by billcopc · · Score: 1

      Precisely.

      "Craze" to me is when a non-technical person can run an emulator with a few mouse clicks, or by poking around with their Wii. Marat Fayzullin (remember him?) was not a household name, even though he was the developer of a very popular Game Boy emulator.

      These days you can hop on any garbage P2P client, type "game boy" and get a list of preconfigured emulators and frontends with EVERY SINGLE ROM. Any half-brained suburbanite can run it.

      Just look at MP3... back in the 90's we had them, and by "we" I mean geeks. bongo.tamu.edu was a "large" collection, they had maybe a couple hundred tunes. Today, my mother has an MP3 player in her car (it came with it). She probably didn't know what an MP3 was until a couple of years ago.

      Just because Slashdotters are aware of tech, doesn't mean it is mainstream.

      --
      -Billco, Fnarg.com
  2. Deja Vu by hlomas · · Score: 5, Funny

    News Post Comes With Article, Sort Of

  3. Whoops... by foldingstock · · Score: 3, Funny

    Awesome. :) This must be why they always say not to code whilst drunk.

    1. Re:Whoops... by mouse_8b · · Score: 5, Funny

      Awesome. :) This must be why they always say not to code whilst drunk. Who says that? They should be shot.
    2. Re:Whoops... by JensenDied · · Score: 4, Funny

      Someone has never heard of the Ballmer Peak.
      Windows ME is why they say not to code the entire project smashed though.

      --

      09:F9:11:02 - 9D:74:E3:5B - D8:41:56:C5 - 63:56:88:C0

    3. Re:Whoops... by Scruffy+Dan · · Score: 1

      Obviously you have never heard of the Ballmer peak. And you cal yourself a programmer...

      --
      Just another crappy blog
    4. Re:Whoops... by Cappy+Red · · Score: 1

      You might change their minds if you give them a shot or two.

      --
      This is my sig. It's prescription, I swear. I need it for reading things... on the other side of things
  4. Air Fortress (NES) had exact same issue! by Dwedit · · Score: 4, Informative

    Air Fortress (Famicom version) also included a portion of the source code due to not clearing memory before linking.

    1. Re:Air Fortress (NES) had exact same issue! by Indefinite,+Ephemera · · Score: 4, Informative
    2. Re:Air Fortress (NES) had exact same issue! by jez9999 · · Score: 1
      Re: Secret of Evermore

      Strange, unused, and testing text is scattered throughout the ROM, in addition to what looks like a chunk of C programming code. No, that's just the ingame script.
  5. Not true by Megane · · Score: 5, Informative

    Now the site is Wordpressed (like Slashdotting, only the other way around) and you can't get to it, but one of the last posts before it died pointed out that this was from a trainered version. That's where someone adds cheat code to a ROM. As it turns out, the original doesn't have any of the code in question. Dissassembling for the purpose of adding cheats is a completely sensible explanation of the code that was found.

    The moral of the story? Start with a known clean dump (look for the "[!]" tag) before assuming that the introns were in the original game.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    1. Re:Not true by Kjella · · Score: 4, Funny

      Now the site is Wordpressed (like Slashdotting, only the other way around) and you can't get to it, Uhh, the wordpress site is down and slashdot is up - that's a classic slashdotting. A "wordpressing" would be if the wordpress blog linked to slashdot, and enough people came to slashdot to bring slashdot down (good luck on that).
      --
      Live today, because you never know what tomorrow brings
    2. Re:Not true by Anonymous Coward · · Score: 1, Interesting

      Hang out on digg more often, where blogs (powered by wordpress) are linked all the time. A site running wordpress dies after 5 hits, from cpu usage not network usage, and hence the site is "wordpressed". It's backwards because the site is doing it to itself really, not because of slashdot traffic.

    3. Re:Not true by Anonymous Coward · · Score: 0

      That's a seriously retarded term.

    4. Re:Not true by stoolpigeon · · Score: 5, Funny

      well he did say it was from digg- no need to be redundant.

      --
      It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
    5. Re:Not true by Anonymous Coward · · Score: 1, Insightful

      The term DOSsed is sufficient.

    6. Re:Not true by eulernet · · Score: 3, Informative

      Agreed.
      The 'disassembled' routines are simply a filling routine with register D and a copy routine.
      As a Z80 developer, you really don't need to disassemble this kind of routines.

      I guess the source code parts come from the intro, and its coder was not very good either. For example: CALL/RET instead of JP or disassembling a copy routine, and keeping it called L_B000_2914.

    7. Re:Not true by noidentity · · Score: 1

      Or something anyone would understand: overloaded. "The server was overloaded with all the visitors."

    8. Re:Not true by Anonymous Coward · · Score: 0

      That kinda was the point of calling it wordpressed. It's not overloaded with visitors, it's overloaded with Wordpress. What good is a content management system which can only serve a few users at a time.

    9. Re:Not true by Bert64 · · Score: 4, Interesting

      Yes, wordpress is rather inefficient...
      How do php accelerators such as eaccelerator affect it, and what level of hardware would you need to handle a significant load of wordpress hits?

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    10. Re:Not true by Joe+Tie. · · Score: 1

      The absolute simplest way is just to replace the front page with a static html file. I think the latest version of wordpress even has some mechanism in place to automate it if needed.

      --
      Everything will be taken away from you.
    11. Re:Not true by Scruffy+Dan · · Score: 1

      I always assumed that was because people frequently ran wordpress on servers that can't handle much simultaneous visitors.

      Is wordpress really that bad? or is it frequently being run on under-powered servers.

      --
      Just another crappy blog
    12. Re:Not true by David+Gerard · · Score: 2, Interesting

      WP-Cache is just the thing to avoid massive PHP and MySQL overload.

      --
      http://rocknerd.co.uk
    13. Re:Not true by Hal_Porter · · Score: 1

      Yes, wordpress is rather inefficient...
      How do php accelerators such as eaccelerator affect it, and what level of hardware would you need to handle a significant load of wordpress hits? You just change all the callocs in the wordpress code to mallocs. Cuts out all the overhead.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  6. This is a non-story by Dwedit · · Score: 4, Informative

    This is a non-story. This only applies to a specific Pirate ROM Dump of Zelda DX. The clean dump does not contain any embedded source code.

    1. Re:This is a non-story by Anonymous Coward · · Score: 0

      Agreed, for this particular Zelda my collection has it labeled as(md5 agrees with the article's md5):
      Translations/Legend of Zelda, The - Link's Awakening DX (J) [C][p1][T-Chinese][!].zip

      I *think* the (J) in the file name means that they used the Japanese copy as a source.

      So, if it was an unofficial translation done by some group(or ambitious fan) it shouldn't be as much of a surprise that that it was disassembled.

    2. Re:This is a non-story by Anonymous Coward · · Score: 0

      Dang, should have looked at this before I posted that, of all the Zelda DX copies/translations/hacks I have, all of them are 1048576 byes in size (1MB) *except* that Chinese one. (18 different versions, covering from a few hacks, unofficial translations, to official translations and different versions of the game (1.0, 1.1 that type of versions))

      The Chinese one, is the only 2MB (2097152 bytes) in size.

    3. Re:This is a non-story by Anonymous Coward · · Score: 0

      This would be a non-story if it were ton the original, too.

      What could you possibly do with the code in the 90s? Normal people didn't have a rom reader or writer or whatever and if you intented to make pirate copies, you could as well have copied the binaries.

    4. Re:This is a non-story by Anonymous Coward · · Score: 0

      I wonder who is behind the troll-bot that generated the above comment. Thats weird. Total generic comment to bash open source. My favorite part is "it makes sense to buy from this vendor".

    5. Re:This is a non-story by Anonymous Coward · · Score: 0

      This is a non-story. This only applies to a specific Pirate ROM Dump of Zelda DX. The clean dump does not contain any embedded source code.

      Perhaps because the clean dump was cleaned up? Where would the pirate rum dump get the sourcecode from, if not from the rom itself?

    6. Re:This is a non-story by LittleBigLui · · Score: 1

      Where would the pirate rum dump ...


      Arrr.. Don't dump the rum, drink it!
      --
      Free as in mason.
    7. Re:This is a non-story by Anonymous Coward · · Score: 0

      It's not source code from the game, it's source code of the tools the pirates used to hack the game. That stuff doesn't really look like game source code anyway does it?

  7. It happens by Diomidis+Spinellis · · Score: 5, Funny
    This used to happen more often than one would expect. In the 1980s I found portions of Ashton Tate's Framework II source code in "blank" sectors of floppy disks containing printer drivers. Those were the days where:
    • each application came with its own display and printer drivers,
    • people were using floppy disks to move around source code, and, worse,
    • other people had enough free time to trawl "blank" sectors for interesting tidbits.
    1. Re:It happens by urcreepyneighbor · · Score: 4, Funny

      other people had enough free time to trawl "blank" sectors for interesting tidbits. Eh? I still do that.... Then again, I am urcreepyneighbor....
      --
      "The fight for freedom has only just begun." - Geert Wilders
    2. Re:It happens by KDR_11k · · Score: 2, Interesting

      That's nothing, I bought a pack of supposedly empty 5.25" disks for my C64 in a store, when I looked at them without formatting it turned out they were all filled with warez. Different warez, even, not the same for all disks.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    3. Re:It happens by PCM2 · · Score: 5, Funny

      A company I worked for once participated in the beta test program for Adobe Illustrator ... I think it was version 7. We were primarily a Mac shop, so we were using the Mac versions of the CD-ROMs they sent us. One build they sent us had a funny property... when you put the CD-ROM in the drive, the Trash can would turn full. Oh but wait -- before you old Mac people start going "ho ho ho," there wasn't actually anything important in the Trash can. But that's when I noticed that a couple of extra folders would appear on the desktop, too. ;-) In one of those was about 340MB of source code for Adobe Illustrator, Dimensions, Streamline and some other stuff.

      About four days after we received this particular build (and I had noticed its interesting attributes) I got a call from Adobe:

      Adobe: There are problems with the latest build of Illustrator. We need to recall those CD-ROMs immediately.

      Me: Gosh ... sounds bad. Problems?

      Adobe: Yes. We will be sending you a prepaid FedEx return envelope. It's extremely important that you return those discs to us right away.

      Me: I see. Oh, my. Look ... can you tell me what the problem is? It's not a virus, is it?

      Adobe: I can't really say. It's a technical issue. But if you've installed Build 378468434 on any of your equipment, you should un-install it right away.

      Me: Oh, dear. Oh, dear oh dear. I will do so, ma'am, immediately. It ... it wouldn't damage any of our systems, would it?

      Adobe: Um... you should be OK. But, just to be on the safe side you should be sure to uninstall it from any of your machines and make sure you send those CDs back to us right away.

      Me: Yes ma'am, will do.

      Adobe: Thanks, have a nice day.

      Me: (pushes eject button on CD-R burner, grabs a Sharpie)

      --
      Breakfast served all day!
    4. Re:It happens by grub · · Score: 1

      Ohh... I really did like Framework. We used that along with dbase III at a few workplaces back them. The two worked together nicely (for the time anyhow)

      --
      Trolling is a art,
    5. Re:It happens by laughing_badger · · Score: 1

      Wouldn't happen to have the source for Framemaker would you? I'd love to get that working under OSX...

      --
      Help children born unable to swallow - www.tofs.org.uk
    6. Re:It happens by PCM2 · · Score: 1

      Wouldn't happen to have the source for Framemaker would you? I'd love to get that working under OSX...


      Haha, no. And, given that this was probably around 1997, I doubt that the code would be of much use to you anyway. If I remember right, what I got was neatly organized into CodeWarrior projects, but it wasn't complete, i.e. it wouldn't actually build a binary.

      --
      Breakfast served all day!
    7. Re:It happens by Deadstick · · Score: 4, Interesting

      Ashton-Tate wasn't above having somebody ELSE's code in their products either. When they wrote the "laser burn" copy protection routine for dBase III, they needed to put a hook in the BIOS -- which wasn't so easy in those days of expensive memory, because the BIOS used to run directly from ROM instead of being shadowed out into RAM. So they wrote their own BIOS -- by which I mean, they copied some 700 bytes of the IBM Fixed Disk BIOS (which was published in the PC-XT user manual), added the hook, and then hid the dirty deed under an encryption routine that was absurdly simple (although very tedious on a floppy machine) to penetrate.

      It was obvious they knew they were writing a pirate product, because they went through the code and swapped arithmetic and logical shift instructions wherever they were certain to produce identical results, presumably in order to get the fraction of identical bytes down.

      rj

    8. Re:It happens by empaler · · Score: 1

      ... so, you bought a pack of used disks from the store? Did you return and complain or did you just keep your loot? :-)

    9. Re:It happens by Skater · · Score: 1

      I read this entire thread, hoping for an explanation of the thousands of bugs in dBase IV, but I was disappointed. Your message came the closest, though. If you have something on that topic, I would love to hear it.

      (Side note: I go by "RJ" too.)

    10. Re:It happens by marcansoft · · Score: 2, Interesting

      It still happens. Nowadays it tends to be random files leftover in a game's directory structure. I seem to remember that Halo 2 came with a script file in one of the directories (I may be wrong on this one), and the Gamecube version of Twilight Princess comes with the Wiimote sounds still in there, plus a different file with some Mario sounds (maybe there's and embedded mario minigame in the Wii version? Or perhaps it's just a demo file). The GC TP also has a whole bunch of linker map files if I remember correctly.

  8. Not too uncommon by 0123456 · · Score: 5, Interesting

    One of the 'Elite' sequels was shipped with a swap file on the CD-ROM. Opening that swap file with a text editor showed it included much of the C code for the game, which presumably must have been swapped out while they were compiling at some point and then copied to the CD by mistake.

    From what I remember the installer copied the swap file to the hard disk, but the first patch either deleted it or zeroed it :).

    1. Re:Not too uncommon by Anonymous Coward · · Score: 2, Interesting

      I purchased the game "Pirates of the Caribbean" a few years back. My original Sid Meier's Pirates was corrupted and the new one was not yet out. The game was not very good at all. However, when I looked at what was on the disk, there were several files with a .c and .h extension. Sure enough the disc had a lot of source code on it. I am not sure if it was the entire game and I do not know which box I packed it in the last time I moved, so I cannot find it at the moment. However, I remember seeing the C code for that game on the disc I purchased at a retail store.

    2. Re:Not too uncommon by vranash · · Score: 5, Interesting

      Having that game (Which was actually Bethesda's Sea Dogs 2 rebadged before release.) It had a *TON* of files with it, although I think they were lua-scripts or something, not actual c-code. Regardless they had a lot of options available in them for modifying core components of the game. You could change your characters starting stats, name, ship type, etc. Given the somewhat frustrating land-side swordplay, I ended up having more fun tweaking the game than playing it.

      Having reminded me, I may have to dig it out sometime soon and see what else it's got going.

    3. Re:Not too uncommon by rucs_hack · · Score: 2, Funny

      I bought a bbc model B just to play elite when both where pretty new, and found a text record of a conversation in the BBCs CMOS (think it was there, that was what I was playing with when I found it).

      It was two guys sending text back and forth talking about the legs on a woman who'd just entered the office. It was pretty well buried. I'm guessing they just forgot they'd been clowning around and it got left in when the BBC was put into production. I did write it down at the time, but this was in the eighties...

      I can't recall how I found it exactly. It was late, I was hacking about trying to find something I could alter as a joke on a friend, and there it was. It made I chuckle.

      I gave the BBC away eight years ago, along with Elite (still had it, and it still worked:). Didn't take me long to regret it. For one thing I'd be able to go find that conversation again now.

    4. Re:Not too uncommon by Anonymous Coward · · Score: 1, Informative

      The BBC model B didn't have CMOS ram. The operating system ROM did have a chunk of text in the memory-mapped IO area. It read:

      (C) 1981 Acorn Computers Ltd.Thanks are due to the following contributors to the development of the BBC Computer (among others too numerous to mention):- David Allen,Bob Austin,Ram Banerjee,Paul Bond,Allen Boothroyd,Cambridge,Cleartone,John Coll,John Cox,Andy Cripps,Chris Curry,6502 designers,Jeremy Dion,Tim Dobson,Joe Dunn,Paul Farrell,Ferranti,Steve Furber,Jon Gibbons,Andrew Gordon,Lawrence Hardwick,Dylan Harris,Hermann Hauser,Hitachi,Andy Hopper,ICL,Martin Jackson,Brian Jones,Chris Jordan,David King,David Kitson,Paul Kriwaczek,Computer Laboratory,Peter Miller,Arthur Norman,Glyn Phillips,Mike Prees,John Radcliffe,Wilberforce Road,Peter Robinson,Richard Russell,Kim Spence-Jones,Graham Tebby,Jon Thackray,Chris Turner,Adrian Warner,Roger Wilson,Alan Wright.

      The BASIC ROM didn't have room for any extra text; the only cruft in the whole 16K is the name "Roger" in the last five bytes. The optional disk filing system ROM doesn't have any extra text either (I just checked).

      I don't know what you saw, but it wasn't a standard part of the BBC micro.

    5. Re:Not too uncommon by rucs_hack · · Score: 1

      The BASIC ROM didn't have room for any extra text; the only cruft in the whole 16K is the name "Roger" in the last five bytes. The optional disk filing system ROM doesn't have any extra text either (I just checked).

      This was a long time ago, I might be wrong about exactly where it was, but it was a standard bbc model b with no software running, and the text was there. You should dig about more.

      Wish I still had it, probably wouldn't take me long to find where the text was.

    6. Re:Not too uncommon by Alioth · · Score: 1

      Sure you didn't have some optional sideways ROM or a sideways RAM board? The BBC doesn't have a CMOS battery backed memory (the Master does though).

    7. Re:Not too uncommon by rucs_hack · · Score: 1

      It was a rather expensive one, and yes, I did have extra's. I bought the best that was available, much to the annoyance of my friends. It had a speech synthesis chip for one (not that I could ever get it to work well).

  9. Partially Not Not true by hxnwix · · Score: 4, Insightful

    Now the site is Wordpressed When slashdot brings down a site running Apache, we call it slashdotting, not Apache-ing. When slashdot brings down a site running wordpress, we call it slashdotting, not wordpressing.

    the original doesn't have any of the code in question Are the other games mentioned also trainered?

    "X-Men - Wolverine's Rage" (MD5: b1729716baaea01d4baa795db31800b0), which contains Windows 9x registry keys and INF files, "Mortal Kombat 4 (MD5: 7311f937a542baadf113e9115158cde3), in which you can find some small source fragments, "Gift" (MD5: e6a51088c8fea7980649064bd3a9f9ff), which will tell you that the developers had some Game Boy emulators installed on their system, or the "BIT-MANAGERS" games "Spirou" (MD5:5aa012cf540a5267d6adea6659764441, Turbo C, MAP file, source) and "TinTin in Tibet" (Game Boy Color version, MD5: 8150a3978211939d367f48ffcd49f979), which, amongst other things, contains references to Nintendo's Game Boy Advance (!) SDK ("C:\Cygnus\thumbelf-000512\H-i686-cygwin32\lib\gcc-lib\thumb-elf\2.9-arm-000512, "/tantor/build/nintendo/arm-000512/i686-cygwin32/src/newlib/libc/stdio/stdio.c").
    1. Re:Partially Not Not true by dattaway · · Score: 2, Insightful

      Wordpress has rightfully earned this term. Wordpress is so script intensive that nearly every web page on a server farm, that a few concurrent hits causes the load average to soar. Wordpress may be responsible for a significant portion of electricity usage in data centers. Want to kill every virtual account on a server? Install Wordpress.

    2. Re:Partially Not Not true by OverlordQ · · Score: 1

      Wordpress has nothing on older versions of moveabletype.

      --
      Your hair look like poop, Bob! - Wanker.
    3. Re:Partially Not Not true by Anonymous Coward · · Score: 0

      What is the name for your particular annoying brand of stupid?

    4. Re:Partially Not Not true by ConceptJunkie · · Score: 4, Funny

      Now the site is Wordpressed

      When slashdot brings down a site running Apache, we call it slashdotting, not Apache-ing. When slashdot brings down a site running wordpress, we call it slashdotting, not wordpressing.

      Except Wordpress comes pre-Slashdotted for your convenience.

      --
      You are in a maze of twisty little passages, all alike.
  10. Malloc clears? by 4D6963 · · Score: 1

    While modern operating systems will always clear all malloc()ed memory, so that you cannot get to other processes' data

    What do they mean by clear the memory? Because when I malloc() (and not calloc()) I seem to get whatever was there before..

    --
    You just got troll'd!
    1. Re:Malloc clears? by 0123456 · · Score: 4, Informative

      "What do they mean by clear the memory? Because when I malloc() (and not calloc()) I seem to get whatever was there before.."

      But you don't get anything from another process. When malloc() runs out of memory and asks for a new chunk from the operating system, a modern system will usually zero the block that it returns, whereas some older operating systems (e.g. MS-DOS, I think?) would just give a pointer to a chunk of free memory which could still contain any data that the previous user had left in it; that could be any program which had previously run on the machine.

      When you free something and call malloc() again afterwards, you may well get a block with old data from your program. But in most cases you won't get a block with old data from a different program.

      The same applies to disk files; with some operating systems in the past you could open a file, write a byte a megabyte into the file and then read a megabyte of old data preceding it in free blocks which had been allocated to you and not cleared. That was obviously a big potential security hole, so most modern operating systems will zero all the data in the file instead (more precisely, they'll probably allocate a sparse file which will return zeros from areas which haven't been written to).

    2. Re:Malloc clears? by KDR_11k · · Score: 2

      Modern. We're talking about a Gameboy game.

      --
      Justice is the sheep getting arrested while an impartial judge declares the vote void.
    3. Re:Malloc clears? by mikael_j · · Score: 4, Insightful

      I think you're giving MS-DOS too much credit when it comes to memory management. Basically, it was single-tasking so you could just use whatever memory you wanted to.

      /Mikael

      --
      Greylisting is to SMTP as NAT is to IPv4
    4. Re:Malloc clears? by Tony+Hoyle · · Score: 3, Insightful

      It's not even zeroed.. it doesn't exist.

      When you first malloc memory you get a page of memory that's set copy on write and backed from a special page in memory with nothing but zeroes in it. It's only when you first use the memory that physical memory is actually allocated.

    5. Re:Malloc clears? by multipartmixed · · Score: 1

      Thanks. I was beginning to think NOBODY online today understood a modern(ish!) VM subsystem.

      The rest probably got distracted looking at the dirty pages.

      --

      Do daemons dream of electric sleep()?
    6. Re:Malloc clears? by kasperd · · Score: 1

      it was single-tasking so you could just use whatever memory you wanted to.
      That is not the reason. Yes it was essentially single tasking, but that didn't prevent you from having multiple programs in memory at once. But only one could be active at a time, and process control worked like a stack. But even though the other programs in memory were not running, there would still be memory belonging to somebody other than you, and some of them might even be providing some kind of service which you were relying on. So DOS in fact had to implement a full blown memory management. Of course since there were no protection you could write outside the memory allocated to you, the result would most likely be that you crashed the system. Ownership of memory was of course made a bit tricky by the fact that you could just allocate a chunk and leave it around when terminating, sometimes you would even do that on intention.

      Multi tasking and protection are not that much tied to each other, you can implement the one without the other. But a modern operating system have both.
      --

      Do you care about the security of your wireless mouse?
  11. There's more by Kayamon · · Score: 5, Interesting

    Golden Axe 2 (the arcade ROM) has a good chunk of it's source code contained in there too, including the source for it's security routine (oh the hilarity...)

    And the PAL version of ICO (PS2) had an objdump of the entire ELF on the disc, which is basically a disassembly with full symbol information.

    --
    Kayamon
    1. Re:There's more by mrbobjoe · · Score: 1

      And the PAL version of ICO (PS2) had an objdump of the entire ELF on the disc, which is basically a disassembly with full symbol information.
      It is common for Gamecube games to include .map files, which name every function in the game executable.
  12. Mingw32 for the Advance SDK? by Anonymous Coward · · Score: 0
    From TFA:

    "TinTin in Tibet" (Game Boy Color version, MD5: 8150a3978211939d367f48ffcd49f979), which, amongst other things, contains references to Nintendo's Game Boy Advance (!) SDK ("C:\Cygnus\thumbelf-000512\H-i686-cygwin32\lib\gcc-lib\thumb-elf\2.9-arm-000512, "/tantor/build/nintendo/arm-000512/i686-cygwin32/src/newlib/libc/stdio/stdio.c")


    So the GameBoy Advance SDK uses MinGW32 and Newlib? Neat!
    1. Re:Mingw32 for the Advance SDK? by tepples · · Score: 3, Informative

      So the GameBoy Advance SDK uses MinGW32 and Newlib? Neat! Because so does the unofficial devkitARM used by homebrew developers on GBA and DS.
  13. PC-Engine CD-ROM by JensR · · Score: 1

    I remember looking at a PC-Engine CD-ROM ages ago - I think it was Golden Axe - that contained bits and pieces of the source code as well. Probably for the same reason.

  14. In 1978, on cassette tape by localroger · · Score: 2, Interesting

    As a kid I had a surplussed computer called the "Interact Model R." All of the game tapes were 8K even, and at the end of many of them I found commented 8080A assembly code for other games and the BASIC interpreter that was supplied with the system (yes, it was on tape for this machine). Starting with 200 lines of source I would eventually reverse assemble the entirety of what I later learned was Tiny BASIC.

    --
    Brackets contain world's first nanosig, highly magnified:[.]
  15. Also, by schnipschnap · · Score: 1

    Gamepack ROMs were up to 8 Mbits in size (http://en.wikipedia.org/wiki/Game_Boy), while the article says something about padding a 2 MB ROM with random stuff. Hmm.

  16. Re:Giving up. by ceoyoyo · · Score: 4, Funny

    "Stuff that matters" is sarcastic.

    Actually, I've noticed that lately it says something about going outside. Also sarcastic.

  17. so... by hitmark · · Score: 0, Offtopic

    what can be seen as a life saver om hardrives (that by default, "deleted" files are still there but not part of the file system) can be a troublesome issue in ram?

    oh wait, not zeroing a hardrive can be bad, if one sell of a old one...

    --
    comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
  18. Does anyone else... by achenaar · · Score: 5, Funny

    find it amusing that this happened because of the Link-er.
    I can't be the only one...
    Can I?

    I'll get me coat.

  19. Not a programmer are you? by EmbeddedJanitor · · Score: 2

    memset(ptr,0,size)

    --
    Engineering is the art of compromise.
  20. not a new phenonemon by Anonymous Coward · · Score: 0

    Old-time ZX Spectrum guy here. IIRC there was some (assembly) source code embedded in the original release of Manic Miner. I guess that would be around 1982... nothing new here :) I remember seeing that and thinking it was pretty cool. (the source code was removed when Software Projects re-released the title... 1983 I think)

  21. FoxPro by Anonymous Coward · · Score: 5, Interesting

    Posted anonymously to hide my shame of working with visual FoxPro.

    FoxPro, I discovered after shipping our product for 2 years, didn't really compile anything when you made an .exe It just included a runtime and the source code in the .exe file. If you looked at it ina hex editor, there was the full source code, complete with comments. Apparently there was an option to scramble the source code. The guy responsible for building the installation didn't do that.

    1. Re:FoxPro by Shados · · Score: 2, Interesting

      Java and .NET are almost like that. I mean, you need a decompiler, but the compiled bytecode is so close to the source, you can replicate the original fairly well from the bytecode, thus why many many commercial softwares ship with obfuscated binaries.

    2. Re:FoxPro by Doctor+Faustus · · Score: 1

      the compiled bytecode is so close to the source, you can replicate the original fairly well from the bytecode
      That's probably a reasonable way to port between VB.Net and C#, if you felt like switching. Compile what you wrote, and then decompile into the other.

    3. Re:FoxPro by Shados · · Score: 1

      Would be pretty long since the decompile is only like 99% accurate (some references to external libs will come up as hexa code and such), but when you did something VB.NET specific (like the way VB.NET can handle events through syntax sugars) and are curious how it works in C# for example, it works fairly well.

    4. Re:FoxPro by Doctor+Faustus · · Score: 1

      I might try that sometime to see what C# does with optional parameters...

  22. Beatmania Best Hits by Myria · · Score: 3, Interesting

    As for the source code in the ROM, check out some of the comments on our site. The slashdotters above commented on it above. This post is from months ago, too - why on Slashdot now?

    Anyway, A Japanese PlayStation game named "Beatmania Best Hits" came with the complete source code to "Beatmania 5th Mix", another PlayStation game in the same series. Supposedly, it was complete enough to actually compile and run.

    PlayStation games of the era had to have a ~30 meg file of zeros on them at the outer edge due to a problem with the drive. These were known as "DUMMY" files. Some unknown sneaky programmer at Konami put an LZH archive containing 5th Mix's source code as the DUMMY file. (The contents of the file didn't technically matter, it just had to be at the outer edge.)

    --
    "Screw Sun, cross-platform will never work. Let's move on and steal the Java language." - Visual J++ Product Manager
  23. Re:Giving up. by SavedLinuXgeeK · · Score: 0, Redundant

    Thats when you are under the Mobile section of the site. I'm not sure if that's so sarcastic, but meh

    --
    je suis parce que j'aime
  24. opensource by Paul_Hindt · · Score: 5, Funny

    Dude, get this...I downloaded this game, I think it was called Quake 3...well, I started poking around on their website and found all the source code! Crazy huh?

  25. you're both wrong by Anonymous Coward · · Score: 0

    Movable Type is extremely resource-intensive while rebuilding pages, but it then serves the pages as static files. OOTB it's much better suited to handling traffic. If an MT site is slashdotted it's because Apache fell down, not MT (unless everyone's visiting, then leaving comments or running searches). MT doesn't enter the picture until content is updated. WP does as soon as someone tries to view a page.

    Still, while WP can be a bit server-intense, this is typically due to poorly-written plugins rather than the core. And if you install any of the caching plugins it can perform very well indeed.

  26. "sparky" by El_Oscuro · · Score: 1

    I once found a subdirectory called "sparky" on a CD which I got from Oracle which contained the complete unrestricted (no keys required) installation of MS-Office.

    --
    "Be grateful for what you have. You may never know when you may lose it."
    1. Re:"sparky" by Archon-X · · Score: 1

      I recall office 97 was swiss cheese anyhow. when it looked for previous office files to verify the upgrade, you'd point the installer at itself, and it'd be happy and install office ;)

    2. Re:"sparky" by Binestar · · Score: 1

      Most Secure CD-Keys ever:

      1112-1111111111
      1113-1111111111
      1114-1111111111

      (etc)

      --
      Do you Gentoo!?
    3. Re:"sparky" by CastrTroy · · Score: 1

      I also recall there being some CD key which was basically all 1's, or something to that effect, which worked with Office 97 and a few other Microsoft programs.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:"sparky" by El_Oscuro · · Score: 1

      Using the all 1's CD-key has been our standard policy for installing older Microsoft software for years. We have the actual keys, but is just easier typing all 1's when asked for the key instead of looking for the real one.

      --
      "Be grateful for what you have. You may never know when you may lose it."
    5. Re:"sparky" by El_Oscuro · · Score: 2, Funny

      To convert the Win95 upgrade CD to the full version, just type:

      C:\>dir > NTLDR

      Now, install your "full" version of Win95 as usual. I got this little tip from Microsoft support.

      --
      "Be grateful for what you have. You may never know when you may lose it."
    6. Re:"sparky" by Archon-X · · Score: 1

      I believe that in fact the trailing digits had to be divisible by 7 for a valid key, so the 1 trick was just 'conincidence'

    7. Re:"sparky" by SuiteSisterMary · · Score: 1

      The old algo was 'three random numbers, a dash, and seven numbers which, when added, total a factor of seven.'

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  27. Reminds me of Weitek by Ungrounded+Lightning · · Score: 4, Interesting

    This reminds me of one of the several oopsies that led to the demise of Weitek. (This one wasn't the last straw. But it was a pretty big bale.)

    An administrator decided that, to save money, those darned resource-wasting engineers would be limited to one new floppy disk per week.

    So floppies got reused a lot. And of course eventually somebody got sloppy.

    The master for one of their graphics driver distributions was built on a recycled floppy disk. Of course the old files were deleted, rather than the disk being reformatted with a surface-analysis (and data wiping) pass. And of course this master was sector-cloned for production.

    Turns out the entire source code for the drivers had previously lived on that disk - and many of the algorithms that made the product cutting-edge were either in the driver or had enough info in the driver source about what the chip was up to that it made reverse-engineering a snap.

    So just apply any of several "undelete the lost files" tools to any copy of the distribution disks and you could recover pretty much the whole source code, comments and all.

    Shortly after this, the best of Weitek's cutting-edge algorithms became industry standards.

    That's one of the characteristics of Trade Secrets. Once it's no longer a secret (especially if the owner managed to leak it himself), it's public domain.

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  28. Re:Giving up. by Architect_sasyr · · Score: 1

    Mobile obviously means when you walk from the microwave to your chair... those three feet without my /. would be like an eternity in hell... the outside stuff is just a joke to make the so-called 'normal' people think we know what the 'light of day' looks like from more than those cheesy outdoor porn videos!

    --
    Me failed English...
    FreeBSD over Linux. If my comments seem odd, this may explain...
  29. So did... by Skater · · Score: 1

    Yar's Revenge!

    Hard to read it, though.

    1. Re:So did... by Mr+Z · · Score: 1

      That isn't source code though, it's machine code. It's not surprising when a game cartridge includes the machine code. In fact, it's pretty much expected. ;-) Yars' Revenge isn't even unique with regards to repurposing machine code as graphics patterns. Intellivision's B-17 Bomber does something similar for its "flak."

    2. Re:So did... by Skater · · Score: 1

      Still, the fact that Atari was worried about the code getting out there is pretty enjoyable.

    3. Re:So did... by Dwedit · · Score: 1

      It's much easier to directly read a cartridge to dump a ROM than to watch images on a TV screen, even if what flashed on the screen was the entire object code.

  30. Exposed by WindFish · · Score: 0, Offtopic

    Is there a draft? I feel exposed. (See my username.)

    1. Re:Exposed by meditativemaster · · Score: 0

      i lold.

  31. Re:Did someone forget to show up for work? by Anonymous Coward · · Score: 2, Funny

    After all the mistakes in today's stories, the editors must have committed ritualistic suicide to end their shame.

  32. That's not even slightly true. by Anonymous Coward · · Score: 0

    You *could*, in theory, just use whatever memory you wanted, but that would run the risk of crapping all over any TSRs or drivers you had loaded. And if any of them had hooked, for instance, the timer interrupt? Well.

  33. Re:The Bible by Tweekster · · Score: 3, Funny

    I want those 2 minutes of my life back.

    --
    The phrase "more better" is acceptable English. suck it grammar Nazis
  34. Blood and magic demo by Anonymous Coward · · Score: 0

    A long time ago I bought a game with a collection of TSR games like eye of the beholder I-III. On the same disk was a demo of Blood and Magic. Curiously though, there was a SRC directory on the CD which contained C++ source code... including snippets like #ifdef DEMO :)

    (I did try to compile it but there were some syntax errors in the source code so it wouldn't work out of the box though.)

  35. Re:The Bible by insertwackynamehere · · Score: 1

    In my opinion, one is better off reading the Bible as a collection of stories and descriptions of our past, whether one believes it or not. Looking at it as some kind of source code is ridiculous and misses the point. Whether one believes the Bible or not, or believes it to varying degrees, it can be informative whether spiritually or historically. But looking for answers as though it is some kind of machine misses the point.

  36. so, if the site ran on IIS, then.. by newr00tic · · Score: 1

    Now the site is Wordpressed (like Slashdotting, only the other way around) and you can't get to it, If it were a MS IIS webserver, would "ShitPushed" be the correct definition? ;)

    (..You lime-laced Teadrinkers can save your "buht IIS is sec0re n0wez!!11!!11!!" -turdmania for going about trolling some other post(s), ktnx..)

    --
    A horse can't be sick, you know, even if he wants to.
  37. Re:The Bible by Jesus_666 · · Score: 1

    To think that the Borg are so careful to keep their source code secret, yet it could be downloaded from the Bible, is almost as funny as this Zelda thing having its own source code in random padding in the game's image.

    If we assum that the universe is infinite we can also probably read a hard disk image of a fully working Windows Vista Ultimate installation along with all greatest hits of several RIAA-owned artists from the background radiation somewhere. We can even do that today, from locally-available data, if we just apply enough transformation steps. Likewise, we can use Moby Dick as an accurate prediction of future (by the time it was written) events, just by fitting the data in there.

    Even if the original Torah did contain all knowledge in some kind of compressed form, it would be indistinguishable from random noise and indeed I think that the exact same amount of knowledge could be found in all similarly-sized works of text.

    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  38. Random memory contents? by duckpoopy · · Score: 1

    Subby has a different definition of random from the rest of the universe.

    --
    word.
    1. Re:Random memory contents? by mollymoo · · Score: 1

      It's quite clear that by "random", they meant "(psuedo-)randomly selected", which is a common and accepted use of "random".

      --
      Chernobyl 'not a wildlife haven' - BBC News
  39. Re:Mod this idiot down by Anonymous Coward · · Score: 0
    There are two peaks - the first one started in 97 and most definitely was in full swing in 1998. I started writing emu related software in 98 (not emulators themselves), and realized that I liked writing code better than teaching, so I quit at the end of the year, and found a job coding. There were a lot of people involved in 98, and the scene was huge. Just not well known.

    Somewhere around 2000-2001 more people learned about emulation, and pretty much ruined everything by showing up in random places and demanding game images, and not caring about the actual systems and history. I gave up on emulation around that time, because of its increased popularity and the ignorant masses. I understand now that everyone knows what an emulator is, because of things like the xbox classic arcade games or the wii classics or whatever, so it's possible that there was a third wave after 2001, which is what you might be talking about.

    Only in recent years have so many people been emulating earlier consoles and arcade games on their home PCs, with pretty faithful representation of the original experience.


    No, maybe not. That pretty much describes 1998-9, only I would have said "very faithful".
  40. Re:The Bible by rice_burners_suck · · Score: 1

    Yeah Jesus, but you forget one thing: There was a book published called The Bible Code, and they demonstrated through experimentation that codes were found in this Torah text that could not be found in any other text of similar size that was tried in the experiment. Bottom line? Put infinite monkeys at infinite keyboards for an infinite amount of time and let them pound away and one will produce the entire works of Shakespeare. Put one monkey at one keyboard for one day and he'll produce that operating system for you, duplicated bug-for-bug.

  41. Re:The Bible by Jesus_666 · · Score: 1

    Actually, I mentioned Moby Dick as a reference to an experiment that showed how you could read predictions about pretty much everything out of any text. Further information behind this link.

    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  42. Probably Not That Unusual by ab · · Score: 1

    I've seen that before in Commodore 64 binaries, particularly something from Electronic Arts... "Worms" (not the one that came later, the automata game), I think, was one I remember, but it's been twenty years, so I could be mistaken.

    Of course, if you look at a copy of it now, that stuff might've been removed to make it load faster. After twenty years, maybe I can deny knowing how that could've happened too.

  43. Re:The Bible by Anonymous Coward · · Score: 0

    IAWTP.

  44. The Ballmer peak by fbonnet · · Score: 1
    1. Re:The Ballmer peak by fbonnet · · Score: 1

      Note to myself: remember to expand all comments before posting.