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.
Note that this is a significan change and some new bugs might be caused by it. Unlikely previous bugs, where extra garbage tiles would appear in the games, the new bugs would be tiles or sprites MISSING--so they will be harder to notice. This would happen because in some cases the 16x16 regions of the gfx ROMs can be used by both scroll2 and sprites, while in other cases they must be separated.
Rewrote INP recording from scratch, since all old INPs are broken anyways.
Header now includes timestamp, which overrides the default time base for MAME's system time.
Each frame recorded now gets a timestamp.
Analog ports are recorded once per frame and interpolated.
Analog port calculations are all done in fixed point for consistent results.
A bunch of other minor tweaks in the input port code.
There may still be a few changes to the final INP format (considering adding
NVRAM data directly in the INP file, for example....) but this at least seems
to work for the games I've tried.
All custom itemids were mapped to class SWITCH. With the recent modification, this implicitly changed to ABSOLUTE.
This fix will use the passed itemid to determine the class.
Subject: patch for state save in buggybjr
Here's a little patch for initial support of state saving in buggybjr.
(It'll help with tx1 and buggyboy too, but they are non-working)
All I did was get rid of the "anonymous" (temporary) timer that was
preventing saving, and replace it with a "permanent" timer. I didn't go
looking for data which might need to be saved.
Subject: pit8253 device
I have converted the pit8253 implementation into a device. To make it
easier to use I've also created a src/emu/devconv.h in the same style
as src/emu/memconv.h.
I do not have all roms/disk images to test all drivers. I have only
been able to test pf2012, filetto, and topgunnr.
Subject: some fix for aerfboot (bootleg of aerofgt)
this fix:
1) spriteram3 (previous value was too high and in the "city" level some build disappear
2) sprite gfx bank (previously some sprite appear right and some sprite was wrong)
3) the zoom is a litlle bit better
4) i have removed multisprite support; in the bootleg aren't present
the remaining problem is "not draw some sprite"; maybe there's a mark in some place
in the code i add, in a comment //, a way to avoid the draw of the sprite (searching a 0000 0000 0000 0000 sprite); this way works quite good but not perfectly (some time too many sprite are in the screen); maybe there's a value indicating the #number of sprite to draw (from the end to spriteram3 to start)
--
From: roberto zandona
Subject: addendum (aerfboot)
this fix perfectly the sprite zoom
Subject: a little fix
a little update: this fix priorities in mermaid and rougien and a sprite bug:
when a sprite have x coordinate >= 0xf0 the value is negative
this fix the sprite bug
+ if (sx >= 0xf0) sx -= 256;
If seems to break Varth, hower, and has dubious effects on the boot sscreens of avsp, sfa3 and possibly other CPS2 games.
01542: 3wonders, 3wonderu, wonder3: Wrong colour of background in game selection and start screens
00410: xmcota: After a couple passes through the demo mode, the background on the qsound screen will go to a shade of green.
Subject: patch for mermaid
proper implentation of hardware collision (first implentation was incomplete)
this fix mermaid (when the player is in the water with the sharks) and rougien (Mantis 01652)
Subject: pcshare patch for mess
Another patch to machine/pcshare; this patch allows the MESS machines
to choose whether the RDY pin of the nec765 floppy controller is
connected or not.
Last weekend's pcshare keyboard was almost correct, it caused some
stuck shift key situations in MESS. This patch fixes that.
Removed a lot of MESS specific code from the machine/pcshare code.
Subject: Further ACIA changes
Added dynamic control of RX and TX pins to 6850 ACIA emulation - this is
needed for correct operation of the MPU4 Video communications system,
and may be handy for some MESS systems. To use, set the rx and tx clocks
to 0 in the acia interface, then use acia_tx_clock_in() and
acia_rx_clock_in() respectively.
Subject: Internal LAY File - Armor Attack
This is becoming kind of fun. Here's an internal LAY file for Armor Attack.
Re-created the overlay using just rectangles.
And finally got to use flipx and flipy for the first time (main reason I did it).
Subject: small change for MESS cleanup
This adds the "Machine" parameter to a MESS function call in MAME
code to go along with Machine -> machine ckeanups in MESS
Subject: Machine -> machine cleanups
This patch changes "Machine" to "machine", when the runnin-machine
parameter is already available. In some cases I could even remove the
dprecat.h.
I will look for some occurances where it can be easily changed and
afterward take a step at adding the running_machine parameter in a
few places.
Subject: rygar clocks
Corrected clocks on Rygar.
Concerning the 400khz resonator, it's genuine, not resoldered even if
schematics shows a 384khz resonator.
Another Rygar from a friend of mine has a 400khz resonator so it's
possible Tecmo had a stock of those resonators to use in change of the
384khz ones.
* Fix timing of stream_update in discrete_sound_w
All sound cores update before processing changed data
* Add streeam_update to discrete_sound_r
* Now supports multiple output nodes per module.
There is the possibility to support multiple outputs per module.
In this case, NODE_XXX is the default output. Alternative outputs may
be accessed by using NODE_XXX_YY where 00<Y<08.
You may also access nodes with macros:
NODE_XXX = NODE_SUB(XXX, 0)
NODE_XXX = NODE(XXX)
NODE_XXX_YY = NODE_SUB(XXX, YY) with YY != 00
This should e.g. make discrete sound emulation easier
when dealing with e.g. flip flops (Q & QQ) and binary counters
* added sanity checks to check consistency issues introduced by this change
* modules specify number of outputs ==> Certain special modules (WAVELOG)
may no longer be used as input nodes
* removed explicit (NODE_XX + expr) from a couple of drivers
* Added plane priority to blitter - if anyone knows how this really works let us know!
- Fixes Treble Top signature writing
* Video output now supports all modes - lores, hires, mixedres, 8/7/4/3 bits/pixel
- Fixes Every Second Counts colour problems
* Added line draw
- Fixes missing stuff from Question Of Sport
* Change blitter loop type control - there are 4 types of loop.
* Corrected video frame rate to 50Hz.
* Corrected Z80 speed - 5.91mhz, this still might be wrong but I don't have a board to check.
* Accounted for Z80 cycles stolen during a blit operation. Improves gfx/sound sync and seems to fix the final round lockup in Every Second Counts.
A couple of random touchups for X, Y, and Z drivers as well.
Each driver is tested by watching the attract mode through and diff'ing logs.
My ISP was blocking mamedev e-mails for a couple of weeks, so I apologize if I did anything odd because of a discussion that I missed.
All occurrences of ACCESSING_LSB, ACCESSING_MSB, ACCESSING_LSB16, ACCESSING_MSB16, ACCESSING_LSB32, ACCESSING_MSB32, ACCESSING_LSW32, ACCESSING_MSW32 & simple mem_mask checks have been replace with the new macros.
The old macros are gone.
* Give us a Break [2 sets]
* Ten Up [2 sets]
Neither are playable; they don't register coins for some reason.
2. Fixed interrupt handling and 16-bit memory accessors in 6840ptm.c
Also cleaned up code for the sake of readability.
3. JPM games now have their own object archive file.
- implemented serial input/output
- fixed XAD/LDD, XIS1, RMB3 opcodes
- fixed clock divider
- fixed internal memory map size
- added some cpu variants
As a result, Draco at least initializes the AY-8910 now.
for galaxian, scramble, frogger, scobra, amidar, and dambustr.
For the moment, only a subset of games are implemented in the
new system; the remainder are running on the old code.
Main features are accurate video timing, correct stars
implementation, better organization, simplified input ports,
and many other smaller fixes. In addition, the following
MAMETesters bugs are addressed:
- 01598: [Graphics] 4in1, gmgalax, pacmanbl: Sprites are cut off on the top row
- 01563: [DIP/Input] gmgalax: Duplicated Inputs
- 00300: [Graphics] zigzag: in cocktail mode player 2 screen is shift over to the right
- 01454: [Graphics] mshuttle, mshuttlj, mshutlj2: The display of the screen is shifted
- 01473: [Graphics] orbitron: Orbitron graphics not correctly displayed
- 01600: [Graphics] pacmanbl, batman2: The background is shifted to the right and cut off on the right side
- 01602: [Misc.] luctoday: Messed up graphics. (Screen Offset)
- 01599: [Graphics] omega: Screen is vertically offset
- 01605: [Graphics] gteikokb, gteikob2: Wrong screen offset (aaron)
* itemclass now part of token if item is not found
Settings for joysticks which use a custom item id will still be lost. A fallback has to be provided here since those will use a token generated from the input item name.
Changes:
- Updated HW.c
- Tagged kotmh AES VERSION
- Tagged alpham2 MVS AND AES VERSION
- Tagged bjourney MVS AND AES VERSION
- Tagged nam1975 MVS AND AES VERSION
- Tagged tpgolf MVS AND AES VERSION
- Tagged fatfury2 MVS AND AES VERSION
- Tagged samsho2 MVS AND AES VERSION
- Tagged 3countb MVS AND AES VERSION
- Tagged tophuntr MVS VERSION
- Tagged kof96 MVS VERSION
- Tagged fatfury3 MVS AND AES VERSION
- Tagged sengokh AES VERSION
- Tagged burningf MVS VERSION
- Tagged aof MVS AND AES VERSION
- Tagged kof2003 MVS VERSION
- tophuntr/tophunta: Renamed p2
- 3countb: Changed p1, added correct m1
- fightfva: Added correct v2
- quizkof: Added correct c2
- rbff2/rbff2h/rbff2k: V4 is 16mbit only
- fatfury1: Added correct m1
- spinmast: Added correct p2
- sengokh: Renamed p1 to correct chip label
- svcpcb/svcpcba: Renamed bios to correct chip label
- ms5plus: Synced m1 with parent set
- tpgolf: Added correct m1, c3, c4; renamed v11 and v22 to correct chip label
- aof: Added correct m1
- roboarmy: Added correct m1
- roboarma: Disabled for now, this looks like an emulation hack. Can someone confirm this set is real?
- gpilotsh: Added new set
- samsho: Changed set to MVS version, removed old version, left some notes
- samshoh: Added AES version
- kof2003: Removed MVS / World /US from description
Again some m1 changes, going STRICTLY by the book now:
- nam1975: Added correct m1
- bstars2: Added correct m1
- maglord/maglordh: Added correct m1
- ridhero/ridheroh: Added correct m1
- gpilots: Removed BAD_DUMP from m1, is correct
- Some cleanups
the graphic roms are scrambled, the banking code has been patched out (and the program roms might have some protection on them too, there is a weird jump to the 0x2000 range)
also it runs on 3x M6809s instead of the usual CPUs.
Not convinced the sound roms are good dumps, they seem to small.
This bootleg needs a fairly significant chunk of time put into getting it working due to the heavy modifications. I've had several people asking me to add it, but I simply don't have time.
Subject: [patch] gcc 4.3.0 fixes
Hi mamedev,
GCC 4.3.0 was recently released, and some adjustments need to be made
to MAME to compile successfully with it. The idectrl.c change is only
needed to silence gcc's overwrite warnings, the code is correct as
written. The tx1.c change on the other hand is a bug spotted by the
stricter checks in the new compiler.
[Note only the tx1 changes were accepted]
Subject: Removal of Periodic int hack
Removed improper use of PERIODIC_INT in mpu4, to use new timer devices.
Also corrected 50Hz timer in MPU4 Video games.
Subject: fix for 01560
--
From: RansAckeR
Subject: fix for 01525
As is noted in the source: "The NMI handler just handles the "Stop Mode" dip
switch."
0xf801 is written to when the game is continued in stop mode, this should
not have been changed to watchdog_reset_w in 0.73
Off course this is all just a guess.
Subject: [bugfix] gnga: load correct graphics roms
I used to play the alternate version of Ghost'n'goblins in my arcade,
and I can remember the cross as the last weapon instead of the shield,
which on the other side, is shown in the square below the playing
ground.
In MAME that version was once known as a clone named "gngcross", which
was then renamed to "gnga" starting with 0.35rc2, and merged with
original set.
Unfortunately, rom list for the clone is wrong: it's been pasted from
original set "gng", whilst a couple of graphics roms must be loaded from
"makaimur" instead. You can see this by yourself comparing sources from
0.35rc1 and 0.35rc2.
The attached patch was obtained from SDLMAME on a Linux box, on release
0.123u6. I can't test it compiling MAME code, however this obviously
affects mainline too.
Thanks and keep up your good work!
Cheers,
Cesare Falco
(SDLMAME Ubuntu maintainer).
In drivers\seta.c, the zombraid gun input ports should be changed as
per the attached text file. The current crosshair settings work only
with the default power-on settings. The updated code works with
calibrated settings.
Subject: Unnecessary assert in video.c
The assert
assert(machine->config->devicelist != NULL);
in video.c causes the MESS mk1 driver to fail because it doesn't have
any devices - no screens and no sound devices. It works fine when the
assert is removed.
--Dirk
Removed malloc/calloc/realloc/free link-time overrides; we now
rely exclusively on compile-time overrides.
Made a few tweaks toward getting mingw-w64 working, but there
are still linker issues.
For me, the game hangs on a black screen after service mode is turned off. Even exsiting MAME and restarting doesn't fix it, so it's probably a EEPROM issue
Subject: nmk16 diff
Added Thunder Dragon (9th Jan 1992), corrected clock frequencies and
verified oki pin 7
Changed some nmk16.c romset names
Note:
The revision is not a typo, it's 6 months later than the previous one.
Subject: pitfall2
Added Pitfall2 (Flicky conversion)
you can see the pcb here:
http://www.citylan.it/pitfall2flic/PCB%20component%20side.jpg
the mobo is the same as my flicky pcb.
I also renamed Wboy4 since the dump was from my pcb and it's a 4d
warriors conversion even if sega reproduced the protection custom with a
piggyback.
I think we should rename all the sets to the proper conversions for
proper documentation
Subject: SH-4 debugger output fix
This patch fixes "garbage" (newlines) in the debugger window when
debugging the SH-4 CPU.
It also conatins a small comment fix in video/playch10.c and the
removal of some yet unused or just obsolete macros in emu/cpuint.h.
Subject: Deal 'Em phase 3
Conerted the driver to use an HD6845, as the Hitachi part was on the
PCB, while also using it to generate the VBLANK, rather than hardcoding
a value. Added the pulldown resistor to the network, and added all the
conditional inputs. Please note that on the later Cabinet Types (Ready
Steady Go-1 onwards), the 10p slot is locked out (location of the true
register for this is unknown), but the input setting is correct - you
have to use Coin 2 or higher to get money in.
a NULL list head (in which case you have an empty device list). All the
code works fine with a NULL head and returns appropriate values. Removed
changes to video_screen_count() and video_screen_first() which were added
to work around this behavior.
or not the VIDEO_UPDATE was called as a result.
Modified amiga.c to use this information so that we guarantee a call
to amiga_render_scanline() regardless of the video state.
Fixes 01521: ar_sdwr: Game hangs on title screen
Hopefully the samples can be replaced with discrete emulation in the future.
Sound board emulation is still not complete. Cymbal hit and hi-hat are missing; bassline is incorrect, and DAC output should be filtered.
Removed weird use of color table in favor of a direct palette
map. It is still a weird abuse of color, but at least it is
done internally and doesn't have the terrible slowdown behavior.
This is still WIP bug I've been working on it for sveral weeks and I want to get it out before leaving for holidays.
- Fixed Alpha 8201/830x MCU simulation.
- all hacks from the equites driver removed
- fixed equites restart position after going underground
- fixed hvolume, splndrbt 2 players
- removed hacks from exctsccr2
- fixed CPU gameplay in shougi
- Gekisou promoted to working
- added dump of Alpha 8201 MCU to games that use it (the ROM isn't used yet, HMCS44 CPU core needs to be written first)
- major cleanup of the mess in equites.c:
- many thanks to Corrado Tomaselli for precious hardware info.
- implemented bg perspective scrolling using PROMs
- fixed sprite flip & disable
- fixed bg color
- converted bg to tilemaps
- fixed fg banking
- fixed screen flip
- removed meaningless banking of player inputs
- added UI adjuster for MSM5232 frequency
- MSM5232 volume control
- fixed MSM5232 noise LFSR formula (done by Jarek Burczynski; thanks to Corrado Tomaselli for samples)
- changed MSM5232 emulator to output channels separately
- added output of SOLO channels to MSM5232 emulator.
- mametesters bugs fixed:
- 00217 splndrbt: On boot the pcb displays a clean light blu screen while in mame there is a black road.
- 00220 splndrbt: Concerning the gfx, on the pcb the background is not linear as shown in mame.
- 00223 splndrbt: On the first level when you pass the asteroid belt the star road should be light blue instead of black like mam
- fixed champbas inputs
- merged talbot with champbas, some driver clenaup
- fixed shougi inputs
- switched exctsccb to use the correct gfx ROMs (matches screenshot found in 01058 exctsccb: Exciting soccer bootleg should be placed in champbas.c.)
- fixed sprite bpp in exctscrr, removed the horrible hacks that were used to fix colors and transparency.
- fixed sound clipping in exctsccr
Crash when loading an autosave save state.
Removed excessive dirty tracking. This creates a bit more
work on each update, but gets rid of some dodgy logic.
Added typedefs for 'struct xxxx' to simply 'xxxx'.
refresh information from the device's inline_config, since this is
done before the screen devices are start. Fixes 01491: switchres
causes Exception at EIP=009413BF: ACCESS VIOLATION.
Also, fixed render_target_get_minimum_size() to return nominal values
if no screens are found.
Added DEVINFO_INT_TOKEN_BYTES, which is queried before device
startup. It should return the size of the structure that will
be hung off of device->token. It must not return 0.
Changed the core device interface to allocate and zero a block
of memory the size of DEVINFO_INT_TOKEN_BYTES before calling
device_start. The pointer to this memory is already attached
to device->token at the time device_start is called.
The primary motivation for this is to allow the device_start
function to make internal calls and pass the device_config *
around as if the object were fully constructed. Since the token
is used to indicate whether or not a device is live, this makes
the device "live" at the time device_start is called rather
than after it completes.
I applied the same fix to verifyroms. Now a status message is printed for every sample/ROM set regardless if an individual or all the sets are audited.
My fix is a bit heavy handed. The real access violation happens in update_digital_joysticks() after the comment "read all the associated ports" and before the next comment
01517: all atarigt.c drivers: Assertion
01516: all atarigx2.c drivers: Assertion
01515: all atarig42.c drivers: Assertion
01514: all cyberbal.c drivers: Assertion
Converted Centipede, as an example.
To define a scanline timer, use something like this:
MDRV_TIMER_ADD("32V", SCANLINE, generate_interrupt)
MDRV_TIMER_SCANLINE("main", 0, 16)
The first number is the first scanline the timer will fire on, the 2nd number is the increment.
So in this case, the timer will fire on 0, 16, 32, ..., 224, 240, then wrap around
because the screen is defined as 256 lines high.
The current scanline is passed to the callback in its 'param' argument
This driver is creating bitmaps in DRIVER_INIT, which is not the best practice, and in fact, it broke as machine->primary_bitmap is not initalized yet.