cart slot, added correct keyboard to cpc+ machines (with Fn keys
in place of the keypad number keys), added cpc+ system carts to
the softlist and converted driver to use io_port array for keyboard
input reads. nw.
fix CIA interrupts getting lost in certain situations. This fixes the
EmuTOS keyboard and potentially more. Also fix a possible issue with
blitter delays.
a general workbench list and an application list for testing. Images in
those lists are either verified good or best available currently. Many
images are still missing.
homebrew. Also allowed bankswitch writes to get to the TIA for this and
mapper 3F. Finally, included a couple of demos in the softlist so to be
able to test the code in future. nw.
in the softlist. The official syntax to launch disk games is now
mess famicom -cart disksys -flop gamename
which corresponds to inserting the RAM expansion cart with
connected the disk drive into the cartslot and the desired disk
in the disk drive (exactly like you would have done with the
real thing). In this way, you cannot mount anymore both a cart and
a disk in the Family Computer (as in a real unit).
Users that cannot cope with this limitation and/or with the new
syntax can still use the famitwin driver (which offers both cart and
disk options) or the newly added driver fds which emulates a
famicom with the expansion always inserted: in both latter cases
the old syntax
mess famitwin -flop gamename
will launch the game, as previously. [Fabio Priuli]
(MESS) famicom: fixed disk system IRQ latch clear in Kaettekita
Mario Bros. based on investigations by FHorse. [Fabio Priuli]
Out of whatsnew: For the moment I gave up the original plan to
also modernize the floppy drive and the disk format. If anyone
wants to look into these, be my guest :-)
- Fixed YM2151 clock in XM expansion, thanks to info from
tep392 and GroovyBee
- Added support for homebrew boards MegaCart+ and
VersaBoard by CPUWIZ (ROM respectively up to 512K
and 256K + 32K of RAM)
- Misc cleanups
out of whatsnew: I have also added, for debugging purposes, a VersaBoard with SG 9banks + POKEY at 0x0450
in the hope to find out exactly what goes currently wrong in the emulation of some homebrew games... let's see...
and partially implemented the required mapper [Team Europe, Fabio Priuli]
after selecting a game, the CPU always points to the correct bank of the cart,
but some games don't work anyway (e.g. Duck Tales, PacMan, etc.)
I don't have time to further debug this, at the moment, so I leave it to whoever
wants to take a look
- Rewritten cart emulation to use slot devices (many
"mappers" do not fully work) and unified cart handling
among 8bit home computers, XEGS and Atari 5200
- Added support for loading carts with bankswitch to all XL/XE
models
- Added support for loading XEGS carts in Atari 8bits home
computers (XEGS instead will only load XEGS games until
support for the keyboard add-on is included)
- Big clean up of the driver, simplifying memory map, removing
writes to ROM, etc.
- Changed NOT_WORKING flag to IMPERFECT_GRAPHICS
in 600XL, 65XE, 800XE and XEGS since they should now be
working to the same extent of the 800XL, and bugs shall be
reported.
as a consequence of the above changes, the new softlists a800.xml, a5200.xml
and xegs.xml are not compatible anymore with 0.154: keep the old xmls until
0.155 if you don't compile your own exe
expansion board, thanks to info from tep392. nw.
Also removed from the softlist the Donkey Kong XM Enhanced
version which had been hacked to work on ProSystem emulator
and fails to save hiscores with correct HSC emulation
(it remains available the correct version which saves fine both
in MESS and in the real hardware).
- Rewritten cart emulation to use slot devices
- Removed POKEY chip from the main unit since it was inside
the carts (of course it gets enabled when you launch a game
who contained it in its cart)
- Added support for the High Score cart as a passthru cart: when
you mount hiscore, a -cart2 switch will become available to mount
the game you want to play
- Properly implemented XBoarD and XM expansions as
passthru carts as well, so that new syntax to run dkxm.a78 is
"mess a7800 -cart xm -cart2 path\to\games\dkxm.a78"
High Score support for XM shall work as well.
- Big clean up of the driver, simplifying memory map, removing
writes to ROM, etc.
Out of whatsnew: In conclusion, a7800.c has been brought into the new millennium ;-)
the implementation and removed Supercharger tapes from the main system.
The -cass media switch (to load the tape file) will become available only
when you mount the Supercharger cart. [Fabio Priuli]
Update neogeo.xml to take advantage of them.
For regular rom loading we try to autodetect the appropriate endianness and
width by matching the region tag to a device with a device_memory_interface;
this is generally not doable for software lists because the regions are
children of some slot device and thus not siblings of the devices in the root
driver (i.e. "cartslot1:maincpu" rather than "maincpu") So you have to
specify the width and endianness manually for now.
Anyone who has spare time, feel welcome to byteswap every single entry
in megadriv.xml and update them to use this :-)
Message that was posted to me
"Hi David
It was to my great disappointment that your work on the NeoGeo Multislot (Dec 2013) was not included in MAME. To aid the process I've taken your work and spent some hours addressing the concerns put forward by the developers. The code I'm sending to you converts Neo Geo to fully use slot devices for the cartridges and implements the multi-slot using techniques that have greater likelihood of being met with approval.
In some places the slot trampolines caused performance to drop below 100% so I've used methods to avoid them gathered by the study of other slot devices in MESS. Performance is the same as it was prior to this update.
I first sent this with the forms on the official site but received no reply so I'm turning to you directly.
(filehost link removed)
Credit to yourself and 'S. Smith'
"
(and Suikoden - Tenmei no Chikai) can be considered as working. Also fixed wrong
battery size for Aoki Ookami to Shiroki Mejika - Genchou Hishi in xml, which was causing
a "Memory Over" error message ingame. [Fabio Priuli]
out of whatsnew: apparently the current WRAM mirroring (based on nesdev wiki notes)
causes glitches in some of these games. I hope to improve this soonish.
battery is found. This allows for loading factory formatted sram/nvram from softlist. [Fabio Priuli]
(MESS) nes.c: Fixed Silva Saga, which relies on SRAM not being 0x00 filled from factory,
with many thanks to naruko for investigating the problem. [Fabio Priuli]
runs properly now), added second external slot -cart2 (same functionality
as -cart1). Expansion ROM slots, which are handled as internal cart slot,
are now accessible via -cart3/-cart6 media switch, until they are converted
to proper slot devices. [Fabio Priuli]
emulation of JY Company PCBs (mappers 90, 209 & 211). It's still
too glicthy to be promoted to working state, but you can now see
how Super Mario Wolrd, Contra Spirits, Donkey Kong Country 4
and Tiny Toons Adventures 6 were like. 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]
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]
out of whatsnew:
+ fixed a small bug in handling MMC-1 games with > 8K of WRAM (only a Jpn baseball games use this,
and I can see no difference in behavior)
+ updated emulation status in xml for a few games I had made working during slot-ification
* hacked around the limitations of our PPU code, so to support the different CHR registers
* implemented Extended Attribute Mode (Ex1)
* improved PRG-RAM handling
* simplified NT-RAM handling
* first attempt to add split screen mode, still broken
out of whatsnew: this was for sake of messnew inclusion ;)
- moves ec184*, iskr103* and mc1502 out of pc.c
- moves CGA font upload support to a subclass
- adds new drivers: poisk1, ec1847, pk88
- adds a skeleton of native iskr103* keyboard
i8089: implement remaining instructions and support execution from "io" space. [Carl]
(mess) isbc-215g: add intel isbc-215g hdd controller, read only for now [Carl]
(mess) isbc: add hdd support to isbc2861 (nw)
this is mostly functional but about 2 years old now, and badly needs some modernizations. It's a bit ugly in places because I've had to make sure the legacy methods work too, although in other places simply because it's old code I never quite got around to cleaning up.
basically the inits have been split into ones that need calling once on startup (decryptions etc.) and ones that need calling when a new slot is activated (custom banking / protection handlers)
mame64 neogeo -cart1 kof98 -cart2 kof99 -cart3 kof2000 -cart4 kof2001 -cart5 kof2002 -cart6 kof2003
works, assuming you have the RAM. certain combinations / orders don't work, maybe the real system is like that, maybe there are flaws in the implementation.
once loaded as multi-game the neogeo will run through the attracts of each game in order, if you insert a coin then you can select next / previous game with the '3' and '4' (which are mapped to those buttons on the system) just like real hardware.
if you're low on memory try
mame64 neogeo -cart1 lbowling -cart2 samsho -cart3 mutnat -cart4 pbobblen -cart5 neomrdo -cart6 turfmast
instead
if you want an example of where it fails right now then put -cart1 roboarmy in slot 1 instead, it hangs after cycling through the games (or moving through them with 3) it's possible something isn't reset properly. This might become clearer as I clean things up a bit.
I've verified eas and neocdz work as before
* Cleaned up large amounts of duplicated code between the MAME and MESS (AES/NeoCD) drivers
* Removed MVS-only ROMs and devices (SM1 ROM, SFIX ROM, upd4990a RTC, etc.) from AES/NeoCD
* Replaced legacy NVRAM in MVS and NeoCD with NVRAM devices
* Correctly hooked up SM1 ROM bankswitching; the BIOS sound test works now
* Corrected VRAM size
* Sorted the Universe BIOS versions and unified them between MAME and MESS
* Fixed kf10thep ROM loading and decryption which was a horrible hack (and not endian safe)
* Replaced svcplus protection hack ROM patch with a less invasive one, based on FBA
* Started marking code and data that should be moved out into devices
* Various other code and comment cleanups
New clones added
----------------
Kizuna Encounter - Super Tag Battle 4 Way Battle Version / Fu'un Super Tag Battle Special Version [Alex Jackson]
-new softlist : snes_vkun.xml (Voice-Kun audio compact discs)
first Voice-Kun public dump from King Mike added
-snes.xml : new prototype public dump from SNES Central
note, currently only supports .atr format due to image.filetype() not returning anything useful when softlist is used (thanks to micko for advice on various things)
(no credit wanted, this is just to address the 'where is jumpman' thing that was posted on MW and give a softlist entry for regtests on this code)
this explains why, for instance, CPU was not replying to player's moves in sshogi3 :-)
updating the slot options and thanks to recent progresses, 3 igo games and 3 shougi
ones passed from black screen to fully playable... nw.
cassette. wav files supported only. [Fabio Priuli]
(MESS) Added software list for BASIC programs saved to tape [Anna Wu, UglyJoe, Fabio Priuli]
If anyone has more Family BASIC tapes or other cassettes for Famicom games or add-ons (e.g. Bandai Karaoke or Fukutake Study Box)
or for some chinese clones (ABM, or Bridge, or any other), please contact us.
original protected versions of some already emulated games. thanks to Cah4e3
Azathoth, magicrip and the Russian crew for the dumps and to EkeEke for the
info on Tekken Special (the only one using a new protection scheme). nw.
also, I've hacked up the rom region and cart loading for vsmile so that some dumps start to show stuff,
and TeamEurope can use MESS too for basic testing of the dumps...
devs who know more about this cpu are welcome to work on it, because I can't do much more than this :-)
on-cart flash ram devices from main gba now that they can be properly
implemented on carts which have them [Fabio Priuli]
The main difference for end users is that games using flash ram for saves won't save
anymore progresses in a nvram/game_name.nv file but in a file inside nvram/game_name/
folder. Many thanks to Micko for his recent changes to nvram devices which allowed to
still save these data per-game!
card dumps with the correct interface. nw.
this in particular means that the dozen of Jpn games which were only released in MyCard format
can now be loaded only with the -card switch (from softlist)
when loading from softlist. [Fabio Priuli]
from fullpath it still allocates 32k for every game, and if the game enables RAM the content is saved at exit.
- Converted cart handling and mappers to use slot devices
- Simplified bios and cart bankswitch mechanism
- Added save state support to both systems
- Removed on-cart EEPROM from main gamegear now that
it can be properly implemented on carts which have it
- Made LCD persistence hack optional (ON by default, it can
be turned OFF from Driver Configuration submenu)
- Reduced tagmap lookups all across the driver
seven years, plus lots of info [Ashura, mek1, wushu, Starscream the 2nd, cpt. Misumaru Tenchi,
SuperDeadite, Anna Wu, Fabio Priuli]
Disks do not work in current MESS (and DIM format has not been converted yet to modern), but I was tired to
sit on these with risk to lose backup...
Huge thanks go to the Tokugawa Boards guys who helped tracking some disks which were very hard to find
-mc1502: FDC xtal freq is 16 MHz
-pc, ec1841: unbreak DBG_LOG macro
-asst128: another PC XT clone
-ec1841: add softlist, set 'v2' as default BIOS to avoid resets
fixed shortnames and descriptions where needed, improved parent/clone relationships, made better use of
part_id features in multidisk sets. Also, re-ordered sets in ZX softlist. [Anonymous, Fabio Priuli]
out of whatsnew: I have temporarily marked as unsupported the Atari ST disks since the majority does not seem
to load and/or being playable. per-game tests will be done soon, so to give the correct status to each entry.
for the record (and to acknowledge credits where it's due), most work came from the same external contributor
who cleaned up our a2600 list in the past, with some intervention by myself here and there...
based on nointro pictures [LoganB]
(MESS) svmu.c: changed input mappings to be more standard [LoganB]
also, LoganB has updated the support status of snes_strom.xml saving me the time to test
them again :)
improved FFE mappers (I'd be more interested into actually emulating the copier but this is
all we got at the moment...) . nw.
Also, backing up some wip code for other pcbs that still does not produce any useful result.
state [Fabio Priuli]
(MESS) nes.c: improved Taito LROG017 emulation (mapper 77), promoting Napoleon Senki to working
state [Fabio Priuli]
(MESS) nes.c: added emulation of the Sachen SA-9602B pcb used by Mei Shao Nv Meng Gong Chang,
a chinese port of Princess Maker by Sachen, based on the great work done by Cah4e3 in FCEUMM
[Fabio Priuli]
out of whatsnew: this change also moves the summary of known issues in the appropriate source files
(some pirate and multigame cart issues have to be rechecked, due to the amount of changes done since
they were last checked, so I will add them back after a few test)
- converted carts, mappers and pcbs to use slot devices
- fixed starting of Famicom, Famicom Twin and Dr. PCJr
- fixed handling of "no disk" in FDS so that the system displays Mario and Luigi
jumping around as expected
- added AY8910 sound to Sunsoft-5B (Gimmick JPN sfx)
- added YM2413 to VRC-7 (Lagrange Point OST)
- added support for recorded samples to Jaleco sport titles and to Bandai Family Trainer
Aerobics Studio, thanks to notes by hap and egoh, and recordings by Pongbashi
(samples are needed because these games use a currently undumpable speech chip)
- added support for NES-EVENT pcb used by Nintendo World Championship 1990,
including dipswitches
- added support for Galoob Game Genie real usage (in addition to the codes which
Puggsy added to his cheat collections): when you load ggenie, a second cartslot
becomes available to load another game attached to the cheat device (e.g. with
"mess.exe nes -cart ggenie -cart2 smb") and you can enter the cheat codes as in a
real NES
- added support for Nantettatte!! Baseball lock-on mechanism, based on the tests
performed by naruko on his carts: when you load nantbb, a second cartslot
becomes available to load one of the two update minicarts (91 Hen or OB Hen)
- improved emulation of Namcot 163, 175 and 340 boards, based on the tests
performed by naruko, lidnariq and bootgod on the real hardware
- moved Nantettatte!! Baseball minicarts to a separate list (nes_ntbrom.xml) because
they cannot be loaded in the NES directly, but only through the nantbb subslot
- emulated bus conflict (CPU/PRG) in PCBs documented as having it
- partial emulation of open bus, enough to make working the games using it as a sort
of protection
- fixed crash when loading files using FFE mappers
- fixed mirroring in some boards (Sunsoft DCS and UNL-CC-21) and in some games
(e.g. Paris Dakar Rally Special and Escape from Atlantis)
- fixed a few bugs in Tengen 800032 emulation (mapper 64), promoting Klax, Xybots
and Road Runner to work state
- fixed Tengen 800037 emulation (mapper 158), promoting US Alien Syndrome to work
state
- added working emulation of many bootleg pcbs used for pirate conversions from FDS
(Ai Senshi Nicol, Doki Doki Panic, Fuuun Shaolin Kyo, Green Beret, Monty no Doki
Doki Daidassou, Tobidase Daisakusen, Super Mario Bros Malee 2 / Genius Merio Bros...)
- improved emulation of many pirate pcb (BMC-GOLDENCARD-6IN1, KS7013B,
KS7012, BMC-GHOSTBUSTERS63IN1, UNL-MALISB, MAXI15 and more...)
- improved RacerMate Challenge II emulation, but the game is still not working due to
unemulated bicycle controller
- added CPU-based IRQ mode in Tengen 800032 emulation (mapper 64), fixing
Skulls & Crossbones gfx (but the game is still not working)
- fixed many small inaccuracies in the old code, spot during the conversion
- added support for most other known pcbs, even if in most cases emulation is only
sketchy
- reduced the need of fake alt pbcs for boards which only differed by mirroring handling
(these are now recognized through the "mirroring" feature)
- removed fake wram which was added to a lot of partially documented pcbs and
re-added it only where actually present, so to more accurately document what was
really in the carts
Out of whatsnew: There's still a lot to do (e.g. to clean up the implementation of the pirate pcbs)
but I hope that submitting this now I can get some wider testing help so to catch and fix regressions
before next release :)