POS (Pong Consoles) CPUs and Other Chips

From Emulation General Wiki
Revision as of 01:19, 24 February 2024 by Rtim (talk | contribs)
Jump to navigation Jump to search

Emulation of common chips is a big part of emulating consoles and computers, this page covers all these well known parts.

x86 CPUs

This part is about software that emulate x86 CPUs, and also other related PC parts.

The PC platform is an open architecture system that IBM initially designed in 1980. IBM's PC 5150 is the progenitor (though in no way representative of iterative designs like the desktops and laptops you may be familiar with today).

The history of the PC is comprehensive, but a good summary is that almost every component of the 5150 was off-the-shelf. IBM hoped that if clones popped up, they could sue them for using the firmware in the BIOS, which they had copyright over as established by a lawsuit between Apple and Franklin.[1] However, Phoenix designed a clean-room replacement firmware based solely on IBM's own public documentation.[2] As a result, IBM never challenged clones that used it and promptly lost control over the platform.[citation needed] Intel would later take up the next major iteration in 1995, called ATX.

Sometime in the 90s, a speedup was found in PC emulation that could run software near-natively; this became the basis for hypervisors, which are different from conventional emulators listed here since they require the host architecture to be at the very least x86-compatible.

Name Platform(s) Latest version Enhancements Hardware support, features
and peripherals
FLOSS Active Recommended
PC / x86
86Box Windows Linux macOS Dev
4.1.1
PCBox fork
~
PCem Windows Linux macOS v17
git
git (macos)
~
DOSBox
and forks
Windows Linux macOS FreeBSD 2024.03.01 (DOSBox-X)
0.80.1 (DOSBox Staging)
0.9.9 (DOSBox Pure)
git (DOSBox-core)
0.74-3 (DOSBox)
~ ~ ~[N 1] ~
DREAMM Windows Linux macOS 2.1.2 ~* ~* ~*
MartyPC Windows
Linux macOS *
0.1.3 ? ~ ~
UniPCemu Windows 2023/04/11 ? ~ ~
VARCem Windows Linux macOS Builds ? ~* ~ ~
MAME Windows Linux macOS FreeBSD git artifacts[N 2]
0.264
libretro core
~ ~ ~*
PCjs Web git ~*
QEMU Windows Linux macOS 9.0.0-rc2
Bochs Windows Linux FreeBSD BeOS OS/2 AmigaOS 2.8
Mobile / ARM
DOSBox Pure Android iOS libretro core ~ ~
UniPCemu Android 2023/04/11 ? ~ ~
Magic DOSBox Android 1.0.84 ? ~*
Limbo Android Windows Mobile 6.0.1
WinMobile build
~
DOSBoxPPC Windows Mobile 0.63 ? ~*
Bochs Android 2.6.11
git
Consoles
DOSBox Pure Xbox One Xbox Series X/S UWP libretro core ~ ~
UniPCemu PSP Switch Vita 2023/04/11 ? ~ ~
Bochs PlayStation 2 2.3.5

Descriptions

PCem/86Box/PCBox/VARCem:

These emulators provides an excellent compatibility and hardware and peripheral support for DOS-based operating systems such as Windows 3.x, Windows ME/98/95 (and even NT-based XP/Vista,Win7 supported but not recommended) that is beyond what "DOSBox forks" can offer but unlike "DOSBox forks" these emulators usually requires modest to top-notch single thread performance of CPUs. As of June 14, 2021, PCem's original developer, Sarah Walker, has stopped working on the project. It has now been taken over on December 18, 2021, by a new maintainer, Michael Manley. 86Box is a fork of PCem which is developed more actively, while PCBox and VARCem are forks of 86Box.

One aspect commonly used to compare PCem and 86Box is the emulation performance. PCem v15 introduced a rewritten dynamic recompiler, which was primarily aimed at improving emulation performance in games; however, it also caused minor to severe performance regressions in other applications. 86Box uses the previous recompiler from PCem versions before v15, with optimizations performed by devs, as they have determined that the new one causes too many regressions to be adopted as a sensible default. There is a way for you to try out the new recompiler on 86Box, though. PCem’s emulation of some core system components, such as the Programmable Interval Timer (PIT), takes a few shortcuts to improve performance. These shortcuts are perfectly fine for games, which is what PCem targets; although, they have caused issues with the software preservation side of things. In addition to taking fewer shortcuts, 86Box also tries to follow the specifications of these components, rather than implement the minimum viable feature set, which is - once again - good enough for games, but not good enough for some other applications. Generally speaking, the more accurate a component’s emulation is made, the more host CPU horsepower it will require. In addition to taking fewer shortcuts, 86Box also tries to follow the specifications of these components, rather than implement the minimum viable feature set, which is - once again - good enough for games, but not good enough for some other applications. See this guide for more information.
DOSBox-X/DOSBox Pure/DOSBox Staging:
DOSBox is another option for emulating many older computer games specially for pretty good performance with low-end computers but compatibility, accuracy and hardware support aren't as good as PCem or 86Box. DOSBox is no longer updated but it has many "DOSBox forks" over the years. Windows 95/98/ME can be installed in "DOSBox forks" and also supports 3DFX Voodoo emulation. Even more forks are listed in the "DOSBox forks" page of DOSBox Staging's GitHub wiki or here.
DOSBox-X is vastly different from other "DOSBox forks" in that it aims to be a complete emulation package that covers all pre-2000 DOS and Windows 9x based hardware scenarios. It features more flexibility by way of config options and an accompanying frontend to customize the DOS VM further, and beyond games it also supports standard software for DOS, as well as DOS-based Windows including Windows 3.x and 9x/ME with 3D acceleration via 3dfx emulation. The project also has its own wiki which contains extensive documentation on DOSBox-X, and a summary of notable added features can be seen here. While DOSBox-X currently supports emulation of IBM PC/XT/AT, Toshiba AX/J3100, IBM PCjr/Tandy, and NEC PC-9800 series architecture, the maintainer, Jonathan Campbell, does not plan to add any other MS-DOS system. This limitation is mainly done to prevent bloating of the codebase, keeping it at a manageable level for himself while also staying organized. However, the codebase does contain stubbed source files for FM Towns emulation in the event that other programmers want to add that functionality.
DOSBox Pure is a new DOSBox fork specifically built for RetroArch/Libretro. According to its project description it aims for simplicity and ease of use just like DOSBox Staging. On top of that it has an advantage over other "DOSBox forks" because of libretro features (EmuVR support, Shader presets/Overlays and configs etc).
0.9.5 version brings 3dfx emulation support.
0.9.8 version brings further improvements to the ATAPI CD-ROM emulation for Windows 9x games with CD copy protection, add support for uncompressed CHD version 5 CD images and add netplay for multiplayer games that used IPX, Ethernet or a modem over the internet.
DOSBox Staging is a DOSBox fork that focuses on ease of use, modern technology and best practices. 3dfx emulation is supported with the latest releases.
DREAMM is a new emulator that targets specific games rather than the PC platform in general. As a Quality of Life feature, when running games that originally had manual or codewheel based copy protection DREAMM provides the correct answers for the user. Games run in the emulator's built in implementations of DOS, Win32 and FM Towns OS.
UniPCemu
The UniPCemu (Universal PC emulator) emulator, originally made to play games on the PSP, now built for Android, Windows, PSP, Nintendo Switch and PS Vita! Play your old classic PC games on Android! It's a cycle-accurate x86 emulator (previously called x86EMU before the rename, This isn't based on the other cpu-emulator called x86emu (lower case)). It's a 8086(IBM PC) up to Pentium II (Compaq Deskpro 386, Compaq Deskpro 386 with PS/2 mouse (adds PS/2 mouse to the Compaq Deskpro 386 chipset, optional BIOS ROM replacement (loading it instead, alternatively a i430fx Pentium or i440fx/i450gx Pentium Pro/Pentium II chipset with PS/2 mouse. A 85c496/7 chipset is also supported.) and seperate CMOS settings like the other architectures) emulator(with various, configurable hardware), with up to 80386 timings (80486SX and Pentium using 80386 timings or 1 cycle for newer/unknown timings/instructions, both having no floating point unit)).
 In basic CPU's, all generations in between are supported (8086/8088, 80186/80188, 80286, 80386sx/dx, 80486, Pentium, Pentium Pro and Pentium II. All without FPU emulated, other than software FPU emulation support using drivers).
 It can run many IBM PC XT games, and also various 286(*) up to Pentium II games. Support for ATAPI CD-ROM (using VIDE-CDD.SYS, OAKCDROM.SYS or compatible ATAPI drivers) also works. Many graphics cards and sound cards can be used (MIDI using a Soundfont renderer inside UniPCemu (recordable by UniPCemu's sound recording functionality) or passthrough(passthrough on Windows only, which is not recordable by the emulator's own recording functionality)), from PC speaker up to Sound Blaster 2.0 and from IBM Monochrome Display Adapter up to ET4000/W32 SVGA(up to 16M colors (in True Color mode) using it's SC15025 DAC)!
 EMS is available using the Lo-tech 2MB EMS board on the XT and various EMM emulation software(e.g. JEMM386, EMM386) on IBM AT and up. For more information about UniPCemu use this link.
MartyPC:

It's an open source emulator written in rust that aims to be cycle accurate for IBM PCs. Compared to other (also great) PC emulators like PCem/86box/DOSbox forks etc, MartyPC focuses on ultra accurate CGA and DMA emulation. It requires pixel perfect and cycle accurate CGA emulation as well as emulation of CRT properties like overscan.[3] Developer "Glorious_Cow" said;

 Of course my next target is the 286, I think it would be interesting to try to make a cycle-accurate 286. The biggest challenge is the microcode for 286 hasn't been decoded yet, but there is a high resolution 286 die shot I'd love to get my hands on... My hope is that the 286 is a more 'regular' chip than the 8088. The 8088 turned out to have a lot of odd, poorly documented behavior. I guess we'll find out.
 386 is sort of a long-term goal. I'll get there when I get there, but it might take another year for 286 I estimate before I tackle it. Now that I've accomplished Area 5150 I don't really have a "goal target" in mind other than running DOOM :) My 386 will not be slavishly cycle-accurate, after all, there were many variations of the 386 and clones, so which one would be accurate to? Besides the fact it's hard to write a cycle-accurate CPU at 40MHz...
 At that point I think MartyPC will be done chasing the hardware, I have no interest in following the CPU generations up into the Pentiums - that's probably best left to 86box - and I think I will probably turn my eye just to seeing what kind of interesting debugging features I can add. Save states and rewinding, an inline assembler or scripting language would be cool.
 With most end-users probably best served by using 86box, I figure my best niche going forward is being a 'retro-developer's' emulator of choice, so I am motivated to add any debug features people might request.[4]
MAME:

The emulation of various CPU types seen here regarding MAME are all over the place in the changelogs and seem confusing. However, MAME has preliminary support for the families of 286, 386/i386, 486/i486, and almost the entire range of Pentium CPUs. However, only the 286/386/486 emulation is acceptable at the moment. According to ProjectMESS, many IBM PC/AT 5170 family PCs running the 286 CPU have preliminary support. MAME 0.146u3 (Jul 2012) added CPU types for Pentium MMX, Pentium Pro, Pentium II, Pentium III, and Pentium 4, but don't expect miracles.

- MAME compat list showing the sector for several IBM-type PC systems - most of which may work fine.
- wiki.mamedev.org's search results for Pentium (e.g. 0.100u4, 0.103u4, 0.146u3, 0.148, 0.152, 0.156)
- wiki.mamedev.org's list for MACHINE_NOT_WORKING (Few systems based on a Pentium CPU)
- wiki.mamedev.org's list for MACHINE_IS_SKELETON drivers (Several PCs/systems based on a Pentium CPU)
Bochs:

A full x86 PC emulator with a focus on development and test operating systems and other low-level software. Its lack of proper timing emulation makes it not useful, and it is often too slow for newer systems to be playable. It is thus not recommended to use Bochs. Bochs is not timing but functional emulator, it's emulates time in very trivial way - one guest instruction emulated equal to one guest cycle. By tuning "IPS" setting you not anything in the way it emulates time - in opposite, you only giving a hint about emulation speed to Bochs which helps it to emulate devices like mouse or keyboard.

QEMU

Similar to Bochs, QEMU may not be the perfect x86 emulator, but its versatility, hypervisor capabilities, and vast platform support make it a powerful tool for anyone interested in exploring the world of virtualization. Its commitment to open-source development and its vibrant community ensure its continued evolution and relevance in the ever-changing world of computing. While QEMU is versatile and great for virtualization/VMs, if your focus is precise, reasonable and compatible x86 emulation, use alternatives like 86Box, PCem or even DOSBox forks.

Comparisons

To see comparisons of what each emulator provides in terms of Enhancements and Hardware \ Peripheral support, Check the page linked below

Main article: PC Emulator Comparisons

68k CPUs

Wikipedia:Motorola_68000

See Category:68000-based page for m68k-based systems software emulation.

PPC CPUs

Wikipedia:PowerPC

See Category:PowerPC-based page for PPC-based systems software emulation.

8-bit CPUs

See Category:Z80-based page for Z80-based systems software emulation.

SOC's (System On A Chip)

Model Manufacturer MAME support Emulators / Description
Elan Unknown Decent Designed and Manufactured by an unknown Chinese or Taiwanese company, Elan is one of the older SOC still used in Chinese products, dating back to around the late 90s to early 2000s. Elan is usually used in bootleg or original plug and play games / systems.
SPG243 Sunplus None
SPG250 Sunplus None
SPG288 Sunplus None
SPG289 Sunplus None
SPG293 Sunplus None
VT01 V.R. Technology None NOAC (NES-On-A-Chip) with the ability to drive an STN display directly using a modified palette.
VT02 V.R. Technology None NOAC (NES-On-A-Chip) with major enhancements compared to regular NES. What's new
VT09 V.R. Technology None NOAC (NES-On-A-Chip), a low-cost replacement for VT03.
VT168 V.R. Technology None A MOS6502-based SoC inspired by the NES but unlike NOACs, major differences made it no longer fully backward compatible with NES.
VT268 V.R. Technology None Enhanced VT168.
VT368 V.R. Technology None

CPU's & MP's (Microprocessors)

Model Manufacturer Year MAME support Emulators / Description
80286 Intel 1982 None The 80286 CPU was released on February 1, 1982, with a clock speed of 4 MHz, but it soon changed to 6 MHz. After that, it had a max clock speed of 25 MHz.
386DX Intel 1985 None The 386DX CPU was released in October of 1985 with a clock speed of 12 MHz. The max clock speed was 33 MHz. The 386DX was supposed to be introduced
at 16 MHz, but they had to settle for 12 MHz for technical reasons
386SX Intel 1988 None The 386SX was released in 1988 and was intended for lower-cost home PCs. It has the same clock speeds as the 386DX.
4004 Intel 1971 None The first commercially produced microprocessor.
4040 Intel 1974 None
6800 Motorola 1974 None
68008 Motorola 1979 None
68010 Motorola 1982 None Pin-compatible with the 68000, but not 100% software compatible.
68012 Motorola 1985 None
68020 Motorola 1984 None 32-bit internal and external data and address buses, and natively 32-bit ALU.
68030 Motorola 1987 None 68020 with a memory management unit (MMU) and instruction and data caches of 256 bytes each.
68040 Motorola 1990 None First 680x0 family member with an on-chip Floating-Point Unit (FPU).
68060 Motorola 1994 None Last product in 680x0 family.
8008 Intel 1972 None
80186 Intel 1982 None
80188 Intel 1982 None
80286 Intel 1982 None First x86 processor with memory management and wide protection abilities.
80376 Intel 1989 None
80386 Intel 1985 None First 32-bit x86 processor.
80386DX Intel 1988 None The same as original 80386, just renamed.
80386EX Intel 1994 None
80386SL Intel 1990 None Power efficient version of 80386 for laptops.
80386SX Intel 1988 None Cut down version of 80386 with 16-bit data bus.
8080 Intel 1974 None
8085 Intel 1977 None
8086 Intel 1978 None The 8086 CPU was released on June 8, 1978, at 5 MHz and had a max clock speed of 10 MHz. It was also the beginning of the x86 architecture.
8086-1 Intel 1978 None After the original launch, Intel released the 8086-1, which had a clock speed of 10MHz.
8086-2 Intel 1980 None In May/June of 1980, the 8086-2 at 8 MHz was released.
8086-4 Intel 1978 None The 8086-4 CPU came after the 8086-2 CPU, completely skipping 8086-3; it was clocked at 4 MHz.
8088 Intel 1979 None The 8088 CPU was released on July 1, 1979, and had a default clock speed of 4.77 MHz and a max clock speed of 10 MHz.
AM2900 AMD 1975 None
AM29000 AMD 1975 None
COP400 National Semiconductor 1975 None
i386SL Intel 1990 None The i386SL was released for use in portable computers and had a clock speed of 20 MHz. Its max clock speed is 25 MHz.
i486 Intel 1989 None First x86 chip to include more than one million transistors.
i486DX Intel 1989 None The original i486 without clock multiplier.
i486GX Intel 1994 None Embedded ultra-low-power CPU with all features of the i486SX and 16-bit external data bus.
i486SL Intel 1992 None Low-power version of the i486DX, for laptops.
i486SX Intel 1991 None i486 without FPU.
I8086 Intel 1980 None The last 8086 CPU released was the I8086 in May/June of 1980.
Itanium 2 Intel/HP 2002 None IA-64 instruction set simulator [1] [2], executable toolkit [3]
MC14500B Motorola 1977 None
MC88100 Motorola 1988 None
Pentium Intel 1993 (Original)
1995 (P6)
1997 (MMX)
NA
PIC General Instrument \ Microchip 1975 NA
PowerPC AIM Alliance 1993 NA
RISC IBM 1975 NA
TMS1000 Texas Instruments 1974 None
Z80 Zilog 1976 None
Z8000 Zilog 1979 None
Z80000 Zilog 1986 None

Pong Consoles (Pong In A Chip)

Popular for a few years during the 70s, they came in many kinds of cases, controls, and under many brands but all used a POC (Pong In A Chip) which are chips that contain all and only essential components to run the game of Pong and their variations. And because of this, these chips are emulated rather than individual systems.

Model Year Manufacturer Games/Modes MAME support Other support Latest version ROMs Description
3659-1C/C2566 1975 Atari Pong (Two Player) None Pong Consoles Simulation git
3659-3 1975 Atari Pong (Four Player) None None
AY-3-8500 1976 General Instruments Pong (Four Modes)
Light Gun (Two Modes)
None WinArcadia / AmiArcadia and Pong Consoles Simulation 32.2 git
AY-3-8510 1978 General Instruments NA None WinArcadia / AmiArcadia 32.2 Improved version of the AY-3-8500, games are now in colour
AY-3-8512 1978 General Instruments NA None WinArcadia / AmiArcadia 32.2 Improved version of the AY-3-8510.
AY-3-8550 1976 General Instruments NA None WinArcadia / AmiArcadia 32.2 Improved AY-3-8500 with horizontal player motion
AY-3-8600 1977 General Instruments Pong (Eight Modes) None WinArcadia / AmiArcadia 32.2
AY-3-8601 (Square Off) 1976 General Instruments Combat Squares
Racing Squares
Shooting Squares
Jungle Games (Two Modes)
None There is a possibly that this chip was never released
AY-3-8602 (Volleyball Plus) 1976 General Instruments Volleyball
Protection
Hazard
None There is a possibly that this chip was never released
AY-3-8603 (Roadrace) 1976 General Instruments Racing (Two Modes) None
AY-3-8604 (Barricade) NA General Instruments Snakes None This game is made for two players
AY-3-8605 1977 General Instruments Submarine (Three Modes) None
AY-3-8606 1977 General Instruments Breakout (Ten Modes) None
AY-3-8607 1977 General Instruments Light Gun None
AY-3-8610 1977 General Instruments Pong (Eight Modes)
Light Gun
None Improved version of the AY-3-8600
AY-3-8700 1976 General Instruments Tank Battle None
AY-3-8710 1976 General Instruments Tank Battle None
AY-3-8760 1976 General Instruments Motor Cycle (Four Modes) None
AY-3-8765 1976 General Instruments Motor Cycle (Four Modes) None
AY-3-8800 1976 General Instruments Black Jack
Draw Poker
Acey/Ducey
War
None
AY-3-8888 (Vegas) 1976 General Instruments Black Jack
Slot Machine
None
AY-3-8889 1976 General Instruments Tic-Tac-Toe
LEM (Lunar Landing Module)
None
C010073-01/C2607 1976 Atari Pong (Ten Modes) None
C010073-3 1976 Atari Pong (Four Modes) None Pong Consoles Simulation git
C010765 1977 Atari Pong (Thirty-Two Modes) None
C011500-11 / C011512-05 1977 Atari Pinball/Breakout (Seven Modes) None
CR861 (MUGS) 1977 Signetics Pong
Tank
Helicopter
None There is a possibly that this chip was never released
F4301 1976 Universal
Research Labs
Pong (Two Modes)
Racing (Two Modes)
None
K145ИК17 1980 Angstrem Unknown None A Russian POC, its likely a clone of the AY-3-8500 series. a lot of the IC's made in during the Soviet Union were clones.
M-588135 1982 Motorola None A clone of the Mitsubishi M-588135
M58816P 1977 Mitsubishi / Nintendo None Pong Consoles Simulation git M58816P is a custom chip made by Mitsubishi Electronics for Nintendo, it was used in there Color TV-Game line of console.


this console line was launched in 1977 with the release of the Color TV-Game 6, Nintendo's first console

MM-57100N 1976 National Semiconductor Pong (Three Modes) None This is the NTSC version of the chip.
MM-57105N 1976 National Semiconductor Pong (Three Modes) None This is the PAL version of the chip.
MM-57106N 1977 National Semiconductor Unknown None This is the NTSC version of the chip. There is a possibly that this chip was never released.
MM-57186N 1978 National Semiconductor Unknown None This is the PAL version of the chip. There is a possibly that this chip was never released.
MPS 7600-001 1977 Mostek Pong (Four Modes) None This is the NTSC version of the chip. the games are made for two or four players.
MPS 7601-001 1977 Mostek Pong (Four Modes) None This is the PAL version of the chip. the games are made for two or four players.
SN-76410N 1976 Texas Instruments Pong (Six Modes) None
TMS-1955 1976 Texas Instruments Pong (Four Modes) None
TMS-1965 1976 Texas Instruments Pong (Six Modes) None

External links