Subject: xml_normalize_string() bogusly escapes UTF-8
Various parts of MAME have recently been changed to support UTF-8
strings, so I thought I'd test out using a UTF-8 driver name for the
Sam Coupe driver in MESS, just to see if anything breaks. Most things
do seem to work well - the name is correctly drawn in the UI etc. One
thing that doesn't work properly is the output from -listxml: "Sam
Coupe" becomes "Sam Coupé" - each UTF-8 byte is
individually escaped, resulting in two gibberish characters instead of
the correct character.
The culprit here is xml_normalize_string() in src/lib/util/xmlfile.c -
the code converts any high-bit byte to an XML escape, which is totally
bogus for any encoding but ISO-8859-1 because XML escapes are defined
as Unicode codepoints regardless of the document encoding.
Fortunately, this is very simple to fix - in fact, it is sufficient
just to remove the escaping code and pass through the UTF-8 bytes
directly, because UTF-8 is mandated as the default encoding in the XML
standard.[1] The attached patch does this.
This should be a pretty safe change since as far as I can tell nothing
in MAME or MESS currently triggers this code (that is, the string "&#"
does not occur in the -listxml output of either). One potentially
negative effect is that the ASCII controls which are illegal in XML
(0x00-0x19 excepting line breaks and tabs) would no longer be escaped.
However, I can't imagine why you would want any in a string destined
for -listxml, so IMO that would be a problem elsewhere in the code and
having XML parsers barf on it would be desirable.
-Justin Kerk
* save state support for FD1094 chips
* improved graphics in athena
* improved sound balance in armedf
* derived refresh rate for toaplan1 games
* improved sound balance in tmnt games
* derived clocks for suprridr
* tweaked xmen visible area
* derived clocks and refresh rate in twin16 driver
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.
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