By 'Replaced', I mean documented, as the actual extracted table exactly
matched the table already in MAME.
Changed TMS5220C to use the same energy table as 5220 does, since my previous
assumption based on the Quadravox tables was probably wrong.
Updated the ranout condition code of tms5220.c to be slightly more
accurate to the chip, and added TODOs.
Re-enabled the timers for deactivating the READY line on /WS or /RS as this
is probably slightly more accurate to hardware, but the difference is 2 or
3 clock cycles max. [Lord Nightmare]
Lattice Filter, Multiplier, and clipping redone.
TMS5220C multi-rate feature added.
Now using the same LPC table file (and format, as created by couriersud) as the TMS51xx is.
Unvoiced-Voiced transitioning adjusted to match patent.
Command handling redone to better match patent.
Reasonably significant speech quality improvements: Separate tables for TMS5200, TMS5220 and TMS5220C are implemented, though all still need to be verified from hardware.
Fixes: Garbled speech in Escape from the Planet of the Robot Monster's Canal Mazes is fixed, as well as some other garbled speech in game (when saying 'throwing switch' for instance).
Known Regressions (being worked on): Victory fails its startup self test with an error 5, but speech works in-game.
are triggered, and what channel is returned. The
interrupts are masked or enabled based on what PCM memory bank is
used, rather than the physical channel that was used.
[Barry Rodewald]
Added a check for the OPTION_READCONFIG option before executing
the code which would attempt to incorporate configuration file
settings into the current configuration, because if OPTION_READCONFIG
is set to false, then there is no reason to even try to do this as
every single configuration file will be ignored (because config files
have been turned off by OPTION_READCONFIG). [Bryan Ischo]
Fixed small memory leak in mame.c. [Bryan Ischo]
Fixed double-free error in render.c. [Bryan Ischo]
Made core_strdup use osd_malloc instead of malloc. [Bryan Ischo]
The code now computes start/dpdx/dpdy to start at (0, 0) of the bitmap
and not at the polygon origin. It's a more precise when the polygon
is a tad big, and a lot more precise when the coordinates are big
enough not to fit in an int.
The code is still somewhat broken when the coordinates do not fit in
an int. I'll have to see about that later. I can ignore it for now
by z-clipping a little further.
The subpixel correction is missing, I wasn't sure if we needed to add
or substract 0.5*(dpdx+dpdy) to start. And I don't really know how to
test for it either.
* Made "MOV AL, offset" etc (opcodes A0-A3) properly indicate a segment override prefix.
* Corrected the disassembly of various NEC-only instructions (mainly V25/V35-only instructions)
* Changed CPUINFO_INT_MAX_INSTRUCTION_BYTES on i86 and NEC from 15 to 8.
side-note: CX4_read should return open_bus as well in a few cases, but passing an address_space to the handler would require more changes than are worth right now (especially because no game needs it). It will be taken care of when I convert all add-on chip handlers to become read/write handlers...
snes.c: moved some more variables to driver state, set a few addresses as open bus and slightly changed SuperFX handlers not to access SNES WRAM [Fabio Priuli]
- BCD packed decimal now supported, including k-factor
- Improved FSAVE/FRESTORE including FPU reset when restoring a NULL frame
- FREM instruction supported
- Better disassembly of FPU instructions
- Better IRQ generation and hookup to MAME IRQ system
- Preliminary 8-bit timer hookup including prescalers and IRQs
- Fixed issue with debugger not showing registers correctly
split.c: made the "split" return the actual result instead of just 0. [Oliver Stöneberg]
clifront.c: made the identation of the CPU device in -listdevices the same like the others [Oliver Stöneberg]
i386.c: gave some fatalerror() calls in the i386 proper messages [Oliver Stöneberg]
ssem.c: fixed compilation of SSEM core with SSEM_DISASM_ON_UNIMPL [Oliver Stöneberg]
srcclean.c: small wording change in the srcclean summary [Oliver Stöneberg]
sdl/window.c: fixed a potential memory leak in sdlwindow_video_window_create() [Oliver Stöneberg]
when they cross a page boundary. Previously, if pages
were not ordered in contiguous RAM, then a cross-boundary
read or write would read partially incorrect data or write
some of the data in the wrong page. [Barry Rodewald]
ddenlovr.c, dynax.c: replaced memory_set_bankptr with memory_set_bankp and added save state support [Fabio Priuli]
side note: this and rev.8619 took definitely more time than I expected (especially to test as many drivers as possible), but there should be no regressions
/me crossing fingers
- Rewritten to use SoftFloat instead of unportable native FP math
- Support added for Motorola 96-bit extended floats
- More addressing modes and conditions supported
The taitojc games function identically to the old implementation (I stepped
through the main matrix multiply in dendeg and the registers never diverged)
and speed on Core 2 Duo is a wash - sometimes softfloat's faster, sometimes
not, but the difference on -str 90 never exceeded 1%.
Added FJMP/JMPF opcode to the SunPlus u'nSP core. [Segher, Harmony]
Performed an initial code cleanup pass on the N64 rendering code to make use of booleans and inline variable instantiation, and removed a number of unused variables that were exposed as a result of the latter. [Harmony]
I guess it could be related to some problem in my system (ASUS EeePC, Intel Atom CPU Z520 @ 1.33GHz 0,99GB RAM), but I don't get why non-symbols compile is crashing at this file while symbols build always compiles fine. Any suggestion is welcome, but I hope nobody has any objection against this change.
FWIW, I came to this "fix" after noticing that the removal of one of the for loops (any of the 3) was fixing the issue...
constructor and a static allocation function.
Changed MDRV_DRIVER_DATA to reference driver_data::alloc
instead of just providing a size. This function is called
to allocate the driver data. This allows objects to be
embedded in the state data and be properly initialized.
Ideally, new driver_data constructors should perform
initialization actions in the constructor, but for now
most just use auto_alloc_clear() to blast everything to
zero.
Moved driver data allocation after device list construction
so that devices can be found when the driver data is
constructed.