- use tms rom clock as sense input for the s2650. darkwar now speaks again on startup.
- only one latch used for sound & speech.
- hooked up 393Hz signal to "dac3"
- pcb pictures indicate discrete logic on the sound board. Marked all games as GAME_IMPERFECT_SOUND since we seem to miss some sounds.
- 4bit dac remains mysterious
(Off the record)
I verified this thing against IDA Pro's 56156 disassembler and the docs.
Every time I found a bug in IDA's disassembler, I cross-referenced the
manual. There remain 3 opcodes which are questionably disassembled,
since even the manual is ambiguous on the details, but beyond that,
this thing should be 100% correct.
Whew. This might have actually fleshed out a bug in the
disassembly/execution. Time will tell...
CVS:
- hook up speech cpu
- get rid of "temporary" code which hardwire ctl & pdc writes
tms5110:
- Implement ctl port input/output for status reads.
- Input/output is switched by clocking pdc after a TALK STATUS command.
- update drivers to support new tms5110_ctl_r
Not worth mentioning, I think. NSS bios does not need update, so it's a minor change for MAME (but necessary for the possible legal issues of including those bits in the source)
This system is based on a custom CPU. Graphics are decoded but only 2 bitplanes hooked.
All the needed devices are in the driver, but commented out till can properly decrypt the program ROMs and identify the CPU.
About the encryption scheme, see the driver notes about my findings.
New games marked as GAME_NOT_WORKING
------------------------------------
Amatic Unknown Slots Game [Roberto Fresca, Team Europe]
Multi Game I (V.Ger 2.4) [Roberto Fresca, Team Europe]
Multi Game III (V.Ger 3.5) [Roberto Fresca, Team Europe]
* Hooked up protection for Power Stone 2 and Toy Fighter [R. Belmont, Guru, Cah4e3]
* Redumped bad rom in Heavy Metal Geomatrix [Guru]
* Redumped bad roms in Virtua Fighter 4 (cartridge version) [Guru]
New games marked as GAME_NOT_WORKING
------------------------------------
Net Select Keiba Victory Furlong [Guru]
Salary Man Kintarou [Guru]
-----------
I tend to agree if they've regressed, we should leave them marked working and accept bug reports on them.
-----------
After a chat with Tafoid, I'm unsure about whether or not I should have demoted kazan and dirtfoxj, as these games worked fine before, and broke due to a bug somewhere. What's the policy on the 'not working' flag? Does it only apply to games that were always broken since the 1st day it was submitted? This can also be important regarding mametesters bugs: reports on non-working games are not accepted.
Corrected one rom name in the 2 player Asia version
Added clones per driver standard (ie: corrected rom names for the Euro x-men set)
Changed the Asia set name to "xmen2pa" for a more unified naming convention
New Clones Added
--------------------------------
Undercover Cops (US) [Corrado Tomaselli]
X-Men (2 Players ver EAA) [Corrado Tomaselli]
> Sent: Monday, September 07, 2009 8:08 PM
> To: submit@mamedev.org
> Cc: atariace@hotmail.com
> Subject: [patch] const/static/include fixes
>
> Hi mamedev,
>
> A result of some code auditing, this patch adds missing static and
> const qualifiers, and fixes up some header files.
>
> ~aa
> Sent: Wednesday, September 09, 2009 10:32 PM
> To: submit@mamedev.org
> Subject: cheat update
>
> Simple update for add "increase or equal" and "decrease or equal" in
> cheatnext conditions
[Sandro Ronco]
This fix mantis 03433: Jolly Card, Royal Card, Lucky Lady, Royal Vegas sets (and others)...: All games that need NVRAM initialized aren't working anymore.
* Discovered and documented new features in Jolly Card (Evona Electronics).
* Removed the commented hack for joly980 driver init since is not needed anymore.
* Fixed a bug introduced with the massive input change, that didn't allow initialize
all sets that need the normal procedure to do it.
* Updated technical notes.
so this code will crash if machine == NULL and the keycode was not a built in
keycode. Changing this so that it will gracefully fail if machine == NULL
- Emulated Atomiswave coin slots and standard Dreamcast controller.
Non-lightgun games without other problems are now playable. [R. Belmont]
- Added protection data to Moero Justice Gakuen, Heavy Metal Geomatrix,
WWF Royal Rumble, Gigawing 2, Toy Fighter, and Guilty Gear X (all are now
playable but still marked GAME_NOT_WORKING due to general Naomi concerns).
[R. Belmont, Guru, Deunan Knute, Cah4e3]
- Completed partial dumps: Derby Owners Club II, Slashout, WWF
Royal Rumble, Gigawing 2, Moero Justice Gakuen, Wild Riders, Virtua Fighter 4
(cartridge) [Guru]
New games marked as GAME_NOT_WORKING
------------------------------------
The House of the Dead 2 [Guru]
Super Major League '99 [Guru]
Gun Survivor 2: Bio Hazard Code Veronica [Guru]
Club Kart: European Session [Guru]
The King of Fighters Neowave [R. Belmont, Guru]
Neo Geo Battle Coliseum [R. Belmont, Guru]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Dolphin Blue [R. Belmont, Guru]
The Rumble Fish [R. Belmont, Guru]
Knights of Valour: The Seven Spirits [R. Belmont, Guru]
> Sent: Sunday, September 06, 2009 7:25 AM
> To: submit@mamedev.org
> Cc: atariace@hotmail.com
> Subject: [patch] Deglobalize input.c
>
> Hi mamedev,
>
> These patches deglobalize input.c. The first adds running_machine to
> some driver apis. The (large) second patch adds the machine parameter
> to the most input_code_pressed apis (generated by script, not
> compilable). The last patch then actually changes those apis and
> others to take running_machine, and adds struct _input_private to hold
> the input state variables.
>
> ~aa
> Sent: Saturday, September 05, 2009 2:11 PM
> To: submit@mamedev.org
> Subject: I386: fix loop instructions when address_size is 16-bit
>
> Original code always assume address_size to be 32-bit
> The patch will use the correct size based on the status of the
> address_size flag.
>
> Sent: Friday, September 04, 2009 1:47 AM
> To: Aaron Giles
> Subject: Master Ninja
>
> this adds the basics of the 'Master Ninja' bootleg
>
> new clones
> -----------
>
> Master Ninja (bootleg of Ninja Gaiden) [f205v, David Haywood] (NOT
> WORKING)
>
> it needs work on the sprites and sound which are different to the
> original.
Sent: Thursday, September 03, 2009 12:25 PM
To: Mamedev Submission
Subject: Black Touch '96 improvements
I'm sending the complete file this time. Unzip it after applying the previous update.
It improves the sprite emulation (still wrong tho) Seems Seta/Taitoish
Sent: Thursday, September 03, 2009 4:50 AM
To: Mamedev Submission
Subject: gfxdecode fixes
This fixes the plane order in the gfx deodes for Black Touch '96 sprites, and Poke Champ sprites.
The Poke Champ backgrounds make absolutely no sense to me tho, it seems impossible to get the
colours in palette ram to align with the planes of the tile data, see the Korean flag ingame with
the obvious R/B colours in the palette which can't be achieved through any combination of order swapping.
Sent: Tuesday, September 01, 2009 12:05 PM
To: Aaron Giles
Subject: Little Robin debug code
I've added some verbose debug logging to the little robin 'vdp' writes,
which might come in handy.
I plan on looking at this further, but would rather check in these
changes as they give a clearer picture of what's happening with the VDP
which may help determine when it writes data, what modes it attempts to
set, and therefore allow more educated guesses at the expected behavior.
I can't imagine it will actually be too hard to get working, we're just
missing some key piece of information right now.
Sent: Tuesday, September 01, 2009 12:50 AM
To: submit@mamedev.org
Subject: Source diff
Here's a fix to get vandykeb up and running.
Please credit iq_132 . Thanks in advance. :)
> Sent: Sunday, 30 August 2009 20:58
> To: Aaron Giles
> Subject: mame update submission
>
>
> Hi Aaron,
>
> I meant to submit this before u3 came out but just been too busy with
> real
> life.
>
> So, I'll send it now before it gets overwritten again.. it doesn't
> appear to
> cause any problem in cojag but maybe you should do a quick check just
> to
> make sure..
>
> The changes (which are only for MESS): [Robbbert]
> - Added RGB 24-bit pixels (for Iron Soldier)
> - Added depth 0 and 1 to scaled bitmaps (for Val Disere Skiing)
> - Preliminary work on PIT support
>
> The files go into src/mame/video
>
> Thanks,
> - Robert
Basically the region array is processed, and the data from the accumulation
buffer where we render is now copied into the framebuffer depending on the
tiles specified in the tile list. This isn't full 'tile-based rendering' as
that would require more work on the preprocessing side, and writing out the
data pointers and data in real formats, however it's a step in the right
direction.
Currently only 565 formats are supported for both framebuffer write and
framebuffer read. The accumulation buffer is alwys 8888, data is converted
down to the specified format. The real accumulation buffer is 32x32 and
filled per tile, ours is still full screen.
The video update now just displays the framebuffer using the framebuffer read
parameters specified (again only 565 is currently supported) This allows the
Atomiswave bios screens and the rendered output to co-exist.
- Added mask ROMs for Mr. Driller 2 + clone program
New games marked as GAME_NOT_WORKING
------------------------------------
Mr. Driller 2 (DR22 Ver.A)
- added DISCRETE_START and DISCRETE_STOP functions to be called at device start/stop
- used these to move log code in disc_sys.c
- As a side effect, profiling measures log overhead as well
* Added 2 new Witch Card sets.
* Reworked inputs for Witch Card (german set 1).
* Created new inputs for Witch Card (english, witch game, lamps).
* Added and connected lamps for both sets.
* Added minimal bet and 50/60 Hz. switches to both sets.
* Added DIP switches info for Witch Card (german, set 2).
New clones added
----------------
Witch Card (english, witch game, lamps) [Roberto Fresca, Team Europe]
New games marked as GAME_NOT_WORKING
------------------------------------
Witch Card (german, set 2) [Roberto Fresca, Team Europe]
Added DISCRETE_INPUT_BUFFER to use a stream to buffer an input node.
For input nodes with a lot of writes this prevents a stream_update
on the whole discrete module which is very ineffective. Instead,
the data is buffered and the discrete emulation can process a lot
of samples in one go later.
Updated dkong.c to use this instead of using the DAC device.
This change requires a recompile of all files referencing the discrete
system. A "rm `grep -rl discrete obj/`" should do the trick (at least
on .+nix)
Comments:
I did this largely due to the difficulty in running regression testing - scanning the text as it flows to the screen has been becoming increasingly annoying, mostly due to excessive amount of specifc printf's used in some instances. Putting them into LOGERROR keeps them available and makes them transparent to the normal end user. As for the files, if a driver is not in active development (it's been over a year on Raiden/Seibu - High Seas Havoc almost 3 years), they shouldn't need to output files.
- Corrected ROM loading behavior for SuperFX games
- Added more ROM mirroring needed by certain SuperFX 2 games
- Corrected the behavior of certain bit-restricted SuperFX registers. Doom, Yoshi's Island, Dirt Trax FX and Voxel Demo show things now.
- Improved S-DD1 emulation, neither game using S-DD1 boots yet
Fixed a register naming issue in the MIPS core [Harmony]
Numerous SuperFX updates: [Harmony]
- Hooked up RAM and ROM buffering
- Inlined several more functions
- Removed debug spew
- Added the ability to define an external IRQ line callback, and hooked it up to the 65C816
- Fixed flag calculation for HIB opcode
- Hooked SuperFX chip up to the SNES machine driver
and then keep searching the searchpath for the next valid file. Did some
internal rearranging in fileio.c to make this work.
Changed cheat search so that it loads *all* cheat files in all search
paths. Note that it is easy to end up with duplicate entries this way.
Some currently disabled code is present which filters out duplicates,
but the logic for doing this is quite unclear with the presence of
text-only cheats, which is why the code is disabled for now.
> Sent: Sunday, August 30, 2009 6:00 PM
> To: submit@mamedev.org
> Cc: upstephh_wip@yahoo.com
> Subject: Added display of cheat comments
>
> Hi
>
> One more cheat engine related change. This diff was made against u3
> with the last two diffs I sent
> already applied.
>
> This patch reintroduces the display of the individual cheat comments,
> in the old cheat engine this
> worked by showing SET,ON or OFF in reverse video to show there was a
> comment available which could
> be displayed by pressing Shift + Enter. I've done things slightly
> different though as I've added a
> display comment key of SPACE along with a different way of showing that
> a comment is available.
>
> It now works automatically as soon as you move over a cheat with a
> comment it uses popmessage to
> display the comment. As soon as you move or press any key (other than
> space) it nulls the
> popmessage, and by pressing space it will redisplay the comment which
> is handy if the comment is a
> lengthy one.
>
> To see it in action look at the bottom two cheats in mslug (or any
> neogeo game for that matter).
>
> Martin 'Pugsy' Pugh
>
>
> MAME Cheat File Maintainer http://mamecheat.co.uk
> Gamebase64 Team Member http://www.gamebase64.com
>
Sent: Friday, August 28, 2009 5:20 PM
To: submit@mamedev.org
Cc: upstephh_wip@yahoo.com
Subject: Add 'Reload All' to cheat menus
Hi
This update I made against u3 with the last diff I sent already applied. What this does is to add a
'Reload All' option to the cheat menus. This allows you to edit/replace the XMLs and see the changes
quickly, without this patch you have to exit and restart MAME to see any cheat file changes.
Martin 'Pugsy' Pugh
MAME Cheat File Maintainer http://mamecheat.co.uk
Gamebase64 Team Member http://www.gamebase64.com
Sent: Wednesday, August 26, 2009 5:57 AM
To: submit@mamedev.org
Subject: MAME cheat search engine
This is a diff of my cheat search engine with help of Pugsy.
This is only a first part, not has the same functions of the old search engine, but is better than nothing
I have update the search engine to support search of byte, word, dword
and qword signed and unsigned.
* Routed the whole video RAM access through PPI-2.
(bypassed the handshake lines for now).
* Merged back the noraut machine drivers after the 3rd PPI connection.
* Added Low Level Hopper manual input.
* Added a new machine driver for extended hardware.
It has 2 jumpers that cut the a14 and a15 addressing lines.
* Added Game 7.4 (Gaming Poker, W.Export).
* Added Game 7.4 proper inputs. Game is now playable with full sound.
* Updated games list and technical notes.
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Cal Omega - Game 7.4 (Gaming Poker, W.Export) [Roberto Fresca, Team Europe]
- Inlined a number of functions for possible speed increase
- Removed some memory buffering cruft, to be re-added later
- Fixed behavior of ASR opcode
- With additional MESS-side changes, Stunt Race FX is playable, and Vortex shows much more.
- No more iterations
- The CD4066 internal resistance largely determines sound amplitude. This may vary significantly depending on VCC and type (74HC, 74HCV, CD4066, ...). The current choice makes scramble sound "about right".
As long as I changed the Midway Y-Unit driver I might as well add the outside submission of Narc rev 2.00
New Clones Added
----------------
Narc (Rev 2.0) [Volker Hann, Team Europe]
Adds the Y-Unit version of the Turbo Ninja hack.
Renames the T-Unit to mktturbo and the new clone to mkyturbo
New Clone Added
--------------------------------
Mortal Kombat (Turbo 3.1 09/09/93, hack) [Jonathan Hughes, Patrick McCarron]
There are still sound issues, some of the music doesn't play, eg.
the VS. screen music
( see http://www.youtube.com/watch?v=lz4gY9d7uxw )
as noted in the driver, the green garbage on that screen doesn't happen on the real pcb, it's probably an encoding artifact.
Phil, can you look at the music?
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Shogun Warriors / Fujiyama Buster [David Haywood, Tomasz Slanina, Luca Elia]
- use SOUND_DAC device to "buffer" data and avoid 1 sample updates for discrete part
- this is related to "03401: circusc and clones: Slowdown in attract mode with DIP SW "Demo Sounds=ON"" though I do not consider it a bug, but a implementation optimization.
(hopefully this will make finding a relationship between the tables and the 'finalblock' of data easier)
Added redumped u6 GFX rom, fixes Geisya and Sumo [Guru]
(u5 still needs to be redumped, it has the graphics for the final 2 bosses in it, Phil indicated that the sample roms may also need redumping but I haven't checked myself, this could be problematic because the Japanese version uses some different sample roms, but I'm hoping those ones were eproms, not mask ones and are already ok)
- Fixed disassembly of LMULT/FMULT ops
- Fixed reads using LDW/LDB
- Fixed writes using STW/STB
- Fixed SBC carry behavior
- Fixed GETC ROM access behavior
- Some SuperFX games begin to show things in MESS
Extracted tables required for Shogun Warriors to work [Tomasz Slanina]
Decrypted + verified table data for Shogun Warriors [David Haywood]
Marked 2 graphic roms in Shogun Warriors as BAD_DUMP [David Haywood]
Temporarily added a hack to the collision function to only use the B.Rap Boys code if the game is B.Rap Boys until we have a single function that works with both [David Haywood]
- Indirect addressing was not taking into account special purpose memory mapped locations.
- 'iorlw' instruction was saving the result to memory instead of the W register.
- 'tris' instruction no longer modifies Port-C on PIC models that do not have Port-C implemented.
Also added difficulty DIP to BigTwin
> -----Original Message-----
> From: Gabriele Gorla [mailto:gorlik@penguintown.net]
> Sent: Saturday, August 29, 2009 5:39 AM
> To: submit@mamedev.org
> Cc: Gabriele Gorla
> Subject: Re: i386: fix carry/borrow flag in ADC/SBB
>
> > the original code implements ADC and SBB as 2 consecutive ADDs.
> > This will not produce the correct result when the carry is generated
> by
> > the first addition as it is overwritten by the second operation.
>
> updated patch, fixes a typo.
Compiling src/mame/video/stvvdp2.c...
src/mame/video/stvvdp2.c: In function 'stv_vdp2_draw_rotation_screen':
src/mame/video/stvvdp2.c:4752: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
mingw32-make: *** [obj/windows/mamed/mame/video/stvvdp2.o] Error 1
* Corrected CPU clock to Xtal/8.
* Discovered 3 new I/O lines coming from PPI-2, PC0-PC2. They are mixed with the handshake ones.
* Added the READOUT button to noraut12 games.
* Splitted the main machine driver to cover 2 different Noraut systems.
* Added partial support for PPI-2, PC0-PC2 output lines on noraut11 games.
* Figured out other remaining I/O lines.
* Added new handlers to simulate the handshake lines. Still need real support through PPI-2.
* Updated technical notes.
Hi mamedev,
This patch continues deglobalifying the MAME core, this time targeting
sound.c. The first two patches adds running_machine to apis in
sound.h that lack it (the first patch is generated by the perl script,
the second patch fixes some cases it didn't handle well). The last
patch then removes the globals in the traditional way.
~aa
Date: Sun, 23 Aug 2009 10:09:43
To: submit@mamedev.org<submit@mamedev.org>
Subject: Clones
Found some ROM dumps on the internet that MAME didn't recognize.
kchampa - Karate Champ (US, set 2) - kchamp.c (renamed Karate Champ
(US) to Karate Champ (US, set 1))
strongx - Strong X (Strategy X bootleg) - scobra.c
The bprom for Royal Card Pro v2.0 was verified correct as the current driver listed. Originally the bprom wasn't dumped and one was used from another set.
(NOTE: Apologies if this ruins your previous cleaning, Aaron. The previous machine/kaneko16.c I posted just minutes before you made the version snap didn't have the Shogun improvements).
* Fixed the coin counters.
* Documented all the output ports.
* Added a scheme with descriptions for every existent port.
* Added full lamps support to naroutp, naroutjp, naroutrh and naroutpn.
* Created lamps layouts for 11 and 12-lamps scheme.
* Rerouted some inputs to mantain the inputs layout.
* Renamed some inputs to match the text with the real cab buttons.
* Removed the imperfect colors flag from the existent sets.
* Added 2 different control panel layouts to the source.
* Updated technical notes.
- some more "list-ification"
- No more constraints on number of input and output nodes
- input nodes now make use of a context
Some of these changes are needed to introduce "internally buffered" input nodes going forward. These will use an internal stream to buffer all inputs so that stream_update will always calculate 20ms of samples.
- Disabled RAM/ROM clocking, going with instant transfer for now
- Understood and re-enabled pipelined instruction architecture, Star Fox runs farther
- Fixed a ridiculous typo in ROL instruction
- Corrected carry flag behavior in ROL opcode
- Corrected BRA target address calculation (maybe still wrong)
- Corrected LOOP target address calculation
- Made sure that FROM sets cpustate->sreg_idx
- Redumped GFX Roms [Guru]
- Added hitbox simulation based on suprnova / game requirements [Tomasz Slanina]
- Converted MCU writes to use write_byte [David Haywood]
- Added kludge to reset MCU data write address to prevent game from running out of ram and crashing [David Haywood]
- Added DSWs [David Haywood]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
B.Rap Boys / B.Rap Boys Special [David Haywood, Tomasz Slanina, Luca Elia]
Corrected one rom name for Mega Touch 6 set
Added dip port locations
Corrected dips for the 2 Pit Boss Megastar sets
Improved the dips for Pit Boss Supertouch 30
Minor information / documentation updates
* Executed a trojan on 2 noraut systems to confirm the way 16x32 tiles are decoded.
* Fixed the x-offset for 32x32 tiles lines.
* Fixed the screen aspect and visible area.
* Confirmed correct colors. No bipolar PROM involved.
* Added Noraut Joker Poker hardware and PCB layouts.
* Documented the discrete audio circuitry. Added a full diagram.
The following driver updates: [Brian Troha]
Corrected rom names for the Megastar & Supertouch 30
Added missing rom to Supertouch 30 and verified old bad_dumps
Added documentation about the Megastar sets
Made pbst30b a clone of pbst30 and added program versions to the name, IE: Pit Boss Supertouch 30 (9234-10-01)
New Clone Added
-------------------------
Pit Boss Megastar (9244-00-01) [Brian Troha, Dumping Union]
Introduced DISCRETE_TASK_START, DISCRETE_TASK_END
DISCRETE_TASK_START
- Start a new task. A task is a set of nodes which only depend on input nodes and nodes in the set
DISCRETE_TASK_END(task_output_node)
- Marks the end of the task. task_output_node is the node whose output over time should be preserved. This node can be accessed by nodes in the main thread.
Order of execution:
a) All tasks in parallel
b) All nodes not part of a task. These may only refer to nodes listed in DISCRETE_TASK_END
Illustrated the concept in the dkong discrete emulation. This also has been enhanced to buffer DAC output.
Further changes:
- DISCRETE_OUTPUT now is a stepping node.
- DISCRETE_STREAM_INPUT now advances input pointer in step.
- More linked_list usage.
I estimate that the rework without tasks leads to a 5% performance gain. For dkong, the usage of tasks adds another 15%.
There are some features missing:
- Multiple nodes in DISCRETE_TASK_END
- More task consistency checks
- Task identifiers for tasks
Decoded all protection data for B.Rap Boys [David Haywood, Tomasz Slanina]
Cleaned up decryption function for B.Rap Boys external Rom [David Haywood]
Improved video emulation for B.Rap Boys [David Haywood]
Marked several GFX roms as bad on B.Rap Boys [David Haywood]
Improved protection simulation logic w/regards to writeback addresses, allowing B.Rap Boys to boot [Tomasz Slanina]
http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=199853&page=0&view=expanded&sb=5&o=&fpart=1&vc=1
I don't know this z80 emulator well enough to look into his first two points. Juergen?
1/ In the cc_xy[] table which lists instructions with DD or FD prefixes, "illegal" combos are returning 4 cycles when they should return 4 + cc_op (the normal instruction being executed). Another way to handle this correctly is to call EXEC(z80,fd,xx) or EXEC(z80,dd,xx) instead of op_xx(z80) when such pair of opcode is detected, to be sure the correct amount of cycles is used.
2/ According to Sean Young, R register is NOT incremented when chaining multiple DD or FD prefixes: [...]
This one was already fixed, dunno when:
2/ In the cc_ed[] table, INI (ED A2) and IND (ED AA) should return 16 cycles, like other instructions from this group, not 12. This seems to be a typo error.
Not working (100% correctly) like all games in the Mega-Tech Mega-Play driver
New Game Added
-------------------------------------
Great Football [Kevin Eshbach, Charles MacDonald, Smitdogg, Dumping Union]