well, the fix is not that but changing them this way:
program_write_dword_32le(i960.r[I960_FP]-16, i960.PC);
program_write_dword_32le(i960.r[I960_FP]-12, i960.AC);
in take_interrupt.
It seems it came from a partial fix in the ret instruction. the manual says that PC is saved at FP-16 and AC at FP-12
it was reversed in mame, so when trying to fix it, i suppose Ernesto forgot to change the push too.
I've tested this fix and apart from having daytona working, pilot kids 2A works too (that I think has been broken for ages).
MDRV_SOUND_ADD. All sound chips must now include a tag.
Laboriously changed all existing drivers to define a
unique tag for each sound chip.
CPUs are next, but will require a more hands-on manual
process to produce reasonable tags.
properly ignore the "break into debugger" keypress and not allow
related characters to filter through. Removed some hacks related to
making that work in the past.
Changed osd_wait_for_debugger() to take a machine parameter and a
"firsttime" parameter, which is set to 1 the first time the function
is called after a break. The Windows debugger uses this to ensure
that the debugger has focus when you break into it.
I start to think that my computer was infested by a gremlin when I sent my patches for S-starting drivers... Indeed, I could have sent a not complete version of the diff for segas16b.c. In attachment, you can find a small patch which changes apoint & snapper input tags as they should be for those games to work. If these tags were already fixed in the diff I sent, please simply disregard this submission :)
Good work
Fabio
Subject: some more read_indexed removal
Hi,
enclosed please find a few patches which
* convert to use tagged inputs and handlers all drivers starting with S
* simplify input reads in system24 (removing a redundant handler)
* clean up a bit inputs in system 16 & 18 bootlegs (among the other things, now coinage and P2 inputs in fpointbl & fpointbj work again)
Note that I put ssv.c changes in a separate patch because, according to MT1959 bug, the driver could have been modified. Let me know, however, if this patch or any other fails to apply.
Once again, I spent a lot of time testing these changes (both with automated tests with -str 25 and by playing emulated sets) so I hope everything is correct.
Regards,
Fabio Priuli
--
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: fixed patch
Hi,
applying to a fresh source my recent patches I noticed that patchS09.diff got corrupted somehow before being submitted (it misses a few lines). While not terrible (each patch was as usual independent from the others), yet it's a bit annoying that part of the changes (system 16 & 18 bootlegs) would have been 'lost' :)
I attached a fixed patchS09.diff, which contains all the changes done in my previous patchS09.diff but shall now correctly apply
Sorry for the inconvenience
Fabio Priuli
--
From: Fabio Priuli [mailto:doge.fabio@gmail.com]
Subject: two more patches
Hi,
enclosed please find two patches which
* convert to use tagged inputs and handlers most drivers starting with T
* fix MT bug #2006
* remove a lot of redundant #define from taito drivers, replacing them with PORT_INCLUDEs and definitions from taitoipt.h
Hopefully, both .diff will apply with no problems despite their size. Let me know if something fails to apply and I will generate per-case .diff :)
As usual, I tested as much as I could the changes, so there shall be no regression.
Regards,
Fabio Priuli
Subject: srmp5 some work
- Removed hack in drive machine R3000
- Adjusted R3000 frequency to 25 Mhz according to speglsht (the hardware is the same)
- Adjusted visible area (but i'm not sure it's correct)
- Fix one rom loading
Bye Sonikos
Sent: Tue 7/8/2008 3:16 PM
To: submit@mamedev.org
Subject: Tinymame sumition...
Hi
I try a small update for Tinymame..
While Gaelco has offers their roms for World Rally for download on their website, they are supposed to be free...
I supposed i can add this game to tinymame.
I think i didn't make mistake implementing it (i'm not dev at all... I'm hebus on mamewold messageboard)...
If it can be accepted, my name "macareno" for signing, would be more discreet than hebus...
Attached-files are the diff file and the .exe for trying...
Richard
EEPROM data, and the size is in terms of units, not bytes. Updated all
drivers accordingly.
Changed the ROM loading code to actually alter the region flags based
on the CPU endianness and bus width when creating the region, rather
than fixing them up on the fly. This means that callers to
memory_region_flags() will get the correct results.
Changed the expression engine to use two callbacks for read/write rather
than relying on externally defined functions.
Expanded memory access support in the expression engine. Memory accesses
can now be specified as [space][num]<size>@<address>. 'space' can be
one of the following:
p = program address space of CPU #num (default)
d = data address space of CPU #num
i = I/O address space of CPU #num
o = opcode address space of CPU #num (R/W access to decrypted opcodes)
r = direct RAM space of CPU #num (always allows writes, even for ROM)
e = EEPROM index #num
c = direct REGION_CPU#num access
u = direct REGION_USER#num access
g = direct REGION_GFX#num access
s = direct REGION_SOUND#num access
The 'num' field is optional for p/d/i/o/r, where is defaults to the
current CPU, and for e, where it defaults to EEPROM #0. 'num' is required
for all region-related prefixes. Some examples:
w@curpc = word at 'curpc' in the active CPU's program address space
dd@0 = dword at 0x0 in the active CPU's data address space
r2b@100 = byte at 0x100 from a RAM/ROM region in CPU #2's program space
ew@7f = word from EEPROM address 0x7f
u2q@40 = qword from REGION_USER2, offset 0x40
The 'size' field is always required, and can be b/w/d/q for byte, word,
dword, and qword accesses.
* also fixes that the frog disappears for player 2 if moved backwards. This will
position him on x=242.
All games in this driver now have the sprites in cocktail/player 2 now offset by 2
- All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
- All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost.
- Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.
Major thanks to Aaron for his assistance with several sticky core bugs and other issues encountered writing this.