Page 1 of 2 12 LastLast
Results 1 to 15 of 18

Thread: I was just wondering, what would it take to make an emulator that plays any rom/iso?

  1. #1
    Join Date
    Mar 2004
    Location
    Wisconsin, USA
    Posts
    595
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default I was just wondering, what would it take to make an emulator that plays any rom/iso?

    Now I know what it takes to build, lets say, a NES emulator, but what about an all in one rom player? This would maybe include Atari, NES, SNES, Genisis, GB, GBC, GBA, ETC., ETC.

    I am very good at programming, and I learned about Emulators and how they work by taking the source files and studying them until my head bursts...

    I was thinking, why not take all the files, already written in code, and puytting it together? What exactly would that take? I know it may take a year or two, but I love a big challenge.

    Feedback please?

  2. #2
    Join Date
    Mar 2004
    Location
    Wisconsin, USA
    Posts
    595
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Oh, and I have Visual Studio NET 2002, so I'm pretty much up to date. And I don't mean 5 different programs, I mean one big program...

    Maybe not for iso's but for just roms...

  3. #3
    Join Date
    Nov 2003
    Location
    USA
    Posts
    4,104
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I just wanna ask why you would want to do that? Wouldn't the emulator be bigger and more of a pain if all those systems were built in rather than just letting you choose the emulators you want.

    That said I believe there is one emulator that was supposed to be able to play a TON of different old things, so maybe you'd wanna contact the people working on that.

  4. #4
    Join Date
    Dec 2001
    Location
    Wirral, UK
    Posts
    4,226
    Thanks
    0
    Thanked 1 Time in 1 Post
    EP Points
    5

    Default

    It's possible, you could just of course use a frontend for the existing emulators, which seems more or less what you are wanting to do.

    Course you can just lump all the emulators together than have some function which calls the relevant emulator from the GUI.

    A similar thing to what you propose would be MESS: http://www.mess.org/sysinfo.html

    But of course a different take on it ie one that runs optimized code, rather than LLEd stuff.

    To be honest, if you wanted to do this, then you'd need permission (and sourcecode) from all the authors concerned.

  5. #5
    Join Date
    Mar 2003
    Location
    Western KY
    Posts
    7,550
    Thanks
    8
    Thanked 18 Times in 6 Posts
    EP Points
    40

    Default

    If I am understanding right you are wanting to make an all in one emu for every system. You would first have to create a different emulator for each system that you want to emulate. Then you just make a common GUI frontend type thing. You would basicly in the first GUI choose what system. Then that would bring you to the emulator for the system that you want to run which would then have different options and stuff. It would take more then a couple of years. Most emulator authors have been working for several years and that is just on ONE system.

  6. #6
    Join Date
    Nov 2003
    Location
    USA
    Posts
    4,104
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I'm assuming he'd use existing emulators...it's the only way that makes sense. Otherwise it'd be one hell of a project.

  7. #7
    Ace Guest

    Default

    You would need to work how each and every console / handheld works, how they would process the data, how they encrypt / decrypt stuff (If they do). Basically you would need to know almost everything there is to know about the systems.

  8. #8
    Join Date
    Mar 2004
    Location
    Wisconsin, USA
    Posts
    595
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Yeah, I'd just take the other emulators, look at the code, and then put it into my own program.

  9. #9
    az_bont Guest

    Default

    Ever heard of MESS? It currently emulates the following systems:

    * Adventurevision
    * Amstrad 464plus
    * Amstrad 6128plus
    * Amstrad PC1512 (version 1)
    * Amstrad PC1512 (version 2)
    * Amstrad PC1640 / PC6400 (US)
    * Amstrad PC20
    * Amstrad/Schneider CPC464
    * Amstrad/Schneider CPC6128
    * Amstrad/Schneider CPC664
    * APEXC (as described in 1957)
    * APF Imagination Machine
    * APF M-1000
    * Apple ][
    * Apple ][+
    * Apple //c
    * Apple //c Plus
    * Apple //c (UniDisk 3.5)
    * Apple //e
    * Apple //e (enhanced)
    * Apple //e (Platinum)
    * Apple I
    * Aquarius
    * Arcadia 2001
    * Atari 2600
    * Atari 400 (NTSC)
    * Atari 400 (PAL)
    * Atari 5200
    * Atari 7800 NTSC
    * Atari 7800 PAL
    * Atari 800 (NTSC)
    * Atari 800 (PAL)
    * Atari 800XL
    * Atom
    * Atom with Eprom Box
    * Bally Pro Arcade/Astrocade
    * Bally Pro Arcade/Astrocade (white case
    * BBC Micro Model A
    * BBC Micro Model B
    * BBC Micro Model B+ 128k
    * BBC Micro Model B+ 64K
    * BBC Micro Model B with WD1770 disc controller
    * C64GS (PAL)
    * C65 / C64DX (Prototype, German PAL, 910429)
    * C65 / C64DX (Prototype, NTSC, 910111)
    * C65 / C64DX (Prototype, NTSC, 910523)
    * C65 / C64DX (Prototype, NTSC, 910626)
    * C65 / C64DX (Prototype, NTSC, 910828)
    * C65 / C64DX (Prototype, NTSC, 911001)
    * CBM4064/PET64/Educator64 (NTSC)
    * Channel F
    * Chess Champion MK II
    * Colecovision
    * Colecovision (Thick Characters)
    * Color Computer
    * Color Computer 2
    * Color Computer 2B
    * Color Computer 3 (NTSC)
    * Color Computer 3 (NTSC; HD6309)
    * Color Computer 3 (PAL)
    * Color Computer (Extended BASIC 1.0)
    * Colour Genie EG2000
    * Commodore 128 French (PAL)
    * Commodore 128 German (PAL)
    * Commodore 128 Italian (PAL)
    * Commodore 128 NTSC
    * Commodore 128 Swedish (PAL)
    * Commodore 16/116/232/264 (PAL)
    * Commodore 16/116/232/264 (PAL), 1551
    * Commodore 16 Novotrade (PAL, Hungarian Character Set)
    * Commodore 30xx (Basic 2)
    * Commodore 30xx (Basic 2) (business keyboard)
    * Commodore 364 (Prototype)
    * Commodore 40xx FAT (CRTC) 50Hz
    * Commodore 40xx FAT (CRTC) 60Hz
    * Commodore 40xx THIN (business keyboard)
    * Commodore +4 (NTSC)
    * Commodore +4 (NTSC), 1551
    * Commodore 64 (NTSC)
    * Commodore 64 Swedish (PAL)
    * Commodore 64/VC64/VIC64 (PAL)
    * Commodore 80xx 50Hz
    * Commodore 80xx 60Hz
    * Commodore 80xx German (50Hz)
    * Commodore 80xx Swedish (50Hz)
    * Commodore B128-40/Pet-II/P500 60Hz
    * Commodore B128-80HP/710
    * Commodore B128-80LP/610 60Hz
    * Commodore B256-80HP/720
    * Commodore B256-80HP/720 Swedish/Finnish
    * Commodore B256-80LP/620 50Hz
    * Commodore B256-80LP/620 Hungarian 50Hz
    * Commodore Max (Ultimax/VC10)
    * Commodore SP9000/MMF9000 (50Hz)
    * CP400
    * CPS Changer (Street Fighter ZERO)
    * Dragon 32
    * Dragon 64
    * Enterprise 128
    * Enterprise 128 (EXOS 2.1)
    * EURO PC
    * Famicom
    * Galaksija
    * Gamboy - (PAL) Japanese SMS BIOS v2.1
    * GameBoy
    * GameBoy Color
    * GameBoy Pocket
    * Game Gear - European/American
    * Game Gear - European/American Majesco Game Gear BIOS
    * Game Gear - Japanese
    * Game Gear - Japanese Majesco Game Gear BIOS
    * Geneve 9640
    * HB-8000 Hotbit 1.1
    * HB-8000 Hotbit 1.2
    * IBM PC 08/16/82
    * IBM PC 10/27/82
    * IBM PC/XT (CGA)
    * Intellivision
    * Intellivision Keyboard Component (Unreleased)
    * Intellivision (Sears)
    * Inves Spectrum 48K+
    * Jupiter Ace
    * Kaypro 2x
    * KC 85/3
    * KC 85/4
    * KC Compact
    * KIM-1
    * Laser 110
    * Laser 200
    * Laser 210
    * Laser 310
    * Laser 350
    * Laser 500
    * Laser 700
    * Lisa2
    * Lisa2/10
    * LNW-80
    * Lynx
    * Lynx (alternate rom save!)
    * Lynx II
    * Macintosh 512ke
    * Macintosh Plus
    * Macintosh XL
    * Mark III - (PAL) Japanese SMS BIOS v2.1
    * Master System III Compact (Brazil) - (PAL) European BIOS with Sonic The Hedgehog
    * Master System II - (NTSC) US/European BIOS with Alex Kidd in Miracle World
    * Master System II - (PAL) European BIOS with Sonic The Hedgehog
    * Master System II - (PAL) US/European BIOS with Alex Kidd in Miracle World
    * Master System - (NTSC)
    * Master System - (NTSC) Hacked US/European BIOS v1.3
    * Master System - (NTSC) US/European BIOS v1.3
    * Master System - (NTSC) US/European BIOS v3.4 with Hang On
    * Master System - (PAL)
    * Master System - (PAL) Hacked US/European BIOS v1.3
    * Master System - (PAL) Japanese SMS BIOS v2.1
    * Master System - (PAL) US/European BIOS v1.3
    * Master System - (PAL) US/European BIOS v3.4 with Hang On
    * Master System Plus - (NTSC) US/European BIOS v2.4 with Hang On and Safari Hunt
    * Master System Plus - (PAL) US/European BIOS v2.4 with Hang On and Safari Hunt
    * MC-10
    * Megadrive / Genesis
    * Microbee 32 IC
    * Microbee 32 PC
    * Microbee 32 PC85
    * Microbee 56
    * Microtan 65
    * MSX 1
    * MSX 1 (Japan)
    * MSX 1 (Korea)
    * MSX 1 (UK)
    * MSX 2
    * MSX 2 (BASIC 2.1)
    * MSX 2 (Japan)
    * MTX 512
    * MZ-700
    * MZ-700 (Japan)
    * Nascom 1 (NasBug T1)
    * Nascom 1 (NasBug T2)
    * Nascom 1 (NasBug T4)
    * Nascom 2 (NasSys 1)
    * Nascom 2 (NasSys 3)
    * Nintendo Entertainment System (NTSC)
    * Nintendo Entertainment System (PAL)
    * Odyssey 2
    * Oric 1
    * Oric Atmos
    * Oric Telestrat
    * PC200 Professional Series
    * PC-8801 MKIISR (Hires display, VSYNC 24KHz)
    * PC-8801 MKIISR (Lores display, VSYNC 15KHz)
    * PC/AT (CGA, MF2 Keyboard)
    * PC/AT (VGA, MF2 Keyboard)
    * PC (CGA)
    * PC Engine/TurboGrafx 16
    * PC (MDA)
    * PC/XT (VGA, MF2 Keyboard)
    * PDP-1
    * PET2001/CBM20xx Series (Basic 1)
    * Philips P2000M
    * Philips P2000T
    * PK-01 Lviv
    * PK-01 Lviv (alternate)
    * PK-01 Lviv (prototype)
    * Pocket Computer 1251
    * Pocket Computer 1350
    * Pocket Computer 1401
    * Pocket Computer 1402
    * Pocket Computer 1403
    * Pocket Computer 1403H
    * Pravetz 8D
    * Pravetz 8D (Disk ROM)
    * Pravetz 8D (Disk ROM, RadoSoft)
    * Salora Fellow
    * Sam Coupe
    * Sanyo / Dick Smith VZ200
    * Sanyo / Dick Smith VZ300
    * Sorcerer
    * Sord M5
    * Spectrum I+
    * Superboard II
    * Super GameBoy
    * Super Nintendo Entertainment System (NTSC)
    * Super Nintendo Entertainment System (PAL)
    * Super Vision
    * SVI-318
    * SVI-328
    * SVI-328 (BASIC 1.11)
    * System-80
    * Tandy 1000HX
    * Tatung Einstein TC-01
    * TC-2048
    * Texet TX8000
    * TI-81 Ver. 1.8
    * TI-85 ver. 10.0
    * TI-85 ver. 3.0a
    * TI-85 ver. 4.0
    * TI-85 ver. 5.0
    * TI-85 ver. 6.0
    * TI-85 ver. 8.0
    * TI-85 ver. 9.0
    * TI-86 homebrew rom by Daniel Foesch
    * TI-86 ver. 1.2
    * TI-86 ver. 1.3
    * TI-86 ver. 1.4
    * TI-86 ver. 1.6
    * TI99/4A Home Computer (Europe)
    * TI99/4A Home Computer (US)
    * TI99/4A Home Computer with EVPC
    * TI99/4 Home Computer (Europe)
    * TI99/4 Home Computer (US)
    * TI Avigo 100 PDA
    * TI Model 990/10 Minicomputer System
    * TK-90x Color Computer
    * TK-95 Color Computer
    * TRS-80 Model I (Level I Basic)
    * TRS-80 Model I (Radio Shack Level II Basic)
    * TRS-80 Model I (R/S L2 Basic)
    * TS-2068
    * UK101
    * UK-2086 ver. 1.2
    * Vectrex
    * VIC1001 (NTSC)
    * VIC20 (NTSC)
    * VIC20 (NTSC), IEEE488 Interface (SYS45065)
    * VIC20 PAL, Swedish Expansion Kit
    * VIC20/VC20(German) PAL
    * XP-800 Expert 1.0
    * XP-800 Expert 1.1
    * Z88
    * ZX Spectrum
    * ZX Spectrum 128
    * ZX Spectrum 128 (Spain)
    * ZX Spectrum +2
    * ZX Spectrum +2a
    * ZX Spectrum +2 (France)
    * ZX Spectrum +2 (Spain)
    * ZX Spectrum +3
    * ZX Spectrum +3e
    * ZX Spectrum +3e (Spain)
    * ZX Spectrum +3 (Spain)
    * ZX Spectrum +4
    * ZX Spectrum (BusySoft Upgrade v1.18)
    * ZX Spectrum (Collier's Upgrade)
    * ZX Spectrum (De Groot's Upgrade)
    * ZX Spectrum (LEC Upgrade)
    * ZX Spectrum (Maly's Psycho Upgrade)

    You can find out more here: http://www.mess.org/

    It isn't based much on older emulators, so emulation isn't at it's best, particularly for the newer consoles, but it is being actively worked on and improves leaps and bounds with each new release.

  10. #10
    Join Date
    Dec 2001
    Location
    Wirral, UK
    Posts
    4,226
    Thanks
    0
    Thanked 1 Time in 1 Post
    EP Points
    5

    Default

    Ever heard of MESS?
    Well if he read my first reply, then yes he would have heard of it

  11. #11
    Join Date
    Mar 2004
    Location
    Wisconsin, USA
    Posts
    595
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    well, yes i did, but I'm not exactly going to include all those old, crappy ones, maybe the atari games, systems after nes, and possibly some sega emu's into it, too. I dont need all those old games, just the games normal ppl would play, like the stuff you have on your site...

  12. #12
    Join Date
    Nov 2003
    Location
    USA
    Posts
    4,104
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Yeah, and as far as I'm concerned MESS isn't all that great.

  13. #13
    Join Date
    Dec 2001
    Location
    Wirral, UK
    Posts
    4,226
    Thanks
    0
    Thanked 1 Time in 1 Post
    EP Points
    5

    Default

    It's not quality it's quantity though, yeah. What you propose is something that is easily covered via a frontend to be honest.

  14. #14
    Join Date
    Apr 2004
    Location
    #EPBoard
    Posts
    1,306
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    I think frontends suck. I much prefer to use the emulators by themselves.

    As far as coding an emulator that would play ANY ROM/ISO, it would be a massive, massive, massive, very large undertaking.

    An absolutely insane amount of knowledge would be required, and I sincerely doubt one or even a small team of people could do it.

    Also, the sheer amount of bug checking and making sure that different console emu code doesn't leak while playing a game would be enormous.

  15. #15
    Join Date
    Mar 2003
    Location
    Western KY
    Posts
    7,550
    Thanks
    8
    Thanked 18 Times in 6 Posts
    EP Points
    40

    Default

    Del_boy showed me this one site that told you how to write an emulator for this one thing called a Chip8 that only had like 30 commands. You could try that, and see how well you can do it. That should tell you if you know enough to even start on an emulator for a more complex system. I don't know how possible this would be, but you could try to contact all the emu authors for the best and most popular emulators for each system. Tell them what you are trying to do. See if you can get them to support you. Make it a worldwide community project. That would be the best way to do it.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About Us

We are the oldest retro gaming forum on the internet. The goal of our community is the complete preservation of all retro video games. Started in 2001 as EmuParadise Forums, our community has grown over the past 18 years into one of the biggest gaming platforms on the internet.

Social