I cleaned up the Machine usage in the osd/windows files and added the
running_machine parameter where possible.
I didn't add it to osd_wait_for_debugger() yet, but I would make
sense to have it.
Subject: change for cpunum_set_irq_callback() callback function
This patch adds the running_machine* parameter to the function passed
into cpunum_set_irq_callback() and adds the IRQ_CALLBACK macro for
the callback function.
Subject: Update for "Euro League (bootleg)"
Hello,
some tiny updates for the driver wc90b.c :
-Added dumps for all GALs on the PCB
-Removed the second YM2203, it isn't present on the bootleg boards
-Changed the clocks according to the oscilators found on the board,
the previous speeds were measured on a goal92 PCB, not using a real "Euro League" PCB.
-Added a new osc to xtal.h
If you need any info about this update, please mail me.
Regards: ClawGrip (Tomas Garcia-Meras)
--
Also merged memory maps [Aaron Giles]
only remaining form is the one that takes a pointer parameter.
Added macros for STATE_PRESAVE and STATE_POSTLOAD to define common
functions. Added machine parameter to these functions.
Updated all drivers and CPU/sound cores to use the new macros
and consolidate on the single function type. As a result pushed
the machine parameter through a few initialization stacks.
Removed unnecessary postload callbacks which only marked all tiles
dirty, since this is done automatically by the tilemap engine.
Subject: bugfix to 1673 on MT
Enclosed please find a patch which fixes bug 1673 in MT. in 123u4 a few
machine parameter where added to the routines drawing bg and fg, but all
of them where moved to use the _fg function. putting _bg where they were
in 123u3 fixes the bug
Subject: some dips
dips.diff adds tags and locations to dips for marvins.c and matmania.c
(also adding a couple of corrections in names and default settings,
explained in short notes added to the drivers)
trace through in a debug build, yet should operate the same as before.
Created a complete set of functions for all databus sizes (8,16,32,64) and
all endiannesses. A few functions are redundant, but it is now very clear
which functions to use in which scenarios. It is also now possible to rely
on being able to access values of 8, 16, 32 or 64 bits via the built-in
accessors without fear of crashing.
Updated all cores using 8-bit handlers to explicitly call the 8-bit handlers
with the appropriate endianness.
Fixed a few games which were calling n-bit handlers directly to use the
generic forms. In the future, this is all the access drivers will have.
Checked inputs for all games but 'survival' (Dip Switches still need to be done), so now cocktail mode is correctly supported by 'pleiads' and its clones.
Renamed sets :
- falcona -> falconz
- vautour2 -> vautourz
fixed reading from SXYP
fixed reading from IRGB
fixed writing to LZCR
fixed sign extension of GTE control registers
fixed writing to FLAG
New games added or promoted from NOT_WORKING status
---------------------------------------------------
1 on 1 Government (JAPAN)
1) sprite offset are now correct
2) split spriteram in two parts
3) identified last sprite for the two parts
4) promoted to "working" (no sound)
for pallavol:
1) fix for sprite's y-coordinate
2) implement lookup table for convert sprite code in the real code
3) change the name to "1991 Spikes (Italian bootleg) (see the snapshot)
4) fix scroll
5) fix offset
Added ability to test the instruction/data cache ram. The scratchpad and BIU register are now handled internally to the CPU.
All writes are performed with masks. SWL/SWR used to be implemented with two writes ( one byte and one word ) when writing three bytes, now it only ever performs one. Byte and Word writes use masks as they leave the rest of the register on the bus, which can be picked up by larger registers.
The read/write functions to use are cached when the SR bits are updated, as are the bad address masks.
Added coprocessor 1 & 3 support, though they don't do anything useful.
All loads now go through the delay pipeline, a lwl/lwr will grab the value out of the pipeline if it's updating the same register.
Added undocumented behaviour of BLEZ/BGTZ. The comparison for zero can be changed by specifying an alternate register in the RT field ( the documentation says you should always use register 0 ).
Restricted to 16 COP0 registers & generate an exception if any of the 5 for the MMU are used.
Added BCF/BCT instructions, although I have found no conditions that affect them yet.
Generates an exception if any MMU instructions are executed.
Sets the CE instruction for all exceptions, not just those involving a coprocessor. The bits of the opcode that specify the coprocessor are grabbed no matter what the instruction.
Added TAR register and BT bit in SR. When an exception occurs during a branch, BT determines whether it was taken or not. The TAR register gets set to the destination of the branch.
Fixed the BD bit when you are in a branch delay slot and you didn't take the branch, this shows up in the pipeline as !pc.
Fixed branches within a branch delay slot.
Multiply & divide instructions can be aborted if you write to HI/LO before reading the result.
Added data breakpoints, you don't appear to be able to set breakpoints on any of the addresses internal to the CPU.
Multiply/divide/GTE instructions can execute when an exception is taken, although the EPC indicates that it hasn't. The BIOS avoids rerunning GTE instructions as they are destructive, so you have to make sure they run.
Added bus error handling, PSXCPU is limited to 8mb of ram & any access outside this range will trigger an exception. I believe this is to be an internal limit.
Added CXD8611R as a specific CPU type, System 12 appears to allow more than 8mb of ram & it's possible that this is different.
Mapped out all instructions to either generate an exception or ignore bits.
Updated the disassembler to match the decoding.
Fixed disassembling of branch instructions in a branch delay slot.
Lui checks for a ori/addiu following and will show you the result.
Added step over/out support.
Fixed standalone disassembler.