long wn:
started converting neogeo video / sprite system to a device_reset
created base device + number of derived classes
NEOGEO_SPRITE_REGULAR is an reference implementation, drawing direct from
NEOGEO_SPRITE_OPTIMZIED is a version with predecoded gfx (as we use now) this is the default used by the driver
NEOGEO_SPRITE_MIDAS is a version supporting the changes needed by the MIDAS games (mainly 8bpp instead of 4bpp)
- Reimplemented the cartridge slots as slot devices.
- Moved the msx slot layouts to inline machine configuration.
- Started adding support for a few more firmware types.
- Add turbo support to Panasonic FS-A1FX/FS-A1WX/FS-A1WSX.
moved the protection sims for f1dream / bbballs to machine/tigeroad.c
also marked f1dream as not working, it's never worked, the protection simulation is incomplete. (the bootleg has some original bugs too due to their workarounds, so technically there isn't a perfectly working version of this game supported by MAME)
- Pong Doubles now working
Thanks a lot to Adam Bousley for dual licensing DICE netlists.
Hooked up player inputs
- Minor performance tweaks
- Separated game netlists from driver. Dice is making extensive use of macros which may conflict
if these are in one source file.
- Added some rescap.h macros to netlist
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Pong Doubles [DICE Team, Couriersud]
-Moved midi handling in base class
-Cleaned running_machine of information of next machine
-All is cleaned after exiting of running_machine so debugger window is removed as well till next machine is started
-Made osdmini to compile
software included with the original Amstrad interface works, but not much else
does at this stage. [Barry Rodewald]
Out of whatsnew: HoneyTerm (part of the later Pace interface) expects bit 6
of RR0 on the Z80DART to be set (seems to unsupported in the current z80dart
device). Not sure on why other software doesn't work as yet.
ROMs will be uploaded in a minute ;)
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Wyvern F-0 [Guru, ????]
Moved delegates into /src/lib/util to enable usage of delegates in other project parts
Moved mame_printf_* calls into /src/osd/osdcore.c and renamed them to osd_printf_*
Changed mess.mak to display compilation of ymmu100.ppm nicely
Moved graphics decoding to a new device interface class: device_gfx_interface.
The gfxdecode device is now a device that simply inherits this interface and
does nothing else. Devices that draw tilemaps or sprites using gfx_elements
should in time be updated to use this interface rather than connect to a
machine-global gfxdecode device. Updated toaplan_scu.c as an example (also
fixed off-by-one sprite alignment in twincobr and rallybik while I was at it).
gfx_elements are normally created in interface_post_start(), making it
possible to dynamically create or modify the graphics decoding info during
device_start() if you need to. On the other hand, if you need the gfx_elements
during device_start(), you can directly call decode_gfx() to create them early.
This interface also provides a standard and init-order-safe way to connect to
a palette device (similarly to how device_video_interface helps devices
connect to a screen), so it's handy for any device that does palettized
drawing even if it doesn't use gfx_elements. Updated k053250.c as an example
of this usage.
gfxdecode info entries can now reference shared RAM regions by tag as well as
ROM regions, automatically handle endianness, and have some other new
capabilities. Updated nemesis.c and pgm.c to showcase the new features.
Removed validate_display() (it was just a commented out stub already) since
its only function, checking that drivers don't have an ind16 screen without
a palette, is now done by screen_device::device_validity_check().
Updated obsolete comments about GFXLAYOUT_RAW (cps1.c hasn't used raw gfx for
years, and "to save memory" is no longer a good reason to use it)
with this, it was finally possible to remove the other outdated (& non-device)
implementation which was lurking inside segamsys.c
also, MESS at last compiles without the need of megatech.c
- Fanuc System P Model G [Guru, R. Belmont]
nw: Could use some help finding if there is font/chargen data in the ROMs (apart from the foreign chs_7859.bin I threw in to get a screen display). I'm pretty confident it's not in the a40 and a41 ROMs, but a42_020a.30b is possible. It's probably either in there or inside a custom chip on the video board (which feels unlikely for 1983).
nw: this fixes brightness/gamma/contrast on RGB32 format games (which has been broken since 2008, clearly a well-loved feature ;-) and breaks prescale. Prescale will be fixed soon.
a 8086 CPU + CRTC 6845 + PSG SN76489 [Roberto Fresca]
New games marked as GAME_NOT_WORKING
------------------------------------
American Music Poker (V1.4) [Roberto Fresca, Siftware ]
[Aaron Giles]
* these classes now no longer take a resource_pool; everything is
managed globally -- this means that objects added to lists must be
allocated with global_alloc
* added new auto_pointer<> template which wraps a pointer and auto-frees
it upon destruction; it also defaults to NULL so it doesn't need to
be explicitly initialized
* moved tagged_list template to tagmap.h
Redo of the low-level memory tracking system: [Aaron Giles]
* moved low-level tracking out of emu\emualloc into lib\util\corealloc
so it can be shared among all components and used by core libraries
* global_alloc and friends no longer use a resource pool to track
allocations; turns out this was a wholly redundant system that wasted
a lot of memory
* removed global_resource_pool entirely
* added global_free_array to delete arrays allocated with
global_alloc_array
* added tracking of object versus array allocation; we will now error
if you use global_free on an array, or global_free_array on an object
Added new utility helper const_string_pool which can be used to
efficiently accumulate strings that are not intended to be modified.
Used by updated makelist and software list code. [Aaron Giles]
Updated png2bdc and makelist tools to not leak memory and use more modern
techniques (no more MAX_DRIVERS in makelist, for example). [Aaron Giles]
Deprecated auto_strdup and removed all uses by way of caller-managed
astrings and the software list rewrite. [Aaron Giles]
Rewrote software list management: [Aaron Giles]
* removed the notion of a software_list that is separate from a
software_list_device; they are one and the same now
* moved several functions into device_image_interface since they really
didn't belong in the core software list class
* lots of simplification as a result of the above changes
Additional notes (no whatsnew):
Moved definition of FPTR to osdcomm.h.
Some changes happened in the OSD code to fix issues, especially regarding
freeing arrays. SDL folks may need to fix up some of these.
The following devices still are using tokens and should be modernized
(I found them because they kept their token as void * and tried to
delete it, which you can't):
namco_52xx_device (mame/audio/namco52.c)
namco_54xx_device (mame/audio/namco54.c)
namco_06xx_device (mame/machine/namco06.c)
namco_50xx_device (mame/machine/namco50.c)
namco_51xx_device (mame/machine/namco51.c)
namco_53xx_device (mame/machine/namco53.c)
voodoo_device (emu/video/voodoo.c)
mos6581_device (emu/sound/mos6581.c)
aica_device (emu/sound/aica.c)
scsp_device (emu/sound/scsp.c)
dmadac_sound_device (emu/sound/dmadac.c)
s3c2440_device (emu/machine/s3c2440.c)
wd1770_device (emu/machine/wd17xx.c)
latch8_device (emu/machine/latch8.c)
duart68681_device (emu/machine/68681.c)
s3c2400_device (emu/machine/s3c2400.c)
s3c2410_device (emu/machine/s3c2410.c)
strataflash_device (mess/machine/strata.c)
hd63450_device (mess/machine/hd63450.c)
tap_990_device (mess/machine/ti99/990_tap.c)
omti8621_device (mess/machine/omti8621.c)
vdt911_device (mess/video/911_vdt.c)
apollo_graphics_15i (mess/video/apollo.c)
asr733_device (mess/video/733_asr.c)
also split multfish into .c files and header, moving details of the sets where we only have reference info but there are no known dumps to a different file to avoid confusion. (nw)
pass-through cart. Correct syntax to launch e.g. Dizzy The Adventurer
is now "mess nes -cart ade -cart2 dizzyadv". Moved Aladdin minicart
dumps to a separate softlist (but you can load in -cart2 iNES files from
fullpath, if you like) [Fabio Priuli]
nes_camerica: simplified emulation of the BF9096 board and fixed
emulation of GoldenFive board (used by the Polish Pegasus 5 in 1
cart). [Fabio Priuli]
out of whatsnew: this commit completes the recent work about emulating properly the
different pass-through NES/Famicom devices and their corresponding mini-carts...
there should be no more games requiring non-standard syntax to be launched.
slot. The two Senyou Cassettes (Top Hit 20 Vol 1 & Vol 2) have now to be
loaded with the following commands "mess nes -cart karaoke -cart2 top20v1"
(or top20v2). This is accurate to the hardware, because these expansions
had to be manually inserted into the body of the main Karaoke Studio cart
before playing. [Fabio Priuli]
(nw)
Also deleted mame/video/taitoic.h, which absolutely nothing was #include'ing and which seems to be leftover from when the taito video chips were split into separate files.
now select songs and see the animation, even if I would not call playable the
games this way. [Fabio Priuli]
out of whatsnew: the expansion slot is currently hacked around at loading time.
I will soon implement it as a subslot, but I still need to check a few details first.
added a skeleton list I used for some quick testing.
the driver really needs a significant overhaul, but at least this makes usage a little less opaque.
Datach games have now to be loaded with the following commands
"mess nes -cart datach -cart2 gamename" where gamename can be
either a shortname from the datach softlist, or a fullpath to the iNES files
(or to headerless 256k dump of the Datach minicarts). This is accurate
to the hardware, because Datach carts could not be mounted in the main
Famicom cartridge slot. [Fabio Priuli]
UPC-A, EAN-13 and EAN-8 format, stores them in both byte format and in pixel
format; it is up to the driver to implement the correct transfer protocol. [Fabio Priuli]
Added UI menu to enter barcodes via keyboard. It only gets activated if the running
machine has a barcode device. [Fabio Priuli]
out of whatsnew: The latter change was coordinated with Nathan, so it shall not
create problems with his UI reorganization ;)
Worked from the scratch a whole set of inputs and button-lamps
support for this game. Changed the poker41 description to Four
in One Poker (as seen in the official brochure). Added game and
technical notes. [Roberto Fresca]
New games added or promoted from NOT_WORKING status
---------------------------------------------------
Bingo [Roberto Fresca, Siftware]
available when we get there with the emulation. nw.
atari games will probably need to be split in different source files later on,
but I've tried to keep the code to the minimum for the moment.
- Roland Sound Canvas SC-55 [Stefan Lindberg]
nw: Time to play "what's the CPU?". seems to be 8-bit little-endian, might be
i8x9x, might not be. Current ROM mapping is definitely wrong.
In addition, removed a number of hacks around start-up conditions. All nets are now defaulted to "0" at startup. Much cleaner.
Added a 74LS629 device which yet needs to be enabled.
(MESS) dai: Updated to use new TMS5501. (nw)
tms5501: Rewrote the emulation to use devcb2 and diserial. [Curt Coder]
flopimg: Added preliminary support for the 8-N-1 serial encoding scheme used on Compucolor II floppies. [Curt Coder]
- adjust/add some comments
- restore complete controller port functions to the japanese SMS version
- isolate some code to their proper consoles
- remove FM support of the sms2kr driver
- remove Reset button of the smsj driver
- add emulation of the japanese Sports Pad model, required by Sports Pad Soccer
- adjust some code of other controller devices.
--------------------------------------------
Henry Prot I v19 (REV.1)
out of whatsnew: did some cleanup, removed unused variables, etc (Robbbert) Also, keyboard doesn't appear to work, maybe should be marked not working?
The examples have a ".c" suffix. In eclipse, I get automatic syntax parsing and error notifications. The parser treats "#" preprocessor defines/includes just as comments.
All of these examples can be run through nltool:
./nltool -f nl_examples/opamp.c -t 1 -l OUT
runs the opamp example for 1 second of emulation time and logs the terminal named "OUT" to "netlist_log_OUT.log".
I'll post a simple script to the list to visualize those logs using gnuplot.