Slow Z80 Based Games


R

Reesy

Guest
Hi,

Franxis has done an amazing job intergrating DrZ80 into Mame. He still had a few problems but I think I've just got it working as it seems to be running some of the Z80 based games now. I'm just not noticing much of a speed boost on the games that I have tried so far, mainly because they fly at a frame skip of 0 using the old z80 core anyway :) nice.

Does any one know what z80 based games are currently running slowly? This way I'll be able to tell if DrZ80 is making a difference.

Reesy
 
OMG, if the arcade version of Bubble Bobble would finally run smoothly with sound on my 156MHz GP32, I'd be eternally happy! 8-D
 
Reesy posted on Sep 23 2005 at 09:00 PM said:
Hi,

Franxis has done an amazing job intergrating DrZ80 into Mame. He still had a few problems but I think I've just got it working as it seems to be running some of the Z80 based games now. I'm just not noticing much of a speed boost on the games that I have tried so far, mainly because they fly at a frame skip of 0 using the old z80 core anyway :) nice.

Does any one know what z80 based games are currently running slowly? This way I'll be able to tell if DrZ80 is making a difference.

Reesy


I don't know if they used Z80 or not but Mappy, Cosmic Avenger, and Galaga still run kind of slow.

Also most games have crackly sound which may be because the CPU bandwith is overloaded running the other emulation. It seems the harder to emulate the game is the more crackly the sound. Pac -Man sound for example is almost perfect at 133. Ms Pac-man gets a little more crackly at 133 (noticeable in intermissions)

I don't know maybe try bumping up the settings to full power for Z80 games and see if they still run smooth and with good sound. If you notice that they run better at full settings than the old "c" versions this means that DrZ80 is giving a speed boost.

Thanks again for the awesome work Reesy :)
 
Last edited by a moderator:
Thanks lads, I just tried Bubble Bubble and no joy. It crashes the emulator but it has hightlighted a problem with the memory rebasing code. Hopefully I can fix this and then see if DrMD is faster than the C code.
 
Reesy posted on Sep 23 2005 at 10:47 PM said:
Thanks lads, I just tried Bubble Bubble and no joy.  It crashes the emulator but it has hightlighted a problem with the memory rebasing code.  Hopefully I can fix this and then see if DrMD is faster than the C code.


If you ever need anyone to test the different cores to make speed comparisons you know what to do :)
 
Last edited by a moderator:
Reesy posted on Sep 23 2005 at 10:47 PM said:
Thanks lads, I just tried Bubble Bubble and no joy. It crashes the emulator but it has hightlighted a problem with the memory rebasing code. Hopefully I can fix this and then see if DrMD is faster than the C code.

I suggest you test games with Video Core and Audio Core at 100% (it is 80% by default). Also Bubble Bobble does NOT work also with C core. Test with bootleg versions instead: Bobble Bobble or Super Bubble Bobble.
 
Last edited by a moderator:
I couldn't get DrZ80 working correctly and when it did work it seemed to run slower than the C code :lol: Oh well.

So I am now offically giving up adding DrZ80 to Mame! There are just too many incompatibilities between them and by the time I make DrZ80 compatible it will be just as slow as the C code anyway, so its pointless.
 
Too bad there's no speed improvement. But thanks for trying Reesy! And a huge thank you to Franxis for his amazing work. BTW is DrZ80 the only Z80 assembler core for the GP32? I seem to remember hearing about another one, or maybe I am just confused :)
 
No there are two others that I know of that are available. There is Flubba's core and the core from Foon ( a speccy emulator for the GBA ) but they will probably suffer from the same problems as DrZ80. I would imagine that they will suffer the same problems as DrZ80 as Mame requires some dodgy stuff like storing the previous program counter before executing every opcode and checking the interrupt status before every opcode. I very much doubt either of the cores support this sort of functionality, so they would have to be modified extensively.
 
Ok, thx for the reply Reesy. The part with the opcodes almost made sense to me :) , it's ages ago I did any assembler programming... or any programming at all for that matter :D
 
Reesy posted on Sep 25 2005 at 08:44 AM said:
No there are two others that I know of that are available. There is Flubba's core and the core from Foon ( a speccy emulator for the GBA ) but they will probably suffer from the same problems as DrZ80. I would imagine that they will suffer the same problems as DrZ80 as Mame requires some dodgy stuff like storing the previous program counter before executing every opcode and checking the interrupt status before every opcode. I very much doubt either of the cores support this sort of functionality, so they would have to be modified extensively.


Yeah thanks for trying. The effort is appreciated, thanks. I was wondering if you had an idea of what caused the crackling and/or stuttering sound in many games? If it a bandwith issue or something in MAME that causes it?
 
Last edited by a moderator:
The crackly sound in Mame is probably due to the GP32 crappy data bus. You can't update the sound buffer too much or it screws with the sound DMA. Rob had to basically rewrite the sound rendering code in the FM emulator I use in DrMD, it reads and writes to the sound buffer as little as possible ( ie only once for each sound sample ) this gives you crystal clear sound on the GP32.

Because Mame uses so many different drivers I do not think its going to be feasible to re-write them all to use this approach, so I think you stuck with the crackly sound.
 
I have tested the core you sent me Reesy ;-)

1943 is a lot faster, but it resets when you start to play :-(

Bobble Bobble runs Ok and faster (it has 3xZ80). Still a little slow.

Gun Smoke runs perfectly and a lot faster.

Ghosts'n Goblins is ok and faster.

Galaga is perfect now, with correct speed (it was slow with C core).

Black Tiger uses 2xZ80 and run a LOT faster. I think it is perfect now! Unfortunatelly it only works OK if you press L (Insert Credit) just after booting the game, if you wait a little it freezes.

Mr. Do don't run ok (graphics bugs).

Pacman is ok.

I haven't tested more games yet, i will check!.

I will do more tests and i will try to solve the problem with direct memory access with SP. Also i think it will run better if i call several times to DrZ80Run() instead of only one call per frame (because i could calculate again PC, previous PC and call Interrupt() function if needed after each of the calls. Maybe more games will be compatible).

Next weekend (probably next sunday) could be a great day for GP32 emulation !.
 
Back
Top