Post subject: Is it impossible to TAS old computers, or...
Sonia
She/Her
Joined: 12/6/2013
Posts: 435
Location: Brazil
Sorry if it's on the wrong section, but... There are a few old computers with good games on it. Mainly those: 1) Amiga 2) NEC PC-8801 3) NEC PC-9801 4) Sharp X68000 But I think nobody tried to make TAS emulators out of those yet. Kind of related, I remember reading somewhere that the reason we have no PS3 emulators while we have an Wii one, is because the Nintendo community is larger than Sony's or something, so they have far more devs. (It's even possible to TAS the Wii already. While as for ps3, we don't even have a half functional, regular emulator yet) So, I was wondering... how come we already have TAS emulators for Wii and not for those 4 extremely old computers? Is it because the community we have for them is EVEN smaller than Sony's or because it's simply complicated to TAS those systems so nobody came with a solution yet?
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
In theory it is nothing more than just allowing input to be recorded and providing savestates. Of course, that's not always simple. But as for why not? I share your opinion that it is a simple lack of anyone caring.
Sonia
She/Her
Joined: 12/6/2013
Posts: 435
Location: Brazil
I care. :P Well... if nobody wants to try this out, then I'll have to do it myself. One problem: I don't know how to code, lol. But I'm sure I can learn how to do it if I study. So... I was wondering, what "branch" of programming must I study so I can code emulators/TAS emulators in general? I'm guessing it's C, C++, Assembly, Java... or something similar. I want specifications so I can buy the right books and maybe even apply for the correct courses.
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
Emulators are generally coded in C or C++, but you will need to know assembly. Specifically, the assembly variant used for the system that you are emulating. A challenge with emulators is that there is so many details, especially since all production systems have multiple subparts that need to interact. But the biggest challenge is timing. Some code is incredibly picky with the timing requirements. Add in the fact that there are nearly always multiple concurrently operating subparts and you get exponentially increasing complexity.
Sonia
She/Her
Joined: 12/6/2013
Posts: 435
Location: Brazil
Thanks, gotta keep this in mind. But do I need to do something really hardcore like... applying for a Computer Science college or just a smaller course teaching those three programming languages would be enough? That's because I think a Computer Science college would be kinda... too long. It'd also teach mostly general stuff, and lot of them would potentially be irrelevant to help me coding emulators. But maybe a smaller, shorter course focusing only on what I want would be a better choice. So... should I choose the former or the latter?
GoddessMaria
She/Her
Reviewer, Experienced player (849)
Joined: 5/29/2009
Posts: 514
Location: Hell...
I would say to follow what you truly want to do. Whether you choose Computer Science or something else, you'd still be learning something.
Current projects: failing at life
Player (144)
Joined: 7/16/2009
Posts: 686
From my experience, nothing that they teach you in school will even be the tiniest bit useful for programming emulators. So I'd suggest just teaching yourself. As for the programming language, C# might be a good idea, as you're aiming for a rerecording emulator. This means not speed but accuracy is the highest priority, and high(er)-level languages generally make for more readable code, which in turn makes it easier to debug and maintain (also, less memory management needed). As a bonus, you could easily program it as a core for BizHawk, taking a lot of the (IMO) most tedious work (interfaces) out of your hands. As a bonus bonus, the Amiga's processor (the 68000) is already in BizHawk.
Sonia
She/Her
Joined: 12/6/2013
Posts: 435
Location: Brazil
Thanks Scepheo. I won't guarantee anything, but if I successfully learn all of the necessary stuff, I'd be happy to help developing new cores for BizHawk. I at least have enough free time at my disposal.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Scepheo wrote:
From my experience, nothing that they teach you in school will even be the tiniest bit useful for programming emulators.
Then you haven't been in the proper school.
Tub
Joined: 6/25/2005
Posts: 1377
The problem with the Amiga is a different one. UAE already supports savestates, and some of the runs on the (now inactive) recordedamigagames.org were using some kind of tool assistance. But most amiga games have some kind of copy protection. Usually invalid sectors on the disks that return different data each time they're read. So, game dumps come in two flavors: * .adf images. They just store the data of reading each sector once, and will thus fail to boot copy protected games. Most games distributed by .adf are cracked, i.e. have the copy protection removed. Tasvideos.org does not accept run on modified games. * .ipf images. This stores the results of reading the disk several times, but it's a proprietary, closed source format made by the Software preservation society. As far as I know, it is not deterministic and cannot be used in a rerecording emulator. Not to mention that we couldn't claim that everyone dumped the original disks themselves: the tool to dump disks in this format isn't public. Thus, while it should be possible to add rerecording to UAE, the list of games we could actually TAS would be minimal.
m00
Patashu
He/Him
Joined: 10/2/2005
Posts: 4017
But wouldn't it be acceptable for tasvideos since there is not and never will be a 'non-altered alternative'? I'd like to see an official precedent set on it, either way, so people know whether to spend their time on this or not.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2174
Location: A little to the left of nowhere (Sweden)
Warp wrote:
Scepheo wrote:
From my experience, nothing that they teach you in school will even be the tiniest bit useful for programming emulators.
Then you haven't been in the proper school.
I am not sure how widely offered the required classes are, but before I had the understanding of how things work under the hood, I had to take both a course in state machines, embedded programming and compiler theory, something I doubt is offered today at most universities since they are moving more and more towards C# and .NET environments.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Warepire wrote:
I am not sure how widely offered the required classes are, but before I had the understanding of how things work under the hood, I had to take both a course in state machines, embedded programming and compiler theory, something I doubt is offered today at most universities since they are moving more and more towards C# and .NET environments.
All three of those are standard courses (or part of them) at the university here. (Of course I can't speak for all universities in the world.)
marzojr
He/Him
Experienced player (749)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Warp wrote:
All three of those are standard courses (or part of them) at the university here. (Of course I can't speak for all universities in the world.)
They are standard here in Brazil too; it would take a really piss-poor CS course to not have them (in Brazil, this means a course poor enough that it would not even get certified by the government -- i.e., the diploma you would get from such a course would be worthless).
Marzo Junior