- added cycle tables and cleaned up source layout. This was done very carefully, it should be errorfree.
- removed HLT cycle eating (earlier, HLT after EI could theoretically fail)
- fixed parity flag on add/sub/cmp. Bug was caused by z80 overflow detection accidentally left in
- renamed temp register XX to official name WZ
- renamed flags from Z80 style S Z Y H X V N C to S Z X5 H X3 P V C, and fixed X5 / V flags where accidentally broken due to flag names confusion
- Fixed X/Y flags in CCF/SCF/BIT, ZEXALL is happy now
- Simplified DAA, renamed MEMPTR (3.8) to WZ (same temp register as the officially named WZ in the 8080), added TODO
the cycle fix by Marshmellow, in the 3.9 z80.c comments was already committed in june, just added there for documentation
integers. This is defined to be "I64" on MSVC and recent mingw compilers,
and "ll" for all others.
Updated all instances of 64-bit prints to use the new macro.
- Put some life into RCDISC5 enable mode. This now acts as a switch between R and C. Capacitor voltage will be preserved if disabled.
- Made galaxian use the above. Saved 2 nodes and increased accuracy.
- Added DISC_LFSR_FLAG_OUTPUT_SR_SN1 flag to shift register noise generator. This will output the value of the shift register to sub-node 1. This is needed for future bzone discrete sound emulation. BTW: RCDISC5 will be used as well.
- Left a note on RCDISC3 on what is needed to be implemented for bzone.
- Optimized the LFSR a bit. LFSRs running at high frequency (> sample_freq) should benefit.
- decodes individual bits from input values
- Updated drivers which had macro DISCRETE_BITSET (which was a bit misleading)
- This should be slightly faster than using DISCRETE_TRANSROM
- Split YM2612/3834 to a separate file to avoid disturbing other OPN chips
- SSG-EG, envelope, LFO, and CSM behavior all improved to better match
tested behavior on real YM2612 chips
Discrete sound
- removed global variable discrete_current_context
- discrete_info is now passed instead of device, we may get device by using disc_info->device
- Added DISCRETE_IMPORT(*block): imports another discrete block
- Added DISCRETE_REMOVE(node1, node2): removes a range of nodes
- Added DISCRETE_REPLACE: next node replaces existing node, thus preserving run order
- Added DISCRETE_NOP(node): does nothing, to be replaced.
- Added a prescanning stage to build final block list after execution of the above.
- The additions provide an easy way to document subtle difference between boards.
- Please see audio/galaxian.c for an example
Sent: Wednesday, August 12, 2009 4:27 PM
To: submit@mamedev.org
Subject: twin16 update
Hello,
Attached is an update for the Konami twin16 driver, see diff for details.
Functional changes:
- improved sprite status register, this fixed the rogue sprites problem in devilw
- added fround coin counters
- lowered k007232 volume
- added savestate support
- added shadows
- fixed devilw and gradius2 sprite lag
- added text layer x/y flipping
- reverted gradius2 sprite-background priority hack, this fixes severe priority problems in
devilw, but reintroduces bugs on gradius2 level 7 and ending
affected mametesters bugs:
fixed: 02267, 00191, 02553
partial, due to revert: 02523 (intro is ok again, but old priority bugs are reintroduced),
02268 (ok in-game, small priority problem in prologue)
Greets,
hap
Sent: Friday, August 07, 2009 9:33 AM
To: submit@mamedev.org
Subject: z180 daatable removed
Since I removed the daatable from i8085, and the z180 one is exactly the
same, I might as well remove that one too, see attached diff.
hap
Sent: Friday, August 07, 2009 6:45 AM
To: submit@mamedev.org
Subject: spacwalk dips and player2 support
Hello,
Attached is a diff for 0133u1 Space Walk that adds game time and coinage
DIP switches, as well as service mode and input test. DIP switches 5 and 6
are still unknown. It also adds support for the 2nd controller and
coincounter, similar to clowns. I've removed the GAME_NOT_WORKING flag, since
other than a glitch with the CPU controlled pad on the left side, the gameplay
is working fine. The fact that the middle section is inaccessible looks
deliberate: there's probably a vertical-shape object in the original artwork
the clown (astronaut in this case:P) can bump into.
Greets,
hap
Sent: Thursday, August 06, 2009 7:09 AM
To: submit@mamedev.org
Subject: i8080 daa + multiple memreads fix, gottlieb audio, looping log
Hello,
i8080_daa_multiplememreads.zip: diff for 0133u1 i8080/i8085 cpu, removing the
DAA table and fixing multiple memory reads on some opcodes (which would possibly
only trigger on memorymapped I/O), and making M_ANA(R) halfcarry calculation a
bit more straightforward. The functionality is basically the same as before.
i8080_newdaa_test.zip was used to test the new DAA implementation.
src/emu/cpu/i8085/i8085daa.h can be removed in 0.134, or is DIFF capable of
removing files completely?
Greets,
hap
> From: Atari Ace [mailto:atari_ace@verizon.net]
> Sent: Monday, August 03, 2009 10:52 PM
> To: submit@mamedev.org
> Cc: atariace@hotmail.com
> Subject: [patch] De-globalize romload.c/validity.c
>
> Hi mamedev,
>
> Static and global variables in the core of MAME have slowly been
> replaced with opaque structures latched onto the running machine. This
> patch extends this idiom to two more files, romload.c and validity.c.
> validity.c in fact didn't need any global state (it was used only to
> pass data between function calls), and romload.c already had a struct
> that largely served that purpose.
>
> ~aa
> To: submit@mamedev.org
> CC: atariace@hotmail.com
> Subject: [patch] Introduce tilemap_private to running_machine
> Date: Thu, 23 Jul 2009 18:49:08 -0700
>
> Hi mamedev,
>
> Tilemaps in MAME are currently globally tracked. If multiple machines
> with different tilemaps are ever to be supported, this needs to be
> changed, which this patchset does.
>
> 0. This patch add tilemap_private to running_machine, adds machine to
> a few apis and adds two new apis to replace the convention that tmap =
> NULL => all tilemaps.
> 1. This patch mechanically converts all the uses of ALL_TILEMAPS to
> use the new apis.
> 2. This patch removes ALL_TILEMAPS and makes tilemap_private
> dynamically allocated per machine.
>
> ~aa
I have done Intel 4004 implementation, here is a patch (it also
contain a POC driver for 4004 Nixie tube clock, that runs under MESS).
4004clk is artwork file, and roms file contain needed roms (just rename ZIP).
Regards,
Miodrag
> -----Original Message-----
> From: Micko [mailto:mmicko@gmail.com]
> Sent: Tuesday, August 04, 2009 8:11 AM
> To: Aaron Giles
> Subject: Intel 4004 core
>
> Hi Aaron,
>
> Here is a final version of CPU core for MAME submition.
>
> Regards,
> Miodrag
Probably not harmful currently, but if the UML core ever gets more aggressive
with optimization (e.g. if we spliced in something like LLVM as a code
generator) it could've become an issue.
This was submitted in May and never put in because nobody from MESS commented.
I just tried it hooked up to the Apple II in MESS and it sounds quite nice.
- Hooked up flash ROM at 0
- Use proper AW memory map
- Emulate AW ROM board (different from Naomi)
All dumped AW games now boot and show something. Unfortunately they all
show "COIN ERROR" for as-yet unknown reasons, and only sprtshot actually
continues in spite of the error.
* Fixes bug in nes_apu that caused errors reading $4015
* Adds length counter status bits to $4015
* Fixes 4-screen mirroring (PPU regression)
* Fixed cham24
Also, I fixed the tab lengths in nes_apu.c
Date: Sat, 25 Jul 2009 11:57:29 -0700
To: submit@mamedev.org<submit@mamedev.org>
Subject: 68k cpu reset eat cycles fix
Hello,
Attached is a diff for 0133 that fixes a bug related to eating cycles
during 68k cpu reset. Previously, initial_cycles had a wrong value
after reset, and if cycles were < 0, it'd always return 0, .. check
the diff to see what I mean.
This change also happens to fix a scrolling bug in Fantasy Zone,
introduced when that cycle eating thing was added.
Greets,
hap
> Sent: Wednesday, July 22, 2009 8:18 PM
> To: submit@mamedev.org
> Cc: atariace@hotmail.com
> Subject: [patch] priority_bitmap global begone!
>
> Hi mamedev,
>
> This patch set migrates priority_bitmap from a global variable to the
> running_machine object. The first patch adds it to the machine
> object, adjusting some routines to take a machine/screen object in
> preparation and others to use a local variable for the bitmap. The
> second patch then converts all the global vars to (typically)
> machine->priority_bitmap, this patch was generated by the included
> script. The last patch removes the global priority_bitmap.
>
> ~aa
Sent: Friday, July 10, 2009 11:02 AM
To: Aaron Giles; Angelo Salese
Subject: Otenami Haiken Final (V2.07JC)
Note, I've talked this one through with him, and this is correct. Taito
sold this on a 64Mb CF card, it *requires* the V2 bios which is where CF
card support was added (it might be the reason the V2 bios exists) The
supported bios is dumped from the PCB, I know we have the actual upgrade
kit, but afaik MAME can't upgrade it properly. Only the new game uses
this bios, as it's actually a less featured bios aside from the CF support.
New Games added
--------------------
Otenami Haiken Final (V2.07JC) [Joerg Hartenberger]
Other changes
--------------
- Added flashv2.u30 (v2 bios) to the taitogn driver [Joerg Hartenberger]
- Added IDE Lock mechanism to the IDE Driver in MAME, so games on gnet
v2 bios are working correct now (idectrl.c / idectrl.h) & taitogn.c
[Joerg Hartenberger]
result, you will need a full recompile with this change, since the
bitmap formats enum was altered.
Introduced new feature -burnin, which can be used to generate a PNG
that represents the overall brightness seen during the course of
running a game. This PNG can be used as a fake "bezel" that overlays
the screen via the artwork systems (with a low alpha, say 0.1 or 0.2)
to simulate running a game with a monitor that has been burned in
from another game.
Fixed the -crsshairpath option to be spelled properly.
philips codes if video is squelched. Updated the Gottlieb
and Cliff Hanger drivers to request it this way, since they
decode externally.
Made a couple of minor tweaks to the Cliff Hanger driver.
Fixed interrupt timing (was not taking into account
interlacing) to fix up glitches in playback and ensure the
disk test passes. Added SHA1 and marked the game as working.
New games marked working:
Cliff Hanger [Aaron Giles, Warren Ondras, Ernesto Corvi]
- Added a new implementation of the I8255A device. Rewritten from scratch to properly support handshaking in modes 1 and 2.
- Refactored sg1000a.c to use the new implementation.
to be working reliably.
Deprecated the ROMREGION_DISPOSE flag, as 98% of the use of it no
longer is applicable with on-the-fly decoding, and the remaining
cases are difficult to identify among the others.
constants to cpuintrf, as those names are really only applicable to
CPUs. Added new ADDRESS_MAP_0/1/2/3 constants to identify address maps
more generically.
Updated memory system to be more general about address map handling.
Added the concept of default address maps (in addition to the already
existing internal memory maps). The difference between internal and
default memory maps is that internal memory maps always override
everything (including user-specified maps), but default memory maps
simply provide a default that can be overridden.
Converted the okim6295 sound driver to use address maps for access.
By default, it defines a ROM address map that overlays its full
region. As a result, the validity checks require all okim6295 regions
to be at least 256k, unless you provide your own address map. Updated
all regions to meet this requirement.
Updated the atarijsa code to use a custom address space for its
okim6295 accesses (which are banked on the first half and static on
the second half), as an example of configuring a device with a
custom address space.
For now, attempts to use okim6295_set_bank_base() will still work,
though banking for the okim chips should be moved to custom address
maps in the drivers eventually. The first time okim6295_set_bank_base()
is called, it will install a banked memory handler over the region
and use memory_set_bankptr() to change the base on subsequent bank
switches.
Moved address map validity checks to be run for each device instead of
just each CPU.
to devintrf (including endianness). Removed space array from the
CPU class header. Made the memory system much more device-neutral.
Various other cleanups along the way.
MDRV macros in the device for specifying address maps. Changed
the memory system to fetch the maps from the new location.
This is just a small step toward the end goal of getting address
maps into arbitrary devices.
The plan is to add the on-chip peripherals on the magicard.c driver then, when I get some consistency, hardwire it to the cpu core.
Please check this modification asap (should be fine, but I haven't compiled with a clean build)
Sent: Monday, June 29, 2009 3:58 AM
To: submit@mamedev.org
Subject: Patch for i86.c to fix an assert
Hello,
attached is a small patch for i86.c that fixes an assert when the
80188 CPU is used.
--Dirk
Fixed internal RAM/internal I/O start-up state, and updated Hit Poker driver to use it like it should.
Taito JC driver seems unaffected by this change.
======================================================================================================
http://mamedev.emulab.it/kale/fast/files/memory_map.png