libretro / mame2003-plus-libretro

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

System16 WIP #1396

Closed mahoneyt944 closed 1 year ago

mahoneyt944 commented 2 years ago

Starting unified issue for these games as requested.

mahoneyt944 commented 2 years ago

@MistyDreams @arcadez2003 I got passht4b gfx working, still needs the sound fixed though. Not sure if this is a simple mem map issue or a chip issue, maybe a totally different hookup.

MistyDreams commented 2 years ago

later mames have the sound hooked up for this bootleg, info will be there if you want to fix it. A lot of the bootlegs have gfx issues in later mame guess they figured the decrypted bootlegs sets where better quality or they just never go round to fixing the bootleg gfx issues.

mahoneyt944 commented 2 years ago

I don't think many mame versions work with this 4 player version, gfx wise, so I wanted to get it working here. It's still not perfect but pretty great all things considered.

Haven't looked into the sound but that would be great if it's not too difficult to get going.

MistyDreams commented 2 years ago

yea wont do any harm if someone decided to add sound to the bootleg have to agree.

arcadez2003 commented 2 years ago

It's tagged as imperfect sound in what's left of the system16.c in current MAME @mahoneyt944 you should check what hookup it's using after these two commits.......

0.181: Sound improvements for clone Passing Shot (4 Players) (bootleg). Hook up MSM5205 and 74LS157, game now have some imperfect samples playback [AJR]. 0.175: Osso added preliminary sound to clone Passing Shot (4 Players) (bootleg).

EDIT It's using the Shinobi Datsu bootlegs sound you'd need to look when those sets were added with a view to backporting the sound hookup they use which should be good for this game it's 2xYM2203 + MSM5205 your after by looks

mahoneyt944 commented 2 years ago

Also just added snapper which piggybacks atomicp. Both have no sound. It's basically "snake" back before phones became "smart". Lol

arcadez2003 commented 2 years ago

0.123u1: Changed YM2413 clock speed to 5MHz. 0.89u3: Aaron Giles hooked up sound in Atomic Point (tempo is just a guess right now).

Dunno about Snapper though but it may well use the same hookup

mahoneyt944 commented 2 years ago

Snapper looks to be the same sound except i see something about a divisor variable being used.

Also, with the video, this game seems to just use tiles, I think. I saw something about disabling vblank /refresh or something, can't remember now lol. The game plays a little choppy but I think that might be the way it is unless we need to disable the vblank or refresh still.

mahoneyt944 commented 2 years ago

I didn't think this game would be that great but it's growing on me ha https://m.youtube.com/watch?v=DNSbbFBiOtM&t=117s

MistyDreams commented 2 years ago

if you disable the vblank it wont run

mahoneyt944 commented 2 years ago

Can't remember, I'll find it again. Here's the link.

https://github.com/libretro/mame2010-libretro/blob/5f524dd5fca63ec1dcf5cca63885286109937587/src/mame/drivers/segas16b.c#L6561-L6570

MistyDreams commented 2 years ago

well that just stops the system16 video refresh disable kicking in it will be in coin control in your code add a variable to stop its reading and leave it enabled

mahoneyt944 commented 2 years ago

Seems the same as atomicp, so I guess if that's set right already, this game should be ok too.

MistyDreams commented 2 years ago

if it was an issue you would be getting black screen frames

mahoneyt944 commented 2 years ago

Seems ok to me.

mahoneyt944 commented 2 years ago

Just merged a priority fix for action fighter. Looks good so far but needs some critical eyes to help find any issues. Let me know if either of you see anything.

Edit found one, enemies on the islands (driving boat) are layered wrong. I'll have to see if this is a bg or fg issue.

arcadez2003 commented 2 years ago

Damn i spent an hour or so on this yesterday but i was focused on the bg_prios as i thought the bridges were on that layer silly me anyway some nice progress good to see.

mahoneyt944 commented 2 years ago

@arcadez2003 latest commit should solve all the priority issues in action fighter. It's firing on all cylinders now 👍.

MistyDreams commented 2 years ago

something must be really wrong with the system16a tile/sprite priority decoding to need these priority changes

arcadez2003 commented 2 years ago

something must be really wrong with the system16a tile/sprite priority decoding to need these priority changes

There was no set system type drawing back then just a whole chunk of code all the games used in one way or another all hacks and mods basically and not 100% for everyone one.

arcadez2003 commented 2 years ago

@arcadez2003 latest commit should solve all the priority issues in action fighter. It's firing on all cylinders now 👍.

Good stuff

MistyDreams commented 2 years ago

There was no set system type drawing back then just a whole chunk of code all the games used in one way or another all hacks and mods basically and not 100% for everyone one.

right enough not sure what set aliensyn really is could be systen16b would need to check that to be fair could be code wide

MistyDreams commented 2 years ago

shinobibl seems to be leaving spirtes on the screen

mahoneyt944 commented 2 years ago

Ah I see shinobl-220629-173557

MistyDreams commented 2 years ago

even without that sray bullets ect

mahoneyt944 commented 2 years ago

Hmm need to verify type1 textram, in mame2003 it was this but it differed for certain games, (set_bg_page vs set_bg_page1)

Either that or the new quartet2 spritesystem

static void shinobl_update_proc( void ){
    set_bg_page( sys16_textram[0x74e] );
    set_fg_page( sys16_textram[0x74f] );
    sys16_fg_scrolly = sys16_textram[0x792] & 0x00ff;
    sys16_bg_scrolly = sys16_textram[0x793] & 0x01ff;
    sys16_fg_scrollx = sys16_textram[0x7fc] & 0x01ff;
    sys16_bg_scrollx = sys16_textram[0x7fd] & 0x01ff;
}
MistyDreams commented 2 years ago

yea them functions are identical someone put the set_bg_page and set_fg_page in a ifdef unless the source was already like that

mahoneyt944 commented 2 years ago

Found the issue it's the quartet2 spritesystem change, see T2 branch, fixes the issue.

MistyDreams commented 2 years ago

yea that priority value is off for a start in the spritesystem

mahoneyt944 commented 2 years ago

Not sure why shinobl has an issue with the top and bottom adding 1. Simple hack to fix it but probably another reason this is happening. The other games need the plus 1 for alignment.

Updated the t2 branch to fix this

mahoneyt944 commented 2 years ago

Merged #1407, not sure if there's a better way but this seems to work. Let me know if it solves the issues you saw.

mahoneyt944 commented 2 years ago

We should probably log top and bottom and see what's going on, I bet it's clipping and returning before it sets the priority. Removing 1 gets it just inside the threshold.

Also, noticed a sprite issue on the "S" in SEGA. This is an old issue though but maybe related?

MistyDreams commented 2 years ago

I bust doing other updates cant merge atm else ill have to fix re-bases ect. Do you have sound in alexkidd Seems im not getting any sound. Ill need to rebuild my roms to check master.

mahoneyt944 commented 2 years ago

Yes alexkidd and alexkida are both working with the sound.

MistyDreams commented 2 years ago

hm ones protected both are working for you ?

mahoneyt944 commented 2 years ago

It's not working but sound still plays if you let it run

MistyDreams commented 2 years ago

i know what i did stupid mistake on my part!

arcadez2003 commented 2 years ago

@MistyDreams @arcadez2003 I got passht4b gfx working, still needs the sound fixed though. Not sure if this is a simple mem map issue or a chip issue, maybe a totally different hookup.

https://github.com/libretro/mame2003-plus-libretro/commit/bc7bdb6bdf56a88fd5a91e5e27efca6ac1687177

The YM2203 is done the msm5205 still needs hooking up though it looks tricky due to code diffs etc etc.

mahoneyt944 commented 2 years ago

Nice work. That really brings the game to life.

mahoneyt944 commented 2 years ago

@arcadez2003 though I think it might be running too fast, check against passshtb

arcadez2003 commented 2 years ago

Ah it's likely this then.........

MDRV_CPU_ADD_TAG("sound", Z80, 4096000)

As the driver i grabbed the YM2203 code from had switched back to 4000000 for the Z80 all i can do is match up the YM2003 with our Z80 clock and hope ofr the best :)

mahoneyt944 commented 2 years ago

I'll test it

arcadez2003 commented 2 years ago

This is the original commit incase you spot an error i might have made, the YM2203 mem address values are handled differently in this core so i had to seriously mod em but if those were incorrect we'd have no sound rather than it being to fast.

https://github.com/mamedev/mame/commit/437b4a615b42cdb961a960ff6f573674a9c64e8d

arcadez2003 commented 2 years ago

Hmm i see your Z80 clocks are different from mine in MAME72 and since i hooked to the system16b Machine driver start it looks like it'll need to be 5000000 for the YM2203

MistyDreams commented 2 years ago

nah not different just system16b was added for the u7759 the original system16 is there as it was

mahoneyt944 commented 2 years ago

MDRV_CPU_PERIODIC_INT controls the tempo, I slowed it down by ear. Not sure if there's an exact way to match the timing but it sounds close

mahoneyt944 commented 2 years ago

When you swing the racket, the noise sounds like nails on a chalk board lol.

Doesn't sound bad in the test menu though I think it's sound number 60 or 64. Maybe the volume is just clipping when everything is all together?

MistyDreams commented 2 years ago

knew these changes would mess up what i was doing. This is the last time im spending 30 minutes and im still re basing still not. if it happens again not going to all the hassle to keep it based with master.

arcadez2003 commented 2 years ago

I thought those sounds are sample based and are triggered by the MSM5205 hence they're broken without it hooked up

0.181: Sound improvements for clone Passing Shot (4 Players) (bootleg). Hook up MSM5205 and 74LS157, game now have some imperfect samples playback [AJR].

mahoneyt944 commented 2 years ago

knew these changes would mess up what i was doing. This is the last time im spending 30 minutes and im still re basing still not. if it happens again not going to all the hassle to keep it based with master.

This is just the nature of working in a public project. But as a fore warning, I was under the impression we were not removing the protected sets just for the sake of? Unless I've misunderstood? or are you working on something else entirely? Just trying to reach an understanding here to avoid miscommunication and issues later. Hopefully you can elaborate on what you're doing or proposing to do so we are all on the same page.

I thought those sounds are sample based and are triggered by the MSM5205 hence they're broken without it hooked up

I think the 5205 is likely used for the announcer voices. I didn't hear them when testing, but this is only my guess.