libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
183 stars 109 forks source link

Arm update cyclone and hopefully fix z80 seems the cpu type was wrong in the cpu interface #1702

Closed grant2258 closed 3 months ago

grant2258 commented 3 months ago

@wn2000 this should fix the z80 and the cyclone is updated. Ill need to get a memory card for my pi3 to test this if you can compile it and let me know know how you get on. Should close https://github.com/libretro/mame2003-plus-libretro/issues/1701

@mahoneyt944 dont merge this until either me or confirms it.

wn2000 commented 3 months ago

Awesome I'll test and report back.

wn2000 commented 3 months ago

Got compile errors:

Compiling src/cpuintrf.c...
src/cpuintrf.c:337:28: error: ‘drz80_icount’ undeclared here (not in a function); did you mean ‘drz80_ICount’?
  337 |         CPU4(DRZ80,        drz80,        1,255,1.00, 8, 16,   0,16,LE,1, 4      ),
      |                            ^~~~~
src/cpuintrf.c:315:30: note: in definition of macro ‘CPU4’
  315 |                 nirq, dirq, &name##_icount, oc,                                                            \
      |                              ^~~~
src/cpuintrf.c:337:28: error: ‘drz80_internal_r’ undeclared here (not in a function); did you mean ‘z180_internal_r’?
  337 |         CPU4(DRZ80,        drz80,        1,255,1.00, 8, 16,   0,16,LE,1, 4      ),
      |                            ^~~~~
src/cpuintrf.c:317:109: note: in definition of macro ‘CPU4’
  317 |                 (mem_read_handler)cpu_readmem##mem, (mem_write_handler)cpu_writemem##mem, (mem_read_handler)name##_internal_r, (mem_write_handler)name##_internal_w, \
      |                                                                                                             ^~~~
src/cpuintrf.c:337:28: error: ‘drz80_internal_w’ undeclared here (not in a function); did you mean ‘z180_internal_w’?
  337 |         CPU4(DRZ80,        drz80,        1,255,1.00, 8, 16,   0,16,LE,1, 4      ),
      |                            ^~~~~
src/cpuintrf.c:317:147: note: in definition of macro ‘CPU4’
  317 |                 (mem_read_handler)cpu_readmem##mem, (mem_write_handler)cpu_writemem##mem, (mem_read_handler)name##_internal_r, (mem_write_handler)name##_internal_w, \
      |                                                                                                                                                   ^~~~
grant2258 commented 3 months ago

looks like more work is needed on the z80 can you test the 68k is fine i set it with the arm6 option that wasnt set before for some reason. I dont see any reason to not set it unless you using something using older than a vita

grant2258 commented 3 months ago

Ok ive checked mame2000 source and CPU1 is correct for this core it just an alt CPU4 is just an alt CPU1 icount for 2000 and something different in this core. Ill need to check it to see.

wn2000 commented 3 months ago

looks like more work is needed on the z80 can you test the 68k is fine i set it with the arm6 option that wasnt set before for some reason. I dont see any reason to not set it unless you using something using older than a vita

Yeah I tried the cyclone update. It did not make things better or worse based on my limited tests: `88 Games still plays fine, and AvP still has a black screen. I'm sure the updates improve things. Just that it did not address the issue like in AvP.

wn2000 commented 3 months ago

Ok ive checked mame2000 source and CPU1 is correct for this core it just an alt CPU4 is just an alt CPU1 icount for 2000 and something different in this core. Ill need to check it to see.

Found this repo that has recent updates: https://github.com/FluBBaOfWard/ARMZ80

grant2258 commented 3 months ago

is this working in mame2000 for you before I look into the z80 a bit more.

grant2258 commented 3 months ago

I only found an old 8 gig memory card the problem i I installed retropie and the sound isint working in the headphone socket for the pi 3 for some reason. I tested rygar the game boots fine (it uses 2 z80s) using drz80

wn2000 commented 3 months ago

That’s good news. So drz80 does work on some games. Can you try 88games? For me it stuck at the rom check screen using drz80.

grant2258 commented 3 months ago

yea 88 games does stop I did check that one, There is a frontend_list with settings from mame2000 https://github.com/libretro/mame2003-plus-libretro/blob/f03f865af9d496965ab15b9a213691319daad9d2/src/mame2003/frontend_list.h#L16 now im not sure if this game works in mame2000 to begin with or if its something wrong our end. I haven't tested mame2000

grant2258 commented 3 months ago

Looks like the interrupt code needs updated. 88 games works fine on mame2000 but that core is using an interrupt ignore routine would need changes over to the new format this core is using.

grant2258 commented 3 months ago

@wn2000 that should help the z80 and 88 games. I lI will find a z80 manual if there are more issues with going down the line for correct flags.

wn2000 commented 3 months ago

I applied the latest change. But '88 games still freezes at the rom check screen.

I tried aquario which is supposed to use z80 for sound, and that works fine.

mahoneyt944 commented 3 months ago

But '88 games still freezes at the rom check screen.

Does it work when you use the original z80 ?

wn2000 commented 3 months ago

But '88 games still freezes at the rom check screen.

Does it work when you use the original z80 ?

Yes it works with original z80.

grant2258 commented 3 months ago

@wn2000 ok ill close this and will try to figure out whats going on. Ill need a new memory card for sure to get a romset on the pi3 dont want to use my 256g for my pi3 when is happy being in the pi5. The 68k never helped but 88 games works fine on mame2k so its something our end interrupt related.