trunk/src/mame/drivers/saturn.c
| r21089 | r21090 | |
| 23 | 23 | - IC13 games on the dev bios doesn't even load the cartridge / crashes the emulation at start-up, |
| 24 | 24 | rom rearrange needed? |
| 25 | 25 | - SCU DSP still has its fair share of issues, it also needs to be converted to CPU structure; |
| 26 | | - Add the RS232c interface (serial port), needed by fhboxers. |
| 27 | | - Video emulation bugs: check stvvdp2.c file. |
| 26 | - Add the RS232c interface (serial port), needed by fhboxers (accesses some ports in the a-bus dummy range). |
| 27 | - Video emulation is nowhere near perfection. |
| 28 | 28 | - Reimplement the idle skip if possible. |
| 29 | 29 | - Properly emulate the protection chips, used by several games (check stvprot.c for more info) |
| 30 | 30 | - Move SCU device into its respective file; |
| r21089 | r21090 | |
| 32 | 32 | |
| 33 | 33 | (per-game issues) |
| 34 | 34 | - stress: accesses the Sound Memory Expansion Area (0x05a80000-0x05afffff), unknown purpose; |
| 35 | |
| 35 | 36 | - smleague / finlarch: it randomly hangs / crashes,it works if you use a ridiculous MCFG_INTERLEAVE number,might need strict |
| 36 | | SH-2 synching. |
| 37 | | - groovef / myfairld: why do we get 2 credits on startup? Cause might be by a communication with the M68k |
| 37 | SH-2 synching or it's actually a m68k comms issue. |
| 38 | |
| 39 | - groovef: ugly back screen color, caused by incorrect usage of the Color Calculation function. |
| 40 | |
| 38 | 41 | - myfairld: Apparently this game gives a black screen (either test mode and in-game mode),but let it wait for about |
| 39 | 42 | 10 seconds and the game will load everything. This is because of a hellishly slow m68k sub-routine located at 54c2. |
| 40 | 43 | Likely to not be a bug but an in-game design issue. |
| 41 | | - danchih: hanafuda panel doesn't work. |
| 42 | | - findlove: controls doesn't work? Playing with the debugger at location $6063720 it makes it get furter,but controls |
| 43 | | still doesn't work, missing irq? |
| 44 | |
| 45 | - danchih / danchiq: currently hangs randomly (regression). |
| 46 | |
| 44 | 47 | - batmanfr: Missing sound,caused by an extra ADSP chip which is on the cart.The CPU is a |
| 45 | 48 | ADSP-2181,and it's the same used by NBA Jam Extreme (ZN game). |
| 49 | |
| 46 | 50 | - vfremix: when you play as Akira, there is a problem with third match: game doesn't upload all textures |
| 47 | 51 | and tiles and doesn't enable display, although gameplay is normal - wait a while to get back |
| 48 | 52 | to title screen after losing a match |
| 49 | 53 | |
| 50 | | =================================================================================================== |
| 54 | - vfremix: various problems with SCU DSP: Jeffry causes a black screen hang. Akira's kick sometimes |
| 55 | sends the opponent out of the ring from whatever position. |
| 51 | 56 | |
| 52 | | Hardware overview: |
| 53 | | ------------------ |
| 54 | | -two SH-2 CPUs,in a master/slave configuration.The master cpu is used to |
| 55 | | boot-up and to do the most of the work,the slave one does extra work that could be |
| 56 | | too much for a single cpu.They both shares all the existant devices; |
| 57 | | -a M68000 CPU,used to drive sound(the SCSP chip).The program is uploaded via the |
| 58 | | SH-2 cpus; |
| 59 | | -a SMPC (System Manager & Peripheral Control),used to drive all the |
| 60 | | devices on the board; |
| 61 | | -a SCU (System Control Unit),mainly used to do DMA operations and to drive interrupts,it |
| 62 | | also has a DSP; |
| 63 | | -an (optional for the ST-V) SH-1 CPU,used to be the CD driver; |
| 64 | | -An A-Bus,where the cart ROM area is located; |
| 65 | | -A B-Bus,where the Video Hardware & the SCU sections are located; |
| 66 | | -Two VDPs chips(named as 1 & 2),used for the video section: |
| 67 | | -VDP1 is used to render sprites & polygons. |
| 68 | | -VDP2 is for the tilemap system,there are: |
| 69 | | 4 effective normal layers; |
| 70 | | 2 roz layers; |
| 71 | | 1 back layer; |
| 72 | | 1 line layer; |
| 73 | | The VDP2 is capable of the following things (in order): |
| 74 | | -dynamic resolution (up to 704x512) & various interlacing modes; |
| 75 | | -mosaic process; |
| 76 | | -scrolling,scaling,horizontal & vertical cell scrolling & linescroll for the |
| 77 | | normal planes, the roz ones can also rotate; |
| 78 | | -versatile window system,used for various effects; |
| 79 | | -alpha-blending,refered as Color Calculation in the docs; |
| 80 | | -shadow effects; |
| 81 | | -global rgb brightness control,separate for every plane; |
| 82 | 57 | |
| 83 | 58 | ****************************************************************************************************/ |
| 84 | 59 | |
trunk/src/mame/drivers/stv.c
| r21089 | r21090 | |
| 632 | 632 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); |
| 633 | 633 | } |
| 634 | 634 | |
| 635 | | /* |
| 636 | | 060011AE: AND #$0F,R0 |
| 637 | | 060011B0: MOV #$5E,R1 |
| 638 | | 060011B2: ADD R5,R1 |
| 639 | | 060011B4: MOV.B R0,@R1 |
| 640 | | 060011B6: MOV R5,R0 |
| 641 | | 060011B8: ADD #$70,R0 |
| 642 | | |
| 643 | | 060011BA: MOV.B @(R0,R4),R0 <- reads 0x02020000,cause of the crash |
| 644 | | 060011BC: RTS |
| 645 | | 060011BE: NOP |
| 646 | | 060131AA: CMP/EQ #$01,R0 |
| 647 | | 060131AC: BT $0601321C |
| 648 | | 060131AE: CMP/EQ #$02,R0 |
| 649 | | 060131B0: BT $0601324A |
| 650 | | |
| 651 | | TODO: understand where it gets 0x02020000,it must be 0x0000000 |
| 652 | | |
| 653 | | bp 6001d5a |
| 654 | | bp 6001d22 (60ffef0) |
| 655 | | |
| 656 | | |
| 657 | | (?) wpset 60cf888,4,r |
| 658 | | |
| 659 | | */ |
| 660 | | |
| 661 | 635 | DRIVER_INIT_MEMBER(saturn_state,astrass) |
| 662 | 636 | { |
| 663 | 637 | sh2drc_add_pcflush(machine().device("maincpu"), 0x60011ba); |
| r21089 | r21090 | |
| 830 | 804 | DRIVER_INIT_CALL(stv); |
| 831 | 805 | |
| 832 | 806 | /* tight sync to avoid dead locks */ |
| 833 | | m_minit_boost = m_sinit_boost = 0; |
| 807 | m_minit_boost = m_sinit_boost = 5000; |
| 834 | 808 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); |
| 835 | 809 | } |
| 836 | 810 | |
| r21089 | r21090 | |
| 841 | 815 | DRIVER_INIT_CALL(stv); |
| 842 | 816 | |
| 843 | 817 | /* tight sync to avoid dead locks */ |
| 844 | | m_minit_boost = m_sinit_boost = 0; |
| 818 | m_minit_boost = m_sinit_boost = 5000; |
| 845 | 819 | m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); |
| 846 | 820 | } |
| 847 | 821 | |
| r21089 | r21090 | |
| 857 | 831 | |
| 858 | 832 | DRIVER_INIT_MEMBER(saturn_state,pblbeach) |
| 859 | 833 | { |
| 860 | | //sh2drc_add_pcflush(machine().device("maincpu"), 0x605eb78); |
| 834 | sh2drc_add_pcflush(machine().device("maincpu"), 0x605eb78); |
| 861 | 835 | |
| 862 | 836 | DRIVER_INIT_CALL(stv); |
| 863 | | |
| 864 | | // m_instadma_hack = 1; |
| 865 | | |
| 866 | 837 | } |
| 867 | 838 | |
| 868 | 839 | DRIVER_INIT_MEMBER(saturn_state,shanhigw) |