Forum Index | FAQ | New User | Login | Search

Make a New PostPrevious ThreadView All ThreadsNext Thread*Show in Threaded Mode


SubjectGenesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byJonemaan
Posted on04/13/05 04:19 PM



Besides sound not working, will anything have problems when the Z80 is left unemulated in any of those systems ?




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byBart T.
Posted on04/13/05 11:48 PM



> Besides sound not working, will anything have problems when the Z80 is left
> unemulated in any of those systems ?

Yes. I can only speak about the Genesis but some games will have the main CPU communicate with the Z80 program and if it doesn't respond, the main CPU will just hang there waiting.

For most games this doesn't occur but it does happen quite a bit. On the Genesis, many games use the bus-request mechanism to take away the Z80 bus and will wait until this is acknowledged. Because this is a hardware thing (the Z80 programs don't get to determine when they lose the bus), it can be faked easily without emulating the Z80 (for example, see Genecyst's Z80 faking option.) There will still be several games that talk to the Z80 through the shared RAM and won't work without it being emulated (or at least not without a clever faking mechanism that attempts to return different values from the Z80 RAM in hopes of fooling the main CPU.)



SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byElSemi
Posted on04/18/05 04:08 AM



In Neogeo, the BIOS will send commands to the Z80 and will wait for it to return the correct values during the system POST (It will show Z80 ERROR), it can be faked just returning the right values, but I think that was removed from MAME long time ago.

For CPS1, there is no problem, they should boot fine without the z80

CPS1 with QSound hardware and CPS2 will not boot because the main game will wait till the z80 has initialized by reading a value in the shared ram till it's the right value (put there by the z80 after init). It also can easily be faked.

> > Besides sound not working, will anything have problems when the Z80 is left
> > unemulated in any of those systems ?
>
> Yes. I can only speak about the Genesis but some games will have the main CPU
> communicate with the Z80 program and if it doesn't respond, the main CPU will
> just hang there waiting.
>
> For most games this doesn't occur but it does happen quite a bit. On the
> Genesis, many games use the bus-request mechanism to take away the Z80 bus and
> will wait until this is acknowledged. Because this is a hardware thing (the Z80
> programs don't get to determine when they lose the bus), it can be faked easily
> without emulating the Z80 (for example, see Genecyst's Z80 faking option.) There
> will still be several games that talk to the Z80 through the shared RAM and
> won't work without it being emulated (or at least not without a clever faking
> mechanism that attempts to return different values from the Z80 RAM in hopes of
> fooling the main CPU.)
>





SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byJonemaan
Posted on04/18/05 05:48 AM



Thanks. I've started writing a Z80 core, and an MSX emulator to test it with. If it's challenging, I'll stick with it for a while, if it's not, I'll move to a system with the 68000+Z80 combo.

All's just for fun and challenge though; no outstanding releases are expected ;p




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 Reply to this message
Posted byHyde
Posted on04/22/05 02:58 AM



So how exactly does one get the info on CPS1/CPS2 hardware?

(Please don't say MAME)


SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byR. Belmont
Posted on04/22/05 05:04 PM



> So how exactly does one get the info on CPS1/CPS2 hardware?
>
> (Please don't say MAME)

If you aren't a good enough C/C++ jock to trivially understand MAME you probably shouldn't be trying to write an emulator. It's harsh, but it's the truth.




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byJonemaan
Posted on04/22/05 05:24 PM



> If you aren't a good enough C/C++ jock to trivially understand MAME you probably
> shouldn't be trying to write an emulator. It's harsh, but it's the truth.
>

I think his point was, that it's too hard not to end up copy/pasting half of MAME's CPS source code when using it as reference. I'd much rather base an emulator on technical documentation instead (eg. basing a Z80 emulator on the official documentation by Zilog themselves instead of Juergen's Z80 core in MAME).




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byvictormoya
Posted on04/23/05 02:47 AM



> > So how exactly does one get the info on CPS1/CPS2 hardware?
> >
> > (Please don't say MAME)
>
> If you aren't a good enough C/C++ jock to trivially understand MAME you probably
> shouldn't be trying to write an emulator. It's harsh, but it's the truth.
>

Just the answer I expect from bloody MAME nazis. Code never replaces documentation. The absolute lack of documentation in the MAME project is one of the main points that make the whole project almost worthless from a programmer point of view.


SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byHyde
Posted on04/26/05 01:29 AM



> > (Please don't say MAME)
>
> If you aren't a good enough C/C++ jock to trivially understand MAME ...

Haw.




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byR. Belmont
Posted on04/26/05 10:54 PM



> Just the answer I expect from bloody MAME nazis. Code never replaces
> documentation.

Wrong. MAME's macro structure makes it almost more documentation than source code. ElSemi reads it fine. Dayvee reads it fine. MHz reads it fine. (And of course smf and I read it fine to update ZiNc). Heck, Ville Linde got it so much he gave up on standalone emulators. What's wrong with you that you can't?




SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted bysmf
Posted on04/27/05 03:03 AM



I agree, it's so much easier when you can read up on what something is supposed to do. Reverse engineering is much slower.

For cps1 you'll need the z80, 68000, ym2151 & oki6295 manuals ( Although _nobody_ writes their own cores for these nowadays ). If we had the internal code from the qsound chip then you'd need a dsp core for that ( can't remember which off the top of my head ). Otherwise you'll need the docs that were going around for a while ( or MAME, again nobody bothers to write another qsound.c ).

That leaves the graphics, I'm sure the guy that used to do demos for arcade hardware did a cps1 version. There are probably a few interrupt issues you'll have to play around with.

I really don't see the point in spending lots of time documenting things, which are either documented already or can be trivially derived from the source. The whole point is to make MAME the documentation, it's the only thing that can be verified as working. A large text file that describes the hardware is likely to be wrong and missing anything complex.

If you can get documentation from the manufacturers then good luck. In alot of cases we don't understand quite what the hardware is doing either, which is why writing games using MAME as a test bed can cause frustration when you run it on the real thing.

smf





SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted bysmf
Posted on04/27/05 03:09 AM



> Just the answer I expect from bloody MAME nazis.

Starting with an insult is never a good way to win an argument.

> Code never replaces documentation.

Yes it does, for the simple fact that documentation is normally wrong. You can't argue with the code, it does what it says it does. You can run the game on the code, you can't run it on a word document. If the code is wrong then the game doesn't run. If the document is wrong then it wastes the time of the people reading it. Alot of the system is made up of parts that are documented, you should be able to get hold of that information yourself. Having your own boards can help if you want to start again from scratch.

> The absolute lack of documentation in the MAME project is one of
> the main points that make the whole project almost worthless from a programmer
> point of view.

A programmer should be able to cope, it's not our job to educate you. If you don't get it then you probably won't get it no matter how big a word document we write. Emulation is hard enough, without being slagged off for not documenting things well enough for the newbies.

smf





SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byMooglyGuy
Posted on05/19/05 04:00 PM



> What's wrong with you that you can't?

Probably the fact that the people who have that strange "MAME GAY TEAM" vendetta are borderline retarded, and we can't express ourselves monosyllabically enough for them to understand.


SubjectRe: Genesis, NeoGeo, CPS1/2 Z80 new Reply to this message
Posted byfinaldave
Posted on06/04/05 09:34 PM



> > > So how exactly does one get the info on CPS1/CPS2 hardware?
> > >
> > > (Please don't say MAME)
> >
> > If you aren't a good enough C/C++ jock to trivially understand MAME you
> probably
> > shouldn't be trying to write an emulator. It's harsh, but it's the truth.
> >
>
> Just the answer I expect from bloody MAME nazis. Code never replaces
> documentation. The absolute lack of documentation in the MAME project is one of
> the main points that make the whole project almost worthless from a programmer
> point of view.

:-O

Okay, I have to stop you riiight there:
1) "Bloody MAME Nazis"? WTF?

2) "Code never replaced documentation"? WTF?

Okay, let try this out.
Let's say I want to know about CPS1. It's taken me about a minute to download the MAME source code.

I shall now open up cps1.c
SHOCK HORROR - there's a comment at the top which says
"68000 for game, Z80, YM-2151 and OKIM6295 for sound."
Could this be *GASP* the documentation you said did not exist?

How about a memory map?:
AM_RANGE(0x000000, 0x1fffff) AM_READ(MRA16_ROM) /* 68000 ROM */
AM_RANGE(0x800000, 0x800001) AM_READ(input_port_4_word_r) /* Player input ports */
...
So let me see... could possibly 000000-1fffff be the ROM? MY GOD!

How much of a fucking idiot would you have to be not to understand that!


3) "MAME is absolutely worthless from a programmer point of view".... are you on Crack?








Newsdee's Love, Glory, and Discussion Boards



Previous ThreadView All ThreadsNext Thread*Show in Threaded Mode