• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
Status
Not open for further replies.

Deleted member 17210

User-requested account closure
Banned
Oct 27, 2017
11,569
I think this is an important topic, and I would hate to see it closed, so please don't post links to illegal rom sites here.

As someone who has always been interested in learning as much as can about video game history, when looking back at what that was like before the emulation scene and afterwards, the difference is staggering. It could be a fun thing to discuss.

Back in 1994, when I was a 19 year old college kid, I sent in a mail order to buy my first proper video game history book, Phoenix: The Fall and Rise of Home Videogames from the address given in Electronic Gaming Monthly. While anxiously waiting for it to arrive, I discovered some more historical gaming books available at the library: Zap! The Rise and Fall of Atari, and the ridiculously titled Game Over: How Nintendo Zapped an American Industry, Captured Your Dollars, and Enslaved Your Children.

Although some of their flaws and limitations are more apparent in retrospect, at the time these were amazing windows into the past and for learning about stuff behind the scenes. Still, they were mostly focused on the industry from a business/general overview perspective, and didn't go into much depth on the games themselves or design evolution. They were also all by American authors and focused pretty much just on the North American market and related parts from Japan. The only access to PAL history for me was from some imported UK magazines sold at Chapters book stores.

These were only a few pieces of a giant puzzle, and the only other ways to fill in the gaps of gaming history were to buy as many old games and gaming magazines as possible. I did what I could in the mid '90s, amassing Atari and Intellivision games from thrift stores and garage sales, but there was only so far random purchasing could go. I had followed video game magazines closely from the late '80s onwards but my early '80s collection was more patchy and it was really hard to find old issues in a pre-ebay world.

Like most people, I didn't have the internet at home in 1994 but, even if I had, this was still a time before the emulation scene really hit its stride. There were some impressive commercial compilations of emulated games appearing such as Activision's Atari 2600 Action Pack on PC/Mac in 1995 and Atari Collection 1 on Playstation in 1996 but these were still limited to a relatively small number of greatest hits.

In 1997, my cousin gave me a bunch of floppy disks to use on my 486 DOS PC. Nesticle was the first emulator I used and it blew my mind having a console like the NES (mostly) accurately cloned on a PC. Pretty soon, I had some free AOL internet trials at home and began exploring emulation for ColecoVision, TurboGrafx, arcade, etc. before getting permanent internet at home.

The emulation scene was an enormous breakthrough for anyone wanting to research video game history. Much like a public library provides you with a wealth of literary history to explore, analyze, and compare - emulation did something similar for video games. Sure, for some people it just meant "free gamez!", like a classic gaming version of Napster. But, for those of us actually interested in researching and wanting gaming history to be presented as objectively as possible, it was and still is an incredible resource.

Tons of historical articles and visual archives on the internet started using emulator screen grabs for their pictures. It's an easy, crisp-looking way of showing the viewer/reader what the games look like, and the easiest way for an author to quickly compare versions of games that came out on several formats. Especially in the pre-Youtube age, these screenshots were excellent for walkthroughs.

In my experience talking to people on the internet in the last 20+ years, anyone that has gone and sifted through stacks of games via emulator has stories to tell about discoveries that they found interesting that they hadn't seen mentioned before.

For example, No told me back in the day that Quartet on the Master System was altered from its Japanese/Korean version. They changed the protagonist Mary's character design from Asian to white. It's not something Western magazines were likely aware of in the '80s but with emulation, it became so easy to come across and compare many regional differences like that. There are lots of instances.

Also regarding Sega, prior to emulation, I (and likely many others) wasn't aware there was a Sega console older than the Master System. It wasn't until coming across SG-1000 roms dated from 1983-1984, that I realized it existed. The SG-1000 console was briefly mentioned in Game Over but at the time I assumed it was the Japanese version of the SMS. If it weren't for emulation and the internet spreading information, notable historical stuff like this might have remained hidden longer.

Discussion on the internet spreads these type of personal discoveries and eventually a lot of more obscure info becomes wider knowledge. I spent a lot of time researching what was the first side-scrolling platform game. I went through hundreds of roms from the '70s and early '80s on various formats. The oldest I found was Jump Bug, an arcade game from 1981. I was talking to a game writer friend about it on a message baord, and he included it in an IGN article on early pioneering games. That article is linked to in the platform game section of Wikipedia. It's possible that people besides me came to the same conclusion about Jump Bug (and there could be an even older game; I don't know) but I imagine they would have used emulation like I did to help narrow it down chronologically. I'm sure there are tons of bits of info like on the internet that are related to using emulation. It's the tool of the emulation scene itself and the collective sharing of information that helps give us a broader and more accurate view of history.

And in the case of obscure games with very little chance of being commercially re-released again, it definitely helps in preservation. As a kid, I owned several cassette games for the Commodore 64 by a very small publisher called Aardvark Software. Even after browsing flea markets and ebay for decades, there are some games I have never seen resurface physically for me to re-buy if I wanted to, and there's no guarantee they would even still function today anyway given the degradation of magnetic media. Yet, every one of those games I had has been converted digitally and exists on the internet to be used via emulation thanks to someone making sure these games don't disappear off the planet.
 

Hayama Akito

Member
Oct 25, 2017
1,326
Emulation is, at least, 70% of my videogame knowledge. As someone from a third world country it was a heavenly blessing, there's no way to knew game consoles like the Turbografx-16 here, so it opened a gate to the japanese underworld that I'm totally into until this day.

And don't get me started talking about Arcade games. MAME saved 80% of arcade gaming from oblivion, and we avoided a cultural loss similar to lost silent films.
 

TubaZef

Member
Oct 28, 2017
3,563
Brazil
I have a similar story to the OP, though I'm younger. I found out about emulation in 1997 when I went to a friend's house and he was playing Sonic & Knuckles on his PC, out of nowhere! I was 12 at the time and I'll admit, to me this was more "free gamez!" than research at the time, but it opened up a window to a lot of games that I would have never known otherwise. Games were not just expensive were I live but a lot of them were also very hard to find (not just because of regional issues but also because some more niche titles didn't get to the rental stores here and buying games was not something I could do often).

Also, thanks to emulation that I've learned about a bunch of systems and was able to play older games from series that I only learned about when their previous entries were not easy to find.
 

Crayon

Member
Oct 26, 2017
15,580
I also read Phoenix back in the day. It's actually a fun read, if anyone's interested. especially if you're a Nintendo fan. Lots of funny stories about Arakawa, Lincoln, Miyamoto, and the crew.
 

higemaru

Member
Nov 30, 2017
4,098
Why History needs Software Piracy - Benj Edwards

Emulation and software piracy is instrumental to the current day success stories of many series (SaGa, Mother, Final Fantasy, Metal Gear, etc.) Fan mods, fan translations, and widespread distribution to territories where video games are either unaffordable or never released has made for a more global hobby that can connect everyone and anyone. It's a net positive for the industry and those that say otherwise care not for the spirit of the hobby, but are purely interested in it as a capitalist footrace.

My sister installed a SNES emulator and MAME on our computer in 2006. It was through these emulators that I discovered so many games; Metal Slug, Earthbound, Chrono Trigger, Star Ocean, King of Fighters, Samurai Shodown, The Simpsons, the list goes on. It's great that Hamster & SNK & Digital Eclipse & M2 are finally porting some of these titles (accurately) to modern systems but the interest for these games would not have existed in the first place had emulation not granted a second life to so, so many franchises and games.
 

night814

One Winged Slayer
Member
Oct 29, 2017
15,035
Pennsylvania
I'll never forget playing some Atari games on my sister's computer in 96-97, we always had an Atari(2600 and 7800) but by the time I was trying to play them they worked but not well or consistently. Playing the Star wars games and Missle Command on PC left a major impression on me, that by the time I had my own PC just a few years later one of the first things I did was look into emulation.
 

TubaZef

Member
Oct 28, 2017
3,563
Brazil
Why History needs Software Piracy - Benj Edwards

Emulation and software piracy is instrumental to the current day success stories of many series (SaGa, Mother, Final Fantasy, Metal Gear, etc.) Fan mods, fan translations, and widespread distribution to territories where video games are either unaffordable or never released has made for a more global hobby that can connect everyone and anyone. It's a net positive for the industry and those that say otherwise care not for the spirit of the hobby, but are purely interested in it as a capitalist footrace.

I think one aspect of it that people seem to forget is how many current indie devs were influenced by games that they were only able to play through emulators, one good example are all the indie rpgs inspired by Earthbound, which was a niche title with very little reach at the time. I can guarantee that most people making those haven't played the game on a SNES.
 

Barrel Cannon

The Fallen
Oct 25, 2017
9,290
I was expecting a different type of thread from the title. Emulation in the 90's is great and all in terms of what it opened many people's minds to(in terms of what's possible), but I'd argue that we are seeing even more revolutionary stuff in the last 4-5 years(in terms of accuracy)
 
OP
OP

Deleted member 17210

User-requested account closure
Banned
Oct 27, 2017
11,569
I was expecting a different type of thread from the title. Emulation in the 90's is great and all in terms of what it opened many people's minds to(in terms of what's possible), but I'd argue that we are seeing even more revolutionary stuff in the last 4-5 years(in terms of accuracy)
I'm curious what you thought the thread was going to be like.
 

tiesto

Member
Oct 27, 2017
2,865
Long Island, NY
I also read Phoenix back in the day. It's actually a fun read, if anyone's interested. especially if you're a Nintendo fan. Lots of funny stories about Arakawa, Lincoln, Miyamoto, and the crew.

Phoenix IV came out last year and it's up to the Switch. I got to meet Leonard Herman, the author, at LI Retro Expo this year and got him to sign my book. Definitely worth checking out, he even has coverage of obscure Japan only systems like the Loopy and Marty.
 

ColorMeImpressed

Alt account
Banned
Jul 24, 2019
106
Agreed and this is why emulation and archival is vital to preserving game history. I know we maybe have bigger problems in the world but I really wish copyright reform was a topic that got more attention.
 

higemaru

Member
Nov 30, 2017
4,098
I think one aspect of it that people seem to forget is how many current indie devs were influenced by games that they were only able to play through emulators, one good example are all the indie rpgs inspired by Earthbound, which was a niche title with very little reach at the time. I can guarantee that most people making those haven't played the game on a SNES.
Yup, Tobyfox actually started out making Earthbound ROM hacks for those unaware.
 
Oct 27, 2017
4,531
I still remember discovering Terranigma and then getting to use the first Seiken Densestsu 3 translation patch back in the late 90s. Those were some amazing times discovering these "lost gems."
 

andymcc

Member
Oct 25, 2017
26,271
Columbus, OH
it was very eye-opening.

slightly off-topic but i got super into anime in 96 with the purchase of our first PC w/ internet and around that time I started dabbling in emulation for all of the insane licensed games for Famicom/PC-Engine/Super Famicom/Mega Drive. I'd basically sample them on emulator and buy retro games with that. i finally got to play all of the (pretty lousy) Dragon Ball fighting games I read about in EGM's import spotlights as a kid!

the internet really introduced me to import gaming too. What was once just the unattainable ads of the back of Diehard Gamefan were now online stores I could buy directly from. Probably why I have so much nostalgia for the PSOne/Saturn as those were the systems I really started importing for.
 
OP
OP

Deleted member 17210

User-requested account closure
Banned
Oct 27, 2017
11,569
i finally got to play all of the (pretty lousy) Dragon Ball fighting games I read about in EGM's import spotlights as a kid!
I had Dragonball Z2 and 3 for SFC in the 16-bit era. I thought they were pretty cool although I imagine if you were expecting Street Fighter quality, they would be a let down.
 

ItsTheShoes

Attempting to circumvent ban with an alt
Banned
Oct 27, 2017
334
I remember hearing about emulation when I was back in middle school (2000) and blown away that I could play any obscure title on snes and genesis for free, and then my mind was blown AGAIN when I could pirate GBA games day and date with a decent no$ emulator. Piracy helps classic game literacy, and I imagine piracy also keeps game history alive.
 

Crayon

Member
Oct 26, 2017
15,580
The first game I ever saw angulated was Metroid on nesticle. You had to play on a keyboard, and we still used the arrow keys so you played goofy foot.
 

Kunka Kid

Member
Oct 27, 2017
3,020
I remember my friend told me his cousin was playing Pokemon Red on the computer and I thought he was lying.
 

night814

One Winged Slayer
Member
Oct 29, 2017
15,035
Pennsylvania
I remember hearing about emulation when I was back in middle school (2000) and blown away that I could play any obscure title on snes and genesis for free, and then my mind was blown AGAIN when I could pirate GBA games day and date with a decent no$ emulator. Piracy helps classic game literacy, and I imagine piracy also keeps game history alive.
This was pretty much exactly my high school experience, go home and see what new came out on GBA and playing nonstop Yu-Gi-Oh games lol
 

DrHercouet

Member
May 25, 2018
1,685
France
It was eye-opening, most definitely. I remember being 11 in 1999 and going to a friend's house who had ZSNES installed on his family computer. That was the moment when I realized that Final Fantasy VII wasn't the full title of the game : the VII stood for the 7th entry in the series. I've had an entire afternoon of fun playing FF5, and I remember leaving very very frustrated when my friend showed me, just before I had to head home, a little game called Chrono Trigger...

But enough with the sweet memories. Yeah, emulation is like a very illegal museum and I'm still having lots of fun digging for hidden gems that no one has ever told me about. It also helps to find out how far we've been and how GOLD this video games era is.
 
OP
OP

Deleted member 17210

User-requested account closure
Banned
Oct 27, 2017
11,569
Another moment that stood out for me in the early emulation days was looking for Coleco Gemini emulator. As a kid I played games like Mouse Trap and Venture on a neighbour's system. It was kind of obscure and I didn't come across another one. I didn't realize the Gemini was an Atari 2600 clone all those years so it was a WTF? moment learning that. I just thought it had some of the same games.
 

TrashHeap64

Member
Dec 7, 2017
1,675
Austin, TX
I remember playing fan translated (poorly) versions of Pokemon green and thinking I was the coolest kid around (it had swearing too!)

Also a little off topic I remember beating Metroid on my pocket PC around 04-05 which was a chore, but it blew me away that such a small device could emulate NES games (even tho it ran like trash)
 

Deleted member 12790

User requested account closure
Banned
Oct 27, 2017
24,537
I got into emulation in very early 1997, it was very early in the emulation scene. I had been on the internet for several years and remember how I found it: for some reason, I was into looking up java versions of nintendo games, as I didn't have an NES or SNES at the time, but had just gotten my N64 and was interested in exploring Nintendo's library. I had found some Zelda java applets that played similarly to Link to the Past, so I started looking (I think it was excite as my search engine lol) for Super Mario Bros java applets, and found some random dude's homepage where he had a link to some command line SNES emulator and mario allstars. I didn't understand what was being described to me so I downloaded it mainly as a curiosity and figured out how to load the rom and it blew my mind. I remember checking many times to make sure it was the REAL snes game running on my PC, not a remake or something. I went back to the guy's homepage and he had Mario World there too. Downloaded and ran it and couldn't believe it, my PC was an SNES instantly. That drew me into the Nintendo catelogue heavily, and by the end of the year, I had picked up both an NES and SNES from funcoland and was buying games on the cheap. I actually made a disk for Mario World and still have it to this day:

EDKtXLSXUAED2VY


Emulation means way more to me than just playing games, however. Emulation, to me, was transformative in my abilities as a computer programmer. Also in 1997, I entered what eventually became the Sonic hacking Demoscene. Back in those early days, most of the scene was concentrated on people scanning and sharing pictures of lost and removed content from the games, to catalogue the changes in the sonic series. However, one genecyst dropped, everything changed. What spurred the transformation from an info gathering club, to demoscene was the realization that genecyst save states were actually ram dumps in text files. By loading them into hex editors, you could edit ram states in the game. While you could do this prior with a pro action replay, that was limited to just a few offsets. Through save state editing, you could make enormous changes to the state of the game. For those who have never looked into how all this works and don't know how that might be useful, a save state is a giant block of memory. You can, for example, examine byte offsets in the state, pack them into more conventional variables into custom data structures, then interpreting them through something like SDL or OpenGL. Thats how you build tools like this:

2509_wqQuRhE.png


As to how one finds offsets for relevant information themselves, it's (generally) a process using emulators. For example, what you can do is take a saved state of an emulated game in one instance, do some action which would de-increment the value you want to isolate, then take another saved state, and compare the two files to see what offsets have changed.

An easy to understand example, say you want to figure out where in memory the game stores your lives in a game. You could do that by creating a saved state, then dying, then creating another, and looking for values that decreased by one. You'll undoubtedly get many such offsets that had their values decreased by one, so you just have to pick around at the results until your figure it out. Once you figure that out, you can start looking around for things that call to that memory location. Say you want to change it so that, like, an extra life box gives you 3 lives instead of 1. You can find things that modify that memory location that stores the lives, and change it there. It's obviously a lot of trial and error doing this, mind you.

Once you get a handle on where the game stores and pulls data from, you can then go about checking those areas and seeing if there are unused things. Like lost badnik art in Sonic games get stored in groups, so finding art for a never before seen badnik, for example, means going through a block of ROM and basically testing it out piece by piece to see if there's anything unused. That's obviously an extremely simple example, and it gets way more difficult when you talk about things like compressed files (like nearly all Sonic art is) and things that don't necessarily live in ROM (like dynamically created objects), but that's the super basic gist.

This is for example how Wood Zone was found way before the Simon Wai Sonic 2 beta popped up. We were save state hacking with KGen or some emulator from back then on the final Sonic 2 built ROM. All art assets and level layout (collision, etc) data related to Wood Zone no longer existed in the game, as they'd stripped that data out for ROM sizing reasons. But by watching RAM states taken at the end of one level, and then again at the beginning of another level, lead to understanding where the game stores palettes, which wound up being a large block of memory. By offsetting into this block of memory by the size of a single zone's palette, you could break that block of memory up into zones, like an array. Emerald Hill Zone might have been block [1], Chemical Plant Zone might have been block [2], etc. But it became apparent that the block was larger than the number of zones actually present in the game. By contrasting the palette information with what you could actually see in game, a mapping of which blocks went to which zones was created, and there were the existence of palettes in the game not used. One belonged to Hidden Palace Zone, which was easy to recognize thanks to screenshots. By changing which palette was loaded into levels, you could actually test out other zone's palette. And that's how this was found:

2510_hqdefault.jpg


This palette didn't match anything in the game or any known pre-release screenshots. We called it the "Lost" zone for a while until the Simon Wai Sonic 2 Beta was found and we realized it belonged to Wood Zone, a zone nobody had ever heard of before.

Anywho, it's all emulation that kicked this off. From save state editing, it evolved into what the scene is today. Emulation taught me binary and hexadecimal, it taught me how to talk to hardware programmatically through buffers. I use things I learned directly from an emulator named after a pair of testicles every day, to this day. Emulation has been an incredibly important tool in my life.
 
Last edited:

Deleted member 12790

User requested account closure
Banned
Oct 27, 2017
24,537
Another example of how emulation is playing a huge role in my life right now. So, spoiler alert: I've been writing a dreamcast book for years now and I'm aiming for a release in 2 weeks on 9/9. One of the last chapters I wrote dealt with the VMU. Throughtout the entire book I was trying to decide whether or not to actually cover external VMU applications. Talking to the VMU while it's in the dreamcast controller is easy, it can be done through C programming in your already programmed-in-C game. But the VMU could also have stand alone external applications that would let the VMU act like a portable console.

The problem is that apparently you had to write in assembly to work with it. There was never a C to Potato (the actual name of the CPU inside) compiler created. The VMU has an 8-bit LC86k variant CPU inside. That's a pretty esoteric CPU so most people aren't going to be familiar with its assembly language, and it's not an intuitive CPU either. It's very strange, it doesn't have contiguous memory and it works by expecting you to know that some registers are hard wired to certain memory banks different from others. It's very obtuse, and I'm certain thats why nearly no games outside of Sonic Team's Sonic games had stand alone applications.

I have managed to write a few ASM VMU applications over the years and it's extremely annoying to work with. My book guides beginners through more advanced game related topics, but we hardly ever dip our toes into assembly outside of a very few single-line commands I show how to use for optimization in the video section of the book. This would require walking someone through building an entire application from scratch in assembly.

So I was leaning towards just omitting that part of the book, until I came across a small project by a developer: http://dmitry.gr/index.php?r=05.Projects&proj=25. VMU Hacking

This is an ARM Cortex-M23 emulator for the Sega VMU. It's tiny and performant and can run on the LC86k, built specifically for the VMU. The idea is that with this emulator, you don't have to write LC86k applications anymore, you can now write ARM Cortex-M23 applications and run them on the emulator. The ARM Cortex-M23 is a far more modern, far more used processor, and the best part is that there exists a C to ARM Cortex M23 toolchain that produces performant bytecode. After hitting up the author of the project and describing my book, he has helped me write a chapter that walks people through building a small game for the VMU, pretty much completing my book. An example application of his:



This is actually written in C. Thanks to emulation, you can now write VMU applications in C, instead of crazy obscure assembler. The guy is willing to license his emulator for commercial applications and allows a free license for homebrew applications. The hope is that dreamcast homebrew and commercial releases going forward will start including more VMU support.
 
Nov 23, 2017
4,302
I have a similar story to the OP, though I'm younger. I found out about emulation in 1997 when I went to a friend's house and he was playing Sonic & Knuckles on his PC, out of nowhere! I was 12 at the time and I'll admit, to me this was more "free gamez!" than research at the time, but it opened up a window to a lot of games that I would have never known otherwise. Games were not just expensive were I live but a lot of them were also very hard to find (not just because of regional issues but also because some more niche titles didn't get to the rental stores here and buying games was not something I could do often).

Also, thanks to emulation that I've learned about a bunch of systems and was able to play older games from series that I only learned about when their previous entries were not easy to find.
The funny thing is they released a full pc port of that game too
I got into emulation in very early 1997, it was very early in the emulation scene. I had been on the internet for several years and remember how I found it: for some reason, I was into looking up java versions of nintendo games, as I didn't have an NES or SNES at the time, but had just gotten my N64 and was interested in exploring Nintendo's library. I had found some Zelda java applets that played similarly to Link to the Past, so I started looking (I think it was excite as my search engine lol) for Super Mario Bros java applets, and found some random dude's homepage where he had a link to some command line SNES emulator and mario allstars. I didn't understand what was being described to me so I downloaded it mainly as a curiosity and figured out how to load the rom and it blew my mind. I remember checking many times to make sure it was the REAL snes game running on my PC, not a remake or something. I went back to the guy's homepage and he had Mario World there too. Downloaded and ran it and couldn't believe it, my PC was an SNES instantly. That drew me into the Nintendo catelogue heavily, and by the end of the year, I had picked up both an NES and SNES from funcoland and was buying games on the cheap. I actually made a disk for Mario World and still have it to this day:

EDKtXLSXUAED2VY


Emulation means way more to me than just playing games, however. Emulation, to me, was transformative in my abilities as a computer programmer. Also in 1997, I entered what eventually became the Sonic hacking Demoscene. Back in those early days, most of the scene was concentrated on people scanning and sharing pictures of lost and removed content from the games, to catalogue the changes in the sonic series. However, one genecyst dropped, everything changed. What spurred the transformation from an info gathering club, to demoscene was the realization that genecyst save states were actually ram dumps in text files. By loading them into hex editors, you could edit ram states in the game. While you could do this prior with a pro action replay, that was limited to just a few offsets. Through save state editing, you could make enormous changes to the state of the game. For those who have never looked into how all this works and don't know how that might be useful, a save state is a giant block of memory. You can, for example, examine byte offsets in the state, pack them into more conventional variables into custom data structures, then interpreting them through something like SDL or OpenGL. Thats how you build tools like this:

2509_wqQuRhE.png


As to how one finds offsets for relevant information themselves, it's (generally) a process using emulators. For example, what you can do is take a saved state of an emulated game in one instance, do some action which would de-increment the value you want to isolate, then take another saved state, and compare the two files to see what offsets have changed.

An easy to understand example, say you want to figure out where in memory the game stores your lives in a game. You could do that by creating a saved state, then dying, then creating another, and looking for values that decreased by one. You'll undoubtedly get many such offsets that had their values decreased by one, so you just have to pick around at the results until your figure it out. Once you figure that out, you can start looking around for things that call to that memory location. Say you want to change it so that, like, an extra life box gives you 3 lives instead of 1. You can find things that modify that memory location that stores the lives, and change it there. It's obviously a lot of trial and error doing this, mind you.

Once you get a handle on where the game stores and pulls data from, you can then go about checking those areas and seeing if there are unused things. Like lost badnik art in Sonic games get stored in groups, so finding art for a never before seen badnik, for example, means going through a block of ROM and basically testing it out piece by piece to see if there's anything unused. That's obviously an extremely simple example, and it gets way more difficult when you talk about things like compressed files (like nearly all Sonic art is) and things that don't necessarily live in ROM (like dynamically created objects), but that's the super basic gist.

This is for example how Wood Zone was found way before the Simon Wai Sonic 2 beta popped up. We were save state hacking with KGen or some emulator from back then on the final Sonic 2 built ROM. All art assets and level layout (collision, etc) data related to Wood Zone no longer existed in the game, as they'd stripped that data out for ROM sizing reasons. But by watching RAM states taken at the end of one level, and then again at the beginning of another level, lead to understanding where the game stores palettes, which wound up being a large block of memory. By offsetting into this block of memory by the size of a single zone's palette, you could break that block of memory up into zones, like an array. Emerald Hill Zone might have been block [1], Chemical Plant Zone might have been block [2], etc. But it became apparent that the block was larger than the number of zones actually present in the game. By contrasting the palette information with what you could actually see in game, a mapping of which blocks went to which zones was created, and there were the existence of palettes in the game not used. One belonged to Hidden Palace Zone, which was easy to recognize thanks to screenshots. By changing which palette was loaded into levels, you could actually test out other zone's palette. And that's how this was found:

2510_hqdefault.jpg


This palette didn't match anything in the game or any known pre-release screenshots. We called it the "Lost" zone for a while until the Simon Wai Sonic 2 Beta was found and we realized it belonged to Wood Zone, a zone nobody had ever heard of before.

Anywho, it's all emulation that kicked this off. From save state editing, it evolved into what the scene is today. Emulation taught me binary and hexadecimal, it taught me how to talk to hardware programmatically through buffers. I use things I learned directly from an emulator named after a pair of testicles every day, to this day. Emulation has been an incredibly important tool in my life.
Ive read literally dozens of great posts from you about this topic or Sega stuff in general and I always wanted to but never asked; do you work as a graphics engine programmer as a career?
 

skeezx

Member
Oct 27, 2017
20,126
i remember downloading roms of Final Fantasy 2j and 3j circa 1995. had to get my mom (who worked IT) to figure out how to install it, it took her like 2 hrs and when she did it ran like complete shit, and fanslation patches weren't a thing then. but man was it mindblowing, felt like i'd uncovered the lost ark or something
 

Deleted member 12790

User requested account closure
Banned
Oct 27, 2017
24,537
Ive read literally dozens of great posts from you about this topic or Sega stuff in general and I always wanted to but never asked; do you work as a graphics engine programmer as a career?

That's my concentration and expertise, yes. Although I do all sorts of programming -- systems (memory pool, entity-component, etc.), framework, logic, tooling, etc. But graphics, especially low level graphics programming, has been my primary passion since about 1997.
 
OP
OP

Deleted member 17210

User-requested account closure
Banned
Oct 27, 2017
11,569
I got into emulation in very early 1997, it was very early in the emulation scene. I had been on the internet for several years and remember how I found it: for some reason, I was into looking up java versions of nintendo games, as I didn't have an NES or SNES at the time, but had just gotten my N64 and was interested in exploring Nintendo's library. I had found some Zelda java applets that played similarly to Link to the Past, so I started looking (I think it was excite as my search engine lol) for Super Mario Bros java applets, and found some random dude's homepage where he had a link to some command line SNES emulator and mario allstars. I didn't understand what was being described to me so I downloaded it mainly as a curiosity and figured out how to load the rom and it blew my mind. I remember checking many times to make sure it was the REAL snes game running on my PC, not a remake or something. I went back to the guy's homepage and he had Mario World there too. Downloaded and ran it and couldn't believe it, my PC was an SNES instantly. That drew me into the Nintendo catelogue heavily, and by the end of the year, I had picked up both an NES and SNES from funcoland and was buying games on the cheap. I actually made a disk for Mario World and still have it to this day:

EDKtXLSXUAED2VY


Emulation means way more to me than just playing games, however. Emulation, to me, was transformative in my abilities as a computer programmer. Also in 1997, I entered what eventually became the Sonic hacking Demoscene. Back in those early days, most of the scene was concentrated on people scanning and sharing pictures of lost and removed content from the games, to catalogue the changes in the sonic series. However, one genecyst dropped, everything changed. What spurred the transformation from an info gathering club, to demoscene was the realization that genecyst save states were actually ram dumps in text files. By loading them into hex editors, you could edit ram states in the game. While you could do this prior with a pro action replay, that was limited to just a few offsets. Through save state editing, you could make enormous changes to the state of the game. For those who have never looked into how all this works and don't know how that might be useful, a save state is a giant block of memory. You can, for example, examine byte offsets in the state, pack them into more conventional variables into custom data structures, then interpreting them through something like SDL or OpenGL. Thats how you build tools like this:

2509_wqQuRhE.png


As to how one finds offsets for relevant information themselves, it's (generally) a process using emulators. For example, what you can do is take a saved state of an emulated game in one instance, do some action which would de-increment the value you want to isolate, then take another saved state, and compare the two files to see what offsets have changed.

An easy to understand example, say you want to figure out where in memory the game stores your lives in a game. You could do that by creating a saved state, then dying, then creating another, and looking for values that decreased by one. You'll undoubtedly get many such offsets that had their values decreased by one, so you just have to pick around at the results until your figure it out. Once you figure that out, you can start looking around for things that call to that memory location. Say you want to change it so that, like, an extra life box gives you 3 lives instead of 1. You can find things that modify that memory location that stores the lives, and change it there. It's obviously a lot of trial and error doing this, mind you.

Once you get a handle on where the game stores and pulls data from, you can then go about checking those areas and seeing if there are unused things. Like lost badnik art in Sonic games get stored in groups, so finding art for a never before seen badnik, for example, means going through a block of ROM and basically testing it out piece by piece to see if there's anything unused. That's obviously an extremely simple example, and it gets way more difficult when you talk about things like compressed files (like nearly all Sonic art is) and things that don't necessarily live in ROM (like dynamically created objects), but that's the super basic gist.

This is for example how Wood Zone was found way before the Simon Wai Sonic 2 beta popped up. We were save state hacking with KGen or some emulator from back then on the final Sonic 2 built ROM. All art assets and level layout (collision, etc) data related to Wood Zone no longer existed in the game, as they'd stripped that data out for ROM sizing reasons. But by watching RAM states taken at the end of one level, and then again at the beginning of another level, lead to understanding where the game stores palettes, which wound up being a large block of memory. By offsetting into this block of memory by the size of a single zone's palette, you could break that block of memory up into zones, like an array. Emerald Hill Zone might have been block [1], Chemical Plant Zone might have been block [2], etc. But it became apparent that the block was larger than the number of zones actually present in the game. By contrasting the palette information with what you could actually see in game, a mapping of which blocks went to which zones was created, and there were the existence of palettes in the game not used. One belonged to Hidden Palace Zone, which was easy to recognize thanks to screenshots. By changing which palette was loaded into levels, you could actually test out other zone's palette. And that's how this was found:

2510_hqdefault.jpg


This palette didn't match anything in the game or any known pre-release screenshots. We called it the "Lost" zone for a while until the Simon Wai Sonic 2 Beta was found and we realized it belonged to Wood Zone, a zone nobody had ever heard of before.

Anywho, it's all emulation that kicked this off. From save state editing, it evolved into what the scene is today. Emulation taught me binary and hexadecimal, it taught me how to talk to hardware programmatically through ion buffers. I use things I learned directly from an emulator named after a pair of testicles every day, to this day. Emulation has been an incredibly important tool in my life.
This is awesome. I love the Mario disk. :) And yeah, emulation has had so many benefits for programmers and designers. It's not an area for people like me with no technical skill but I appreciate what it has done for gaming in that regard, too. It can tie into gaming history a lot with people discovering hidden things in game code.
 

Deleted member 12790

User requested account closure
Banned
Oct 27, 2017
24,537
I'd love to buy the book when its out.

I'm putting out a physical copy with Fabien Sanglard's help, the author of the Doom Black Book, but don't intend to turn profit. The price is being set at the cost of physical materials through a JIT book making company. But more importantly, the book will be released entirely for free online in both a website form and a downloadable, offline copy form. It walks you through building a dreamcast game development framework and engine, and a small game within that engine. All code inside is CC0 FOSS (save the VMU arm cortex-m23 application, which uses some licensed code, used with permission in the book).
 

Ladioss

Banned
Oct 29, 2017
847
Importing Japanese games was a pretty big thing in my country back in the 1990s, but they were pretty pricy with big releases reaching 140+ EUR (converted + ajusted for inflation). It was ridiculous, and emulation has been a real boon for middle-class kids of that time wanting to experience the whole gamut of the SFC or MD game library. But the real game changer was Neo-Geo and arcade emulation (never understood how Mame works, but I remember a winkawaks soft...), and PC-Engine / Duo emulation (Dracula X was the first iso I ever downloaded (I have bought the rerelease on both the PSP and the PS4 since then ;) )).

Suddenly, gaming was a post-scarcity economy and for the first time ever we had more games to play that what time allowed for.

anyone remember node 99 or damaged cybernetics or f5ing zophar's domain?

ZD still exists I think...
Demon something UK ?
 
Last edited:

lazygecko

Member
Oct 25, 2017
3,628
Blew my mind finding out that the most seminal NES and Genesis emulators in the 90's were developed by the same team that released those super cringey juvenile gore/torture porn DOS games.
 

B-Dubs

That's some catch, that catch-22
General Manager
Oct 25, 2017
32,721
This topic is very difficult to hold without breaking our site rules regarding advocating/admitting to/justifying piracy, as is evident by many posts so far. For that reason we have decided to lock the thread.
 
Status
Not open for further replies.