Robbie's To-Do List

From MAMEDEV Wiki
  • Rewrite the vp906iii driver.
  • Emulate protection in Magic Fly.
  • Emulate protection in 7 e Mezzo.
  • Hook the inputs properly in pmpoker.c games.
  • Demux and rework inputs in Magic Fly and 7 e Mezzo.
  • Rewrite the ampoker2 driver.
  • Fix graphics and other issues of Magic Card.
  • Emulate the Royal Vegas Joker Card series.
  • Add support to 3-deal version of Jolly Card.
  • Write a new driver for SANDII' games.
  • Write a new driver for GAME-A-TRON gambling games.
  • Find the algorithm to proper decrypt TAB blue PCBs.
  • Switch the Sandii' games color system to RESNET calculations.
  • Demultiplex the lamps matrix and add lamps support for all Sandii' games.
  • Write a new driver for Lucky 74 (Wing) hardware.
  • Re-rewrite the gdrawpkr (ex vp906iii) driver.
  • Add discrete sound to Golden Poker / Potten's Poker games.
  • Rewrite the pmpoker driver.
  • Try to discover the sound system of Magic Fly and 7 e Mezzo.
  • Write a new driver for Joker's Wild (Sigma) hardware.
  • Rewrite the ltcasino driver.


Details / Status

Rewrite the vp906iii driver:

  • Done.
    • Rearranged GFX in two different banks.
    • Decoded GFX properly.
    • Rewrote the memory map based on program ROMs analysis.
    • Hooked two SY6520/6280 (M6821) PIAs for I/O.
    • Hooked the SY6545 (6845) CRT controller.
    • Fixed size for screen total and visible area based on SY6545 CRTC registers.
    • Added all inputs through PIAs.
    • Added proper sound through AY8910 (mapped at $0840-$0841).
    • Fixed AY8910 volume to avoid clips.
    • Proper colors through color PROM decode.
    • Demuxed inputs (thanks to Dox that pointed me in the right direction)
    • Added some game-protection workaround.
    • Added NVRAM support.
    • Renamed driver, set and description to match the real game.
    • Added technical notes.


Emulate protection in Magic Fly:

  • Done.
    • Added proper emulation to the game protection that allow boot the game without patchs/hacks.


Emulate protection in 7 e Mezzo:

  • Done.
    • Added proper emulation to the game protection that allow boot the game without patchs/hacks.


Hook the inputs properly in pmpoker.c games:

  • Done.
    • Removed all inputs hacks.
    • Connected both PIAs properly.
    • Demuxed all inputs for each game.
    • Documented all outputs.
    • Added lamps support.
    • Created different layout files to cover each game.
    • Add NVRAM support to all games.
    • Corrected the color PROM status for each set.
    • Figured out most of the DIP switches.
    • Added diplocations to goldnpkb.
    • Replaced the remaining IPT_SERVICE with IPT_BUTTON for regular buttons.
    • Updated technical notes.
    • Cleaned up the driver. Now is better organized and documented.


Demux and rework inputs in Magic Fly and 7 e Mezzo

  • Done.
    • Figured out how the protection works.
    • Removed the hacks/patchs that formerly allow boot the games.
    • Figured out how the buffered inputs works.
    • Demuxed all inputs for both games.
    • Unified the memory maps from both games.
    • Added NVRAM support to both games.
    • Crystal documented via #define.
    • CPU clock derived from #defined crystal value.
    • Changed CPU clock to 833 kHz.
    • Mapped DIP switches.
    • Found the maximum bet DIP switch in magicfly.
    • Removed flag GAME_NOT_WORKING for both games.
    • Managed the planes to get the 3bpp GFX colors accurate.
    • Renamed the ROMs acording to pcb pictures and ROM contents.
    • Cleaned up and optimized the driver.
    • Reworked/updated technical notes.


Rewrite the ampoker2 driver:

  • Done.
    • Crystal documented via #define.
    • CPU and sound clocks derived from #defined crystal value.
    • Reworked TILE_GET_INFO to handle the proper tiles/color codes.
    • Fixed interrupts (NMI).
    • Corrected AY8910 frequency to 1.5 MHz to match the real thing.
    • Arranged the AY8910 volume in all games to avoid clips.
    • Corrected the screen visible area.
    • Added NVRAM support.
    • Reworked the memory map, mapping all the hardware I/O ports.
    • Reworked the Inputs for all sets.
    • Added implementation of Operator and Supervisor Keys.
    • Fixed some timing troubles.
    • Mapped the input buttons in the same way I mapped them in other poker games.
    • Added partial DIP switch support with diplocations to all sets.
    • Removed the hack in DRIVER_INIT.
    • Hooked write handlers for output ports.
    • Added watchdog routines.
    • Dumped, hooked, wired and decoded the color PROM in all sets. Colors are perfect.
    • Modified the refresh rate to 60 fps according to hardware measurements.
    • Cleaned up and renamed all sets, defining parent-clone relationship.
    • Wired the lamps for all sets. Created their respective layouts.
    • Updated flags in game drivers.
    • Splitted the driver to driver/video.
    • Other minor fixes.
    • New set dumped/added: American Poker 95.
    • New set dumped/added: American Poker 2 (bootleg, set 1).
    • New set dumped/added: Sigma Poker.
    • New set dumped/added: Sigma Poker 2000.
    • Fixed graphics/tiles in Sigma Poker 2000.
    • Rewritten the technical notes from the scratch (still in progress).
    • Added a PCB layout to the technical notes.


Fix graphics and other issues of Magic Card:

  • Done.


Emulate the Royal Vegas Joker Card series:

  • They come in two flavors: Fast and Slow draw. Both emulated.


Add support to 3-deal version of Jolly Card:

  • Done.


Write a new driver for SANDII' games:

  • Done. All games are working properly with sound.


Write a new driver for GAME-A-TRON gambling games:

  • Done. Both games are working properly, but without sound due to unidentified sound device.

EDITED (2008/09) - Added PSG sound and lamps support.


Find the algorithm to proper decrypt TAB blue PCBs:

  • Done. Decryption tables were replaced with the proper algorithm.


Switch the Sandii' games color system to RESNET calculations:

  • Done.


Demultiplex the lamps matrix and add lamps support for all Sandii' games:

  • Done.


Write a new driver for Lucky 74 (Wing) hardware:

  • Done.
    • Set the proper screen size.
    • Decoded graphics.
    • Decoded the dual-state color circuitry.
    • Mapped the NVRAM, VRAM1-1, VRAM1-2, VRAM2-1 and VRAM2-2 properly.
    • Emulated 2x PPI 8255 devices.
    • Mapped the 4x DIP switches banks.
    • Added PORT_DIPLOCATION to all DIP switches.
    • Added DIP switches for 'Bet Max' and 'Limit'.
    • Added DIP switches for 'Jackpot' and 'Pay Table'.
    • Added the Memory Reset Switch.
    • Added the 2nd video & color RAM.
    • Added a 2nd tilemap for background graphics.
    • Simplified the graphics banks.
    • Fixed colors for foreground graphics.
    • Fixed visible area to show the top of background graphics.
    • Finally fixed colors for background graphics.
    • Added all coinage DIP switches.
    • Mapped all remaining inputs (service and player buttons).
    • Added pulse time limitation to coins A, B & C.
    • Switched to use 4x 8255 in replace of 2x 82c255 for I/O.
    • Created a handler to feed the z80 port0 requests.
    • Promoted lucky74s to 'working' state.
    • Added an alternate set, but the program ROM looks like incomplete, protected or just a bad dump.
    • Parent/clone relationship.
    • Added technical notes.
    • Pre-defined CPU and SND clocks.
    • Switched the color system to RESNET.


Re-rewrite the gdrawpkr (ex vp906iii) driver:

A new rewrite is needed to add support for systems 903, 904, 905 & 906. These systems hold dozens of unknown/undumped games. Also the driver need a lot of changes.

  • Done.
    • Renamed the driver to calomega.c.
    • Extended the driver to support all the other Cal Omega systems.
    • Switched to XTAL def.
    • Fixed CPU & sound clocks based on official diagrams.
    • Replaced the AY-8910 with AY-8912 to match the real hardware.
    • Unified some memory maps.
    • Splitted machine in sys903 and sys905.
    • Fixed memory map offsets for sys905.
    • Added support to almost 40 new games + 2 diagnostics sets.
    • Added a list of official/unofficial games, and their states.
    • Fixed a bug introduced when extended the color PROM region to eliminate colortable lenght.
    • Other changes/fixes.
    • Cleaned up the driver following the MAME Coding Conventions.
    • Improved the input system for some games.
    • Fixed some wrong color codes.
    • Lots of improvements on the input system.
    • Adjusted the CPU adressing to 14 bits for systems 903/904.
    • Adjusted the CPU adressing to 15 bits for system 905.
    • Rewrote all the ROM loads based on these changes.
    • Defined CPU, UART and sound clocks.
    • Splitted the sound interface to cover different systems.
    • Splitted the PIAs interfaces to cover different systems.
    • Added sound to system 905 games.
    • Added MACHINE_START and MACHINE_RESET to initialize the devices properly.
    • Documented the systems 903/904 UART connections.
    • Traced and added PIAs connection diagrams for systems 903/904/905.
    • Hooked the missing DIP Switches bank to the AY8912 for system 903.
    • Added preliminary serial/UART support to systems 903/904.
    • Hooked the missing DIP Switches bank to the ACIA 6850 for systems 903/904. It allow to choose the proper transfer rate for UART.
    • Fixed graphics ROM loads for different Hotline versions.
    • Unified MACHINE_RESET for systems 903/904/905.
    • Created a new handler to manage the first 4 bits of system 905's PIA1 portB as input mux selector. (905 is still not working)
    • Renamed all roms of each set according to the systems schematics and official list.
    • Cleaned-up the sets.
    • Cleaned-up the driver.
    • Updated technical notes.


Add discrete sound to Golden Poker / Potten's Poker games:

  • Done.


Rewrite the pmpoker driver:

Currently working on this...


Try to discover the sound system of Magic Fly and 7 e Mezzo:

  • Done.


Write a new driver for Joker's Wild (Sigma) hardware:

  • Done.

A preliminary driver was submitted.


Rewrite the ltcasino driver:

Analyze the ltcasino & ltcasin2 program ROMs to fix all wrong aspects of emulation.