Robbie's To-Do List: Difference between revisions

From MAMEDEV Wiki
No edit summary
No edit summary
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
* <s>Rewrite the vp906iii driver.</s>  
* <s>Rewrite the vp906iii driver.</s>  
* <s>Emulate protection in Magic Fly ([[P&A Games]])</s>.
* <s>Emulate protection in [http://www.mameworld.net/maws/romset/magicfly Magic Fly].</s>
* <s>Emulate protection in 7 e Mezzo ([[Unknown]])</s>.
* <s>Emulate protection in [http://www.mameworld.net/maws/romset/7mezzo 7 e Mezzo].</s>
* Hook the inputs properly in pmpoker.c games.
* <s>Hook the inputs properly in pmpoker.c games.</s>
* <s>Demux and rework inputs in [http://www.mameworld.net/maws/romset/magicfly Magic Fly] and [http://www.mameworld.net/maws/romset/7mezzo 7 e Mezzo].</s>
* <s>Rewrite the ampoker2 driver.</s>
* <s>Fix graphics and other issues of Magic Card.</s>
* <s>Emulate the Royal Vegas Joker Card series.</s>
* <s>Add support to 3-deal version of Jolly Card.</s>
* <s>Write a new driver for SANDII' games.</s>
* <s>Write a new driver for GAME-A-TRON gambling games.</s>
* <s>Find the algorithm to proper decrypt TAB blue PCBs.</s>
* <s>Switch the Sandii' games color system to RESNET calculations.</s>
* <s>Demultiplex the lamps matrix and add lamps support for all Sandii' games.</s>
* <s>Write a new driver for Lucky 74 (Wing) hardware.</s>
* <s>Re-rewrite the gdrawpkr (ex vp906iii) driver.</s>
* <s>Add discrete sound to Golden Poker / Potten's Poker games.</s>
* <s>Rewrite the pmpoker driver.</s>
* <s>Try to discover the sound system of Magic Fly and 7 e Mezzo.</s>
* <s>Write a new driver for Joker's Wild (Sigma) hardware.</s>
* Rewrite the ltcasino driver.
* Rewrite the ltcasino driver.


Line 10: Line 26:
'''<s>Rewrite the vp906iii driver:</s>'''
'''<s>Rewrite the vp906iii driver:</s>'''


* Almost Done (in progress).
* Done.
** Rearranged GFX in two different banks.
** Rearranged GFX in two different banks.
** Decoded GFX properly.
** Decoded GFX properly.
Line 17: Line 33:
** Hooked the SY6545 (6845) CRT controller.
** Hooked the SY6545 (6845) CRT controller.
** Fixed size for screen total and visible area based on SY6545 CRTC registers.
** Fixed size for screen total and visible area based on SY6545 CRTC registers.
** Added partial inputs through PIAs.
** Added all inputs through PIAs.
** Added proper sound through AY8910 (mapped at $0840-$0841).
** Added proper sound through AY8910 (mapped at $0840-$0841).
** Fixed AY8910 volume.
** Fixed AY8910 volume to avoid clips.
** Proper colors through color PROM decode.
** Proper colors through color PROM decode.
** Demuxed inputs (thanks to Dox that pointed me in the right direction!)
** Demuxed inputs (thanks to Dox that pointed me in the right direction)
** Added some game-protection workaround.
** Added some game-protection workaround.
** Added NVRAM support.
** Renamed driver, set and description to match the real game.
** Added technical notes.  
** Added technical notes.  




'''<s>Emulate protection in Magic Fly ([[P&A Games]]):</s>'''
'''<s>Emulate protection in [http://www.mameworld.net/maws/romset/magicfly Magic Fly]:</s>'''


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




'''<s>Emulate protection in 7 e Mezzo ([[Unknown]]):</s>'''
'''<s>Emulate protection in [http://www.mameworld.net/maws/romset/7mezzo 7 e Mezzo]:</s>'''


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




'''Hook the inputs properly in pmpoker.c games:'''
'''<s>Hook the inputs properly in pmpoker.c games:</s>'''


Connect all inputs through PIAs and remove the direct hack to input registers for all sets.
* 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.
 
 
'''<s>Demux and rework inputs in [http://www.mameworld.net/maws/romset/magicfly Magic Fly] and [http://www.mameworld.net/maws/romset/7mezzo 7 e Mezzo]</s>'''
 
* 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.
 
 
'''<s>Rewrite the ampoker2 driver:</s>'''
 
* 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.
 
 
'''<s>Fix graphics and other issues of Magic Card:</s>'''
 
* Done.
 
 
'''<s>Emulate the Royal Vegas Joker Card series:</s>'''
 
* They come in two flavors: Fast and Slow draw. Both emulated.
 
 
'''<s>Add support to 3-deal version of Jolly Card:</s>'''
 
* Done.
 
 
'''<s>Write a new driver for SANDII' games:</s>'''
 
* Done. All games are working properly with sound.
 
 
'''<s>Write a new driver for GAME-A-TRON gambling games:</s>'''
 
* Done. Both games are working properly, but without sound due to unidentified sound device.
EDITED (2008/09) - Added PSG sound and lamps support.
 
 
'''<s>Find the algorithm to proper decrypt TAB blue PCBs:</s>'''
 
* Done. Decryption tables were replaced with the proper algorithm.
 
 
'''<s>Switch the Sandii' games color system to RESNET calculations:</s>'''
 
* Done.
 
 
'''<s>Demultiplex the lamps matrix and add lamps support for all Sandii' games:</s>'''
 
* Done.
 
 
'''<s>Write a new driver for Lucky 74 (Wing) hardware:</s>'''
 
* 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.
 
 
'''<s>Re-rewrite the gdrawpkr (ex vp906iii) driver:</s>'''
 
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.
 
 
'''<s>Add discrete sound to Golden Poker / Potten's Poker games:</s>'''
 
* Done.
 
 
'''Rewrite the pmpoker driver:'''
 
Currently working on this...
 
 
'''<s>Try to discover the sound system of Magic Fly and 7 e Mezzo:</s>'''
 
* Done.
 
 
'''<s>Write a new driver for Joker's Wild (Sigma) hardware:</s>'''
 
* Done.
A preliminary driver was submitted.





Latest revision as of 17:15, 26 October 2008

  • 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.