View Single Post
Old 25 August 2019, 06:49   #93
drHirudo
Amiga user
drHirudo's Avatar
 
Join Date: Nov 2008
Location: Sofia / Bulgaria
Posts: 210
Quote:
Originally Posted by jotd View Post
1) not true. A 68030 can emulate a Z80 properly. A 68000 is too slow.
Eh, people already gave examples of Z80 full computer emulations running at acceptable speed on 68000. Additionally, Sinclair ZX Spectrum CPU is clocked at 3.5 MHz, while the Pac-Man uses Main CPU: Zilog Z80 @ 3.072 MHz - https://en.wikipedia.org/wiki/Namco_Pac-Man

Space Invaders uses even slower CPU - 8080 @ 2 MHz. Similar to Z80, but even simpler/easier to emulate.

Quote:
2) but even with a fast cpu, the video display remains the biggest issue (and also the audio). The emulator would have to be tuned to display the objects, not just draw the entire screen pixel by pixel (chunky!), since the amiga cannot do 50 fps with a full CPU-driven screen refresh, specially with C2P.
Why refresh the whole screen when for example with Pac-Man you have only 4-moving ghosts and the Pac-Man and on Amiga you have at least 8 hardware sprites, that can moving freely around the screen without much CPU overhead? For the audio, several KBs of sampled sounds will happily stay in Amiga' memory, since the game logic and graphics (in the cases of Pac-Man and Space Invaders) are pretty small.

Quote:
That's why MAME doesn't work that well, even on 68060 CPUs. To do that we would have to emulate the Z80 "functional" code, but handle graphics & sound natively. In that case, better re-code the algorithm in 68000 directly.
MAME is written in C/C++ for high-end CPU. And in fact it main purpose is not emulating, but documenting the old hardware -https://docs.mamedev.org/initialsetup/mameintro.html

being able to play games on in on modern hardware is a nice side effect.

68000 assembler with some custom code for the graphics will recreate the original Space Invaders and Pac-Man on Amiga pretty well, using the original game code, graphics and sounds.
drHirudo is offline  
 
Page generated in 0.04127 seconds with 11 queries