CAESAR Logo

Catalogue of Arcade Emulation Software - the Absolute Reference

Valid XHTML 1.0! Valid CSS!

X-Arcade

X-Arcade

Large CAESAR Logo

namcos1.c

0.35b5 [Ernesto Corvi]


TODO:

- There is still a big mistery about the first location of tri port ram, which is shared among all four CPUs. See namcos1_mcu_patch_w() for the kludge: essentially, this location has to be 0xA6 for the games to work. However, the MCU first sets it to 0xA6, then zeroes it - and there doesn't seem to be any code anywhere for any CPU that would set it back to 0xA6. Se, we ignore the zeroing write.

- Blast Off fails the ROM test (IO ERROR 64). This is caused by concurrent access to the same memory during the RAM tests: CPU #2 writes to $7101 before the MCU has read it back ($c101).

- Most of the dipswitches are undocumented debug controls. There might be still more marked as "unknown" that have a function.

- Some alternate versions are missing: Alice In Wonderland (English version of Marchen Maze), Face Off (6 sticks) and Tank Force (4 players).


NOTES:

- The ROM/RAM test is NOT performed by default. It is only done if the test mode switch is on when the game powers up (setting it and resetting is not enough). You can manage to make it work if you press F2 quickly enough after the MAME startup screen, without having to exit MAME and restarting.

- There are three watchdogs, one per CPU. Handling them separately is necessary to allow entering service mode without manually resetting: only one of the CPUs stops writing to the watchdog.

- berabohm and bakutotu have a strange demo play on startup, the player doesn't move. This seems to be by design, because after you play a game a few seconds from the last game are replayed. It is weird that they didn't provide some default, though. And in bakutotu you can fire during the demo. If you play and then reset, the demo still does nothing. This should prove that RAM is cleared on purpose during boot and there is no default.

- bakutotu: The main and sub processors work closely together and the game quickly runs into trouble when one of them lacks behind. Heavy sync and overclocking will help but there's a particularly nasty loop appearing in more than 40 places of the code: 1) kick the watchdog, 2) raise a flag, 3) do some dummy tasks, 4) check whether the flag has been reset by the sub CPU and 5) go back to step 1 if not

- berabohm has special pressure sensitive button, with two switches. The harder you push the button, the faster the two switches are closed one after the other. The speed is measured by an external board and reported to the game. Due to MAME's limited input sample rate (once per frame) it is difficult to reproduce that. Instead, I've hooked 6 fake buttons: weak, medium and strong punch, and weak, medium and strong jump.


WIP:

- 0.107u3: Brian Troha properly documented and connected the CUS64 MCU code in the Namco System 1 driver.

- 0.104u5: Aaron Giles fixed Namco System 1 games crashing (namcos10104u4red).

- 0.99u2: Aaron Giles fixed Namco System 1 booting.

- 0.93: Added clock parameter to Namco CUS30 sound (12000 Hz).

- 0.89: Namco System 1 update [Nicola Salmoria]. Added a new function tilemap_draw_primask(). This takes an additional parameter, which is ANDed with the contents of priority_bitmap before ORing it with the specified priority. Essentially, the old tilemap_draw() is equivalent to tilemap_draw_pribuffer(..., 0xff). The two should probably be unified. This new handling of priority_bitmap allows a more intuitive handling of pdrawgfx(), and more layers to be used (up to 31, instead of just 5 - Namco S1 needed 8). NOTE: to implement this change, I had to disable the asm optimized routines PDT16 and PDO16 in windows/oslinline.h. If they are useful for performance, they should be updated and reenabled, fixed sprite handling and removed all the nonsense hacks from the video update, made sprite/tilemap priorities orthogonal (not sure if it was needed), also updated System 86 (which uses the same sprite hardware) to the latest code. Curiously, this introduces sprite/sprite priority issues in Wonder Momo. I'm puzzled by this. Vastly improved the key custom emulation, shrinking it down to three basic types. This also fixed issues with pistoldm (e.g. bomb explosions, and other random events), cleaned up input ports, using PORT_INCLUDE, found some more debug dipswitches, added support for visibility window, this fixes countless issues with partial video updates and the intro of Rompers, better ROM loading, closer to the hardware (though it uses more memory), toggling the test mode dip switch is enough to enter test mode - no need to reset and cleaned up the CUS30 wavedata/sound command/RAM interface, put it all in a single function. Changed all M6809 CPUs to 1536000 Hz, palettesize to 8192 colors, VSync to 60.606060 Hz and Namco sound to Namco CUS30. Fixed user1 roms order and addresses.

- 0.84u5: UNZU fixed YM2151/YM3012 and NAMCO sound balance.

- 0.84u2: Andrew Gardner added save state support to the Namco System 1 driver.

- 0.78u3: Aaron Giles fixed Namco System 1 main bankswitching routine, it crashed in 0.78u2.

- 10th April 2003: Paul Priest fixed the crashes in Namco System 1/2.

- 21st January 2003: Acho A. Tang fixed dipswitches in the Namco System 1 driver.

- 0.61 Correct M6809 CPU1/2 clock speed to 2048000 Hz and VSync back to 60Hz.

- 9th April 2002: Phil Stroffolino fixed yet another crash in the Namco System 1 driver.

- 7th April 2002: Phil Stroffolino fixed the Namco System 1 driver to support a newly added feature in the tilemap system, which removes clutter from the driver itself.

- 16th August 2001: Aaron Giles removed a nasty hack from the Namco System 1 driver.

- 0.37b12: Changed VSync to 60.606060Hz.

- 10th November 2000: Tatsuyuki Satoh fixed a bug in the Namco System 1 driver which affected World Stadium '90.

- 16th October 2000: Tatsuyuki Satoh updated the Namco System 1 driver to work correctly with Aaron's latest changes.

- 16th July 2000: Ernesto Corvi added correct key emulation to Splatter House, but it doesn't fix any of the problems in the game.

- 3rd March 2000: Vernon C. Brooks fixed some key chip problems with World Stadium.

- 1st March 2000: Vernon C. Brooks added World Stadium and World Stadium '89 to the Namco System 1 driver.

- 1st March 2000: Tatsuyuki Satoh fixed a memory corruption bug in the Namco System 1 driver.

- 25th February 2000: Vernon C. Brooks fixed Namco System 1 DAC.

- 23rd February 2000: Vernon C. Brooks added Face Off to Namco System 1 driver.

- 0.36RC2: Removed second DAC sound.

- 14th February 2000: Vernon C. Brooks cleaned up the Namco System 1 driver a bit.

- 11th February 2000: Vernon C. Brooks fixed some Namco System 1 graphics bugs.

- 9th February 2000: Tatsuyuki Satoh fixed some DAC problems in Namco System 1 games.

- 0.36b16: Vernon C. Brooks fixed shadow/highlight in the Namco System 1 games (check Dangerous Seed's title screen!). Changed palettesize from 10753 to 5121 colors.

- 3rd February 2000: Vernon C. Brooks fixed most graphics problems in the Namco System 1 driver.

- 22nd January 2000: Vernon C. Brooks fixed Dangerous Seed title screen and did some other Namco System 1 driver cleanups.

- 29th December 1999: Vernon C. Brooks got Tank Force (Namco System 1) partially working but it has wrong colors.

- 0.36b12: Changed palettesize from 3585 to 10753 colors.

- 14th December 1999: Nicola Salmoria added support for shadow / hilight graphics and modified the Namco System 1 driver to use the new functions.

- 14th November 1999: Tatsuyuki Satoh modified Namco System 1 driver to use tilemaps.

- 18th October 1999: Tatsuyuki Satoh sent in updated Namco System 1 driver using the new timer system, and it's a little faster now.

- 15th October 1999: Tatsuyuki Satoh sent in a Namco System 1 update with a correct romset for Blazer, DAC sound fixes and some other fixes to m6800.

- 0.36b7: Added 2x DAC sound.

- 7th October 1999: Tatsuyuki Satoh added DAC sounds to Namco System 1 driver.

- 0.36b6: Changed palettesize to 3585 colors.

- 20th September 1999: Tatsuyuki Satoh added EEPROM support to the Namco System 1 driver and fixed some other bugs.

- 0.36b5: Fixed cpu3 sound rom ($c000) length.

- 9th September 1999: Nicola modified the selective refresh palette system in Namco System 1 games, it should be a bit better now.

- 6th September 1999: Tatsuyuki Satoh added an experimental shadow sprite support to the Namco System 1 driver with 16-bit display.

- 11th March 1999: Ernesto Corvi has gotten the sprites of Namco System 1 games working thanks to JROK, but the driver is still extremely slow.

- 0.35b5: Added namcos1.c driver.

- 4th March 1999: Ernesto Corvi submitted the Namco System 1 driver with support for Pacmania and Galaga 88. The Namco System 1 driver is still very slow and sprites are screwed. Pacmania and Galaga 88 are the games that work best.

- 1st March 1999: Aaron Giles has updated the Namco System 1 sound system, merging it with the other Namco system. He also added 16-bit sampling support for it.

- 0.35b1: Support for the Namco System 1 sound system [Ernesto Corvi].