Digging for treasure in Aladdin’s source code
gamehistory.org
gamehistory.org
There's the hybrid emulation approach (http://gabrielgambetta.com/remakes.html - disclaimer, I wrote that) but I haven't gotten around to doing it for these games.
Also, what are your other two wishes?
Might be interesting to see how GOG got their Dark Sun bundle [0] running. It's backed by DOSBox, but the midi driver seems different, and some of Ravager's frequent bugs have disappeared.
Maybe a partial remake like you suggest in your article?
[0] https://www.gog.com/game/dungeons_dragons_dark_sun_series
A good example is the Steam release of Final Fantasy VII - it actually ships the original binaries from the 90's PC version mostly intact. Code for things like the Direct3D 6 and software renderers, and MIDI sound is still there in the binary, just unused. All the new features like cloud saves, achievements, and original music are implemented using a separate DLL that hooks a lot of stuff in the game, like the graphics and audio subsystems. It's a pretty fascinating thing to reverse engineer.
That must've been an interesting job :)
There are a lot of old games that I'd like to see the code for, at least for curiosity's sake.
TV shows didn't get routinely archived until quite some time after things like "video tape" existed. Now and then early episodes of something important being discovered is news.
Most of the early history of comic strips and comic books has been lost. Original art was thrown away; modern restorers have gone through some heroic efforts to piece together archives from whatever copies of the stuff they can find.
Games? Hell, there's a not-insignificant chance nobody was even using source control until the time when video game budgets started to match feature film budgets. Companies die, and if you're lucky then someone takes home source archives. before all the drives are wiped.
History repeats itself.
[0] http://www.old-games.com/download/5142/civil-war-generals-2 ("Easy setup")
Oh, wow, another fan of that! Great, great game. Huge improvement over the first one, in every way. Still haven't seen anything quite like it. Closest I've played in feel (if not interface or actual play) is Ultimate General: Gettysburg. There's an Ultimate General: Civil War out now that I haven't tried yet but assume includes a ton more content. Not as stat-crunchy and no equipment purchasing though, at least not in Gettysburg. :-(
Mostly it was applying higher-resolution tiles and sprites but some had particle effects added. For instance, some exhaust smoke on the cars in Frogger.
My favorite was Gyruss which is somewhat like Space Invaders of Galaxian but with a 3rd person view from behind the player's ship so you see enemies come toward you in pseudo-3D. We found that the game internally used polar coordinates and had a fair bit of code that converted those 2D and chose the right sized sprites. Replaced all that with 3D models rendered at the same spot in space.
I view these techniques along a continuum where you're essentially changing the porting layer. An emulation puts that layer at the hardware. A hybrid approach pushes it some ways into the game. A source code port is above the binary but some ways into the code. A remake is at the "game design" level.
My favorite being https://tcrf.net/Super_Mario_Bros._3
I love this sorta stuff but I'd never heard a searchable term for it like "video game science" before.
Thanks!
https://en.wikipedia.org/wiki/Disney%27s_Aladdin_(Capcom_vid...
Interesting in its own regard for being one of the early projects of Shinji Mikami, the Capcom designer who masterminded Resident Evil, Devil May Cry, and others.
I wish I had a memory that sharp. When I look at these retro games, I'll sometimes recognize the box art and remember having a fondness for the game, but that's it.
I'm 34 years old for reference.
It took me 2hrs and 37 minutes to beat Sonic 2 on release day. So that’s like... 1992.
Was a little annoyed but it was an incredibly fun ride (and it’s not like I got all the chaos emeralds or anything).
That doesn’t strike me as that sharp of a memory just a factoid that’s stayed around. I couldn’t tell you what I did in school that week for example.
I still remember the music from that scene having this awfully jarring "DURRR-DUNNN" tone siren in it that was rather disturbing. Not... Sonic drowning music disturbing, but close
I played the hell out of my genesis Aladdin cartridge though. Fantastic gameplay.
It's not. They're both really good games.
This is one of those unanswered questions in my computing career. Did anyone else play the PC version and if so, did you also have problems getting the sound to work in the shareware demo? Does anyone have any ideas as to what could have caused this problem? Was it just not tested?
If I never do get an answer, one day when I have time, I hope to set up a test environment, find that old shareware demo and try to reverse that part of the code to see what it is doing.
I've got a machine with an SB16 at home, and you've made me curious to try it. My kid'll be happy to see a new game running on it :-)
I can have Windows 98 expose less memory to the process, and the game launches, but no OPL3 audio then. Apparently there are some XMS-eater programs that would consume all the spare memory, but I haven't experimented with those yet.
That's the easy solution, but I'm tempted to find the error in the code and patch the binary.
So on your machine, what sound card do you have installed? Are you able to select sound blaster 16 in the configuration?
Also, as a side note, I finally got to hear what it is supposed to sound like on archive.org :)
I've got a Creative Labs Sound Blaster 16 card. It's a version with ISA and PnP (no jumpers), but I don't remember the exact model number offhand.
I selected SB16 in the configuration without trouble.
I also did some extra credit work: I diagnosed and fixed the memory error that I described, to get it running on my machine. There's a place in the code where it gets the number of kilobytes of free RAM. It compares it to the required memory, then uses a "jg" (signed comparison, jump if greater) to jump. I changed that instruction to "ja" (unsigned comparison, jump if above), and the game boots correctly now.
Of course, the easier answer was always "download the demo from archive.org and run it in Dosbox", but then you're missing out on part of the fun ;-)
Thank you for the follow up. I have an old Pentium 3 laptop lying around that I have been meaning to try to use to simulate the audio issue. I am not convinced that giving the value of "dma" is what caused the audio glitch.
I wanted to record a video showing the issue so maybe we can try to trace what was causing the audio problem. It could have been maybe an old version of the shareware demo with the bug? Maybe there was something specifically wrong with my machine back in 1995? I do recall that I did have an ISA Sound Blaster 16 card. I am not entirely sure but I may have re-tested the game (and still had the problem) in 1998 when I got a better computer, this time with an AWE64 Value ISA card.
I have to embarrassingly admit that despite me studying CS, I would not know how to trace the game like you did to discover the cause of the memory problem. One day I hope to get to your level of expertise.
I have not been able to set aside some time to see if the audio glitch is reproduced on that Pentium 3 laptop. I am not even sure what kind of sound card is in there but it is the oldest hardware that I have so it will be worth a shot.
I think Nintendo/Sega/etc could rake in a lot of cash if they designed new games for these old systems. I would love to see a new Super Mario World-esque game that operated within the confines of the classic SNES.
I do streaming charity events on occasion and an idea I've had is collaboratively writing an NES game over the course of a weekend, on-camera.
GNU C++ had gremlins for the GBA last time I was writing homebrew for it, so I can't speak to that. I kinda enjoy writing assembly when messing around with this stuff, though, so, eh. For anything else, I love me some (Modern!) C++, but it kind of feels like I should be writing assembly for that stuff, it's more fun to me.
Do me a favor and chew on something for a sec, though: what does your "What?" do except add a hostile and combative edge to the conversation? Maybe don't do that. Thanks.
The NES is a much simpler system. Granted, it's a simpler system that you're programming in a less-convenient language, but I think that which one is "easier" depends on what you're used to.
GBA lets you use C without bank switching. I'd say it is far easier than the older generations.
I dug out a link, but it's just the tip of the iceberg:
https://www.theverge.com/2017/5/9/15584416/new-games-retro-c...
My understanding was that independent game authors were writing games and making cartridges for these games which they then sold.
If I am understanding you correctly, somewhere in this chain is copyright infringement? Are people buying a cartridge, extracting the content, and loading it into new cartridges?
Is the market large enough to support that much effort and expense?
Or are people finding roms, perhaps intended for use with emulators, and loading those onto physical cartridges and selling them without renumeration or permission?
If so, is the market large enough for that to go unnoticed? My understanding was a successful new game might sell a few thousand cartridges and great success was in the 10,000 units sold area.
Being so small a market, and requiring the investment to even make the cartridges, it'd seem easier to spot this (from the IP owner's perspective) and seek preventative legal responses.
Sort of related: I know this requires some specialized equipment to make new cartridges, but do you know if they sell blank cartridges that can just be loaded with games? I am aware that some cartridges had custom chips on them and didn't confirm to any standard, like Zelda cartridges that contained memory and a chip for saving game states.
I am guessing, hopefully, that you know more about this stuff than I do.
I think they're talking about this case (based on the wording "rom hack cartridges"). Someone takes an original game ROM and modifies it in some way (translation, level mods, whatever). Someone else takes the modified code, burns it onto actual hardware, and sells the result.
> Sort of related: I know this requires some specialized equipment to make new cartridges, but do you know if they sell blank cartridges that can just be loaded with games?
The usual method that I know is to remove the ROM chips from a donor cartridge (a working game), and replace them with chips flashed with customized data. The donor cart would need to provide the same custom chips/memory mappers/whatever that the game code expects to be present.
Though, I suppose it becomes more profitable if you're not paying to develop the game or for the rights to distribute the game.
I wonder if there's technically a possibility for, and a market large enough, for generic cartridges - perhaps several kinds that had different standardized hardware in them.
I found references to a few on my own, then found this article that mentions most of the ones that I found: https://www.theverge.com/2017/5/9/15584416/new-games-retro-c...
It says that the NES game Star Versus has sold about 300 copies since its release (in 2014, I think). So, there's an idea of the market, I suppose. I haven't found much in the way of information about its development, so far. There was a forum post that mentioned that it seems to use a new, undocumented memory mapper chip, which implies that the developer produced their own, rather than use the "donor" method that I suggested earlier.
Just for curiosity's sake, an SNES game that was developed in 2013, and is available for purchase (I've no idea if they have the rights to sell it or not) : https://console5.com/store/piko-super-4-in-1-multicart-super...
In most the cases I'm familiar with, the official release is only a patch file. You have to patch the original game with the patch file yourself. Often a third party will patch the file and host it themselves, making only add revenue. In some cases, a fourth party will take the patched file (either creating their own or taking one from the third party), and put it in a cartridge which they then sell of a significant sum of money (compared to the third party who is only getting the add revenue from you using their site).
In general, the people actually making the patch aren't making any money off it because of the increased risk of being shut down by whomever holds the original IP.
>Is the market large enough to support that much effort and expense?
I think the market for custom cartridges is mostly driven by people who buy cartridges and load their own roms onto it for their own use. Only a few do the extra work of trying to load roms and sale them.
Then again, certain games can go for $50 or more on ebay for a used cartridge. If you can fake the cartridge good enough, you might be able to make decent money selling these.
>it'd seem easier to spot this (from the IP owner's perspective) and seek preventative legal responses.
It's probably hard to track down because of the independent nature of those doing it. It's like the $50-$100 dollar craigslist ads for people offering to mod your SNES classic and add a bunch of roms to it (once you have everything set up, it is less than 15 minutes, and $50 tax free dollars is pretty good income for them amount of time).
>but do you know if they sell blank cartridges that can just be loaded with games?
That's my understanding of how most of this works, but that may be wrong. I personally don't do cartridges since my old systems are more finicky than using an emulator.
>I am guessing, hopefully, that you know more about this stuff than I do.
I only deal in the software side and don't do anything to make money. I'll help friends set up emulators on their PC, or help them with a retro-pi/SNES classic mods, but always for free. The extent of my knowledge of the hardware cartridges is based on posts by the rom hack creators disavowing any relationship with the hard copies. Though as another poster pointed out, I have seen a few people attempting to release hardware copies of new games. Mostly I just deal with unofficial English translations of JRPGs.
Primarily, I am interested in seeing another effective 2D Mario with the same charm and style as the SNES games - I do not care so much if it is running on a modern system. :)
Yep, the NES and SNES classic things run an emulator on a little ARM computer. It's possible to replace the games with other games, or to copy the emulator off and get it working on something like a Raspberry Pi.
https://www.youtube.com/channel/UCfVFSjHQ57zyxajhhRc7i0g/vid...
https://www.unseen64.net/2009/08/06/dyno-blaze-genesis-mega-...