MAMEWorld >> EmuChat
View all threads Index   Threaded Mode Threaded  

Pages: 1

peter ferrie
MAME Fan
Reged: 10/06/10
Posts: 46
Send PM


pinball2k
#312902 - 08/15/13 05:24 AM


Even though it's marked as mechanical, the "weeds" comment made me look.
It seems that there's a chip that's intercepting certain otherwise unimplemented opcodes such as 0f 3c. To the best of my knowledge, this is not an undocumented instruction, it simply doesn't exist. The BIOS is attempting to execute this instruction, along with two that decode to vmread and vmwrite on modern CPUs, but which definitely did not exist at the time. I have no idea what the instructions are supposed to do, nor how one would go about finding out.
Beyond that, it's also waiting on a status from port 0x801 (after the port 0x401 check). If I bypass that, then it jumps into unmapped memory. I suspect that the BIOS was not dumped correctly.

Oh, and there's a crash condition in the debugger for mamepp, but I can't reproduce it reliably. Apparently, something to do with the scroll bars, based on the call stack.



goredaimon
MAME Fan
Reged: 02/07/11
Posts: 6
Loc: Brazil
Send PM


Re: pinball2k new [Re: peter ferrie]
#312928 - 08/15/13 05:09 PM


Hello friend, how are you? I'm José Renato Castro Milanez.

I dumped the BIOS with my friend and was working and identical from the motherboard (verified with the programmer). Maybe the dump is wrong?

Williams used different motherboards, so, we have some different bioses to test.

Please e-mail me at goredaimon at ig dot com dot br. I think I can dump another one from a new motherboard (last motherboard available at marcospecialties spare parts).

Thanks for working on it.



R. Belmont
Cuckoo for IGAvania
Reged: 09/21/03
Posts: 9716
Loc: ECV-197 The Orville
Send PM


Re: pinball2k new [Re: peter ferrie]
#312931 - 08/15/13 06:23 PM


I'm 98% sure the problems are due to not banking the BIOS correctly for that motherboard/chipset.

That is not my area of expertise, however

ETA: Carl, whose area this definitely is, says 0f 3c is a MediaGX-specific opcode.

Edited by R. Belmont (08/15/13 11:04 PM)



StilettoAdministrator
They're always after me Lucky ROMS!
Reged: 03/07/04
Posts: 6472
Send PM


Re: pinball2k new [Re: peter ferrie]
#312939 - 08/15/13 11:06 PM


> Even though it's marked as mechanical, the "weeds" comment made me look.
> It seems that there's a chip that's intercepting certain otherwise unimplemented
> opcodes such as 0f 3c. To the best of my knowledge, this is not an undocumented
> instruction, it simply doesn't exist. The BIOS is attempting to execute this
> instruction, along with two that decode to vmread and vmwrite on modern CPUs, but
> which definitely did not exist at the time. I have no idea what the instructions are
> supposed to do, nor how one would go about finding out.
> Beyond that, it's also waiting on a status from port 0x801 (after the port 0x401
> check). If I bypass that, then it jumps into unmapped memory. I suspect that the BIOS
> was not dumped correctly.
>
> Oh, and there's a crash condition in the debugger for mamepp, but I can't reproduce
> it reliably. Apparently, something to do with the scroll bars, based on the call
> stack.

From Teh Shoutbox at forums.bannister.org:
crazyc said:

Quote:


on the opcode 0f 3c on the MediaGX is CPU_WRITE according to sandpile.org. The docs say CPU_READ and CPU_WRITE access machine specific registers.
Just according to sandpile.org 0f 38-3d are also Cyrix GX1 and AMD Geode opcodes. Doesn't really say which exact chips has which instructions. The AMD GX1 doc at http://support.amd.com/us/Embedded_TechDocs/gx1_ds.pdf does decribe them though on page 97.




- Stiletto

Edited by Stiletto (08/15/13 11:22 PM)



peter ferrie
MAME Fan
Reged: 10/06/10
Posts: 46
Send PM


Re: pinball2k new [Re: R. Belmont]
#313006 - 08/16/13 09:07 PM


> I'm 98% sure the problems are due to not banking the BIOS correctly for that
> motherboard/chipset.

It's not a banking problem.
The behavior looks identical to the issue with Savage Quest, which was definitely an incomplete BIOS.
However, in this case, it's that the BIOS is moving a block of memory out of the way for a while, and then not putting it back before attempting to call it. I suppose that one of the ports is not returning the expected value.

> That is not my area of expertise, however
>
> ETA: Carl, whose area this definitely is, says 0f 3c is a MediaGX-specific opcode.

The other two are 0f 78 and 0f 79.



R. Belmont
Cuckoo for IGAvania
Reged: 09/21/03
Posts: 9716
Loc: ECV-197 The Orville
Send PM


Re: pinball2k new [Re: peter ferrie]
#313023 - 08/17/13 04:54 AM


> > I'm 98% sure the problems are due to not banking the BIOS correctly for that
> > motherboard/chipset.
>
> It's not a banking problem.
> The behavior looks identical to the issue with Savage Quest, which was definitely an
> incomplete BIOS.
> However, in this case, it's that the BIOS is moving a block of memory out of the way
> for a while, and then not putting it back before attempting to call it. I suppose
> that one of the ports is not returning the expected value.
>
> > That is not my area of expertise, however
> >
> > ETA: Carl, whose area this definitely is, says 0f 3c is a MediaGX-specific opcode.
>
> The other two are 0f 78 and 0f 79.

Quoting Carl:

"0f 78 is a mediagx smm opcode. It's described on page 92 of this real mediagx doc at http://www.da-cha.jp/files/gxmdb_v20.pdf FWIW, it's called SVDC and saves the full segment register descriptor cache to memory.

0f 79 is RSDC, the reverse operation. 7a,7b,7c,7d do the same with the LDTR and TR respectively."

Edited by R. Belmont (08/17/13 05:02 AM)



Anonymous
Unregistered
Send PM


Re: pinball2k new [Re: peter ferrie]
#313042 - 08/17/13 02:23 PM


> It's not a banking problem.
> The behavior looks identical to the issue with Savage Quest, which was definitely an
> incomplete BIOS.
> However, in this case, it's that the BIOS is moving a block of memory out of the way
> for a while, and then not putting it back before attempting to call it. I suppose
> that one of the ports is not returning the expected value.

IIRC Savage Quest still has a "banking problem", which is why the top of the screen gets corrupted. It's because the video ram area can be mapped either to the graphics card or to some internal ram that can be accessed across the network, so you can remote control the BIOS screens etc.

There are serious deficiencies in all of the PC emulation in MAME/MESS, that need some serious core work (slots especially need an overhaul for it to ever work right).

Edited by smf (08/17/13 02:25 PM)



peter ferrie
MAME Fan
Reged: 10/06/10
Posts: 46
Send PM


Re: pinball2k new [Re: R. Belmont]
#313071 - 08/18/13 06:53 AM


> Quoting Carl:
>
> "0f 78 is a mediagx smm opcode. It's described on page 92 of this real mediagx doc at
> http://www.da-cha.jp/files/gxmdb_v20.pdf FWIW, it's called SVDC and saves the full
> segment register descriptor cache to memory.
>
> 0f 79 is RSDC, the reverse operation. 7a,7b,7c,7d do the same with the LDTR and TR
> respectively."

Thanks, that's helpful to know.


Pages: 1

MAMEWorld >> EmuChat
View all threads Index   Threaded Mode Threaded  

Extra information Permissions
Moderator:  Robbbert, Tafoid 
0 registered and 144 anonymous users are browsing this forum.
You cannot start new topics
You cannot reply to topics
HTML is enabled
UBBCode is enabled
Thread views: 1425