libretro / mame2003-plus-libretro

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

Taito F3 Driver Bug (invisible force field in Gridseeker) #1783

Closed KMFDManic closed 1 month ago

KMFDManic commented 1 month ago

@MistyDreams @mahoneyt944 @arcadez2003 @grant2258 One thing I always make sure to retest as Plus/Xtreme Cores update with commits is Taito F3. I had to test this more than once, just to make sure it wasn't just on my end. Gridseeker aka gseeker.zip has an issue on 2003 Plus, from my latest test results. Once you start the game, you can't move to the bottom of the screen. You have an invisible force field preventing you from getting fully downward.

I tested this on the Mini Classics first, then on PC. Same exact issue. I then tested on 2003 Xtreme, and you can move to the bottom of the screen just fine. I would assume other Taito F3 games may be potentially affected by whatever the root cause of this pesky bug is. It hopefully shouldn't be too difficult to determine what is causing it, as only so much had been done with the driver in the last year. I can try to dissect which commit is the originator of the bug, if it helps.

I will also test other "SHMUPS" on the same driver to see if they also have the force field effect.

arcadez2003 commented 1 month ago

Hi @KMFDManic

Lookin at your core the taito_f3 video has not been updated since the first fix for the lights in Elevator action 2 so my thinking is it's either the updates to the taito_f3 video code in order to support Recalhorn or maybe the second attempt to fix the lighting for Elevator Action 2.

ofcourse the cause could be unrelated to the above and due to wider core changes outwith the Taito_f3 video but for now please test with this small change which was added one build after Recalhorn was supported. https://github.com/libretro/mame2003-plus-libretro/commit/358f5c012a8d1bc00bf64d861c388f7522c04e53

mahoneyt944 commented 1 month ago

If you go all the way up it goes to far up as well. So the range just needs adjusted down. Probably related to changes in the f3_config_table

arcadez2003 commented 1 month ago

Yeah i suspected it might be the recalhorn changes hence im looking at commits after MAME87 to see if they noticed any game breakage and sorted it before the big Taito_F3 rewrite circa MAME97, if the worst comes to the worst i'd be happy to just remove those two proto's as they're not all that good anyhow and that'll fix the issues with gseeker and any others affected.

mahoneyt944 commented 1 month ago

I think it just needs the sprite offset shifted.

arcadez2003 commented 1 month ago

I think it just needs the sprite offset shifted.

I thought it might be layers related but sure it could be a sprite issue, i was gonna as per these notes ask kyland to check that he didn't have the flip screen on.......

Zoomed layers are not always positioned quite correctly in flipscreen mode (Grid Seeker)

It's difficult for me to fix this as with no dev setup i cannot make changes and then test em which is annoying as it's defo me that broke some of these F3 games.

also @KMFDManic you might wanna check this to see if it nets you a speed boost

/* Some games have been verified to be slower in Mame than the real boards
    because of 68020 timing inaccuracies.  This compensates for that by overlocking
    the emulated cpu */
cpunum_set_clockscale(0, 1.4f);

it goes in the driver here... static void tile_decode(int uses_5bpp_tiles)

mahoneyt944 commented 1 month ago

This should fix it https://github.com/libretro/mame2003-plus-libretro/commit/4db726c6b87bec179d6448eb138e1326929c02f5

KMFDManic commented 1 month ago

@arcadez2003 Will test the speedup you mentioned:)

@mahoneyt944 That looks logical. I will also test that fix. Gridseeker has probably some of the best music of the Taito F3 games, next to Gekirindan. I'd hate to have to eliminate "any" games that are playable. Hopefully, this gets us right back on track!

One thing I appreciate about the two distinctive Core branch off paths...it is now much easier to test bugs between the two (Xtreme-Plus). With all the Sega fix-ups that have been added in just the last year alone, it is a shame we still have video logic issues with ThunderBlade. It just seems so close, yet so far, haha. In any case, will test the speed up for Taito on Xtreme, as well as the "fix" for Gridseeker.

I'd also suggest you pull my bootstrap that i've done for Nightslashers, as it maintains "blood mode activate", as well as "3 player support". It is a very nice step-up from the current bootstrap for it in Plus. Try it, yourself:) I will continue playing around with others, as they come to mind. Note: sometimes, nvrams won't properly save. You have to ensure you "exit" and "save settings" properly to generate an appropriate nvram for usage with the bootstrap. It is one of my latest commits for Xtreme. It worked fine in Plus, too, with my testing.

arcadez2003 commented 1 month ago

Thunderblade would require we support the Sega-Xboard driver i usually try and butter up @grant2258 every couple of years or so to see if he'll take a run at it using the newer Sega video code we have kicking around hence why i posted this :)

arcadez2003 commented 1 month ago

This should fix it 4db726c

Ah right so remove a sprite kludge workaround for gseeker then, we'll need kyland to test it out.

KMFDManic commented 1 month ago

Thunderblade would require we support the Sega-Xboard driver i usually try and butter up @grant2258 every couple of years or so to see if he'll take a run at it using the newer Sega video code we have kicking around hence why i posted this :)

Man, ThunderBlade was the game I never ever tired of playing on Sega Master System:) It is also one of those games where it is cool as hell trying the various ports, including the ZX Spectrum and PC-Engine ones. So strange that the MD/Genesis version is the weakest of the bunch! How can MD/Genesis Space Harrier II and Super ThunderBlade pale in comparison to the originals!

If none of you haven't tried it, as of yet, i'd recommend giving Planet Harriers (pseudo sequel to Space Harrier) a go on the Demul emulator. Hopefully, one day, some prototype of it surfaces for usage with Dreamcast Core or real hardware. Really enjoyed the hell out of it, and arguably consider probably the single best Sega on rails shooter, aside from the Star Wars Trilogy one, especially with its nifty "Forgotten Worlds style upgrade system".

P.S.: Finally have Dark Side of the Ring on Hulu for me, so gonna watch more of those, on your earlier recommendation:)

arcadez2003 commented 1 month ago

My local had a few X board games all tbe best ones actually A.B Cop, Afterburner and ThunderBlade, the problem is the road layer is missing for Thunderblade in the ole Sega video code, which is strange as the game was playable way back MAME 36 so it's not as if they didn't have the time to add it for a true classic game.

BTW Tales From The Territories is from the same people as DSOTR well worth checking those out as well

KMFDManic commented 1 month ago

@mahoneyt944 Can confirm the fix works:) All good!

@arcadez2003 I tested with and without the speedup, and it seems to register roughly 5-7 FPS difference between the two. I made sure to have frameskip completely off for the tests. I was running 48-55 FPS without speedup. With Speedup, 55-60. Primary test was, of course, with Gridseeker! I will do a few more tests to confirm beyond a shadow of a reasonable doubt it isn't a placebo effect:) Thanks again.

Feel free to close this issue whenever. We can continue our conversations wherever the "hot topic" of the day is. I will check out Tales From The Territories, as well:)

mahoneyt944 commented 1 month ago

@KMFDManic

I'd also suggest you pull my bootstrap that i've done for Nightslashers

I recall there being romset changes from mame2003 and mame2003+ for nightslashers so the bootstraps are slightly different. Not sure what sets Xtreme uses. I though we had blood enabled, not sure about 3 player though and maybe slight difference based on the region? I'll have to look again.

@arcadez2003

Ah right so remove a sprite kludge workaround for gseeker then, we'll need kyland to test it out.

Yeah I'm guessing that fix removed the need for the kludge. Luckily it's confined to the one game, so shouldn't effect anything else. Win win, and verifies the new code is working properly.

arcadez2003 commented 1 month ago

@arcadez2003 I tested with and without the speedup, and it seems to register roughly 5-7 FPS difference between the two. I made sure to have frameskip completely off for the tests. I was running 48-55 FPS without speedup. With Speedup, 55-60. Primary test was, of course, with Gridseeker! I will do a few more tests to confirm beyond a shadow of a reasonable doubt it isn't a placebo effect:) Thanks again.

Hmm i thought you might get a 5fps or so boost wish i'd spotted this earlier as the xbox could have done with this for the taito-f3 games.

grant2258 commented 1 month ago

Im looking in to thunder blade I assumed you meant the MegaTech - Super Thunder Blade when you mention that game haha

grant2258 commented 1 month ago

Well ive the added sega xboard to the segaic. The games a lot better but it seems to have glitches I think its because we dont have zoom at mame091 afterburner does work fine though.

Ive only partially done the new interrupts for the sound only for now since the old code is just setting using the machine_driver for the main interrupt.

Line of fire boots now as well just needs inputs. Ill update the io and the interrupts at some point to see if its that causing the issue. Only lineoffire and thunder blade blade (the ones that didnt work well use the new code the others use the old code.

https://github.com/grant2258/mame2003-plus-libretro/tree/thunder_blade

Ill update you on any progress or feel free to jump in. Just for notes, if your doing the interrupts the sound slave cpu and gfx cpu are swapped round in the this code and the interrupts commented out will need changed.

Screenshot from 2024-07-13 13-31-58 Screenshot from 2024-07-13 13-31-55 Screenshot from 2024-07-13 13-31-47

KMFDManic commented 1 month ago

@grant2258 badass progress:) Definitely a driver worthy of 2003 Plus:)

On a sidenote, my wife and myself randomly decided to watch Encino Man the other day. And, they showcased system 32 Rad Mobile in the movie. And, after Brendan played the game a bit, he drove a car on its side in one comical scene, heh. I always love when you run into arcade games we play now, in these older movies.

Once the driver is viable enough, in your opinion, to showcase, ill do a ThunderBlade video. Ill likely show off the different ports, since they are all unique in their own way. System 32, I plan on doing another video to showcase all games on the merged driver, s32 and multi32.

arcadez2003 commented 1 month ago

@grant2258 good job big yin from memory Line Of Fire requires.......

0.94u5: Aaron Giles fixed several divide chip behaviors (segaic16.c), fixing Line of Fire and GP Rider. Changed the driver to used explicit sync to get rid of high interleave on Line of Fire, marked Line of Fire as working now that the divide chip is better and marked 317-0136.key bad until Nicola fixes it. Game now playable.

But TBH it's not very good A.B Cop would be the better target. BTW im using MAME90 for the X-board games on the xbox as the code is faster but the games will defo be slowish on the lower spec devices hence better to leave Afterburner using the ole sega video code.

arcadez2003 commented 1 month ago

From my notes......

GAME( 1990, abcop, 0, xboard, abcop, generic_xboard, ROT0, "Sega", "A.B. Cop" ) // decrypted GAME( 1989, rachero, 0, xboard, rachero, generic_xboard, ROT0, "Sega", "Racing Hero" ) // decrypted GAME( 1989, smgp, 0, xboard, smgp, generic_xboard, ROT0, "Sega", "Super Monaco GP (set 7, World, Rev B, 'Twin')" ) // decrypted GAME( 1987, thndrbld, 0, xboard, thndrbld, generic_xboard, ROT0, "Sega", "Thunder Blade" ) // decrypted GAME( 1987, thndrbdj, thndrbld, xboard, thndrbld, generic_xboard, ROT0, "Sega", "Thunder Blade (Japan)" ) // not encrypted

/backported segaxbd driver and segaxbd video from MAME90 all games in this driver are now playable smgp has some GFX glitches which would be fixed if using the MAME91 Sega Gfx but that makes the games take a major speed hit on the Xbox/

mahoneyt944 commented 1 month ago

I plan on doing another video to showcase all games on the merged driver, s32 and multi32.

Everything is working as expected now. Some minor stuff left like the ouput lamps aren't hooked up, which are tied to the misc io. That could remove the need for the radr network check workaround we use but works either way. Other than that, just merging the io handlers for more cleanup and such (more cosmetic fixes).

grant2258 commented 1 month ago

backported segaxbd driver and segaxbd video from MAME90 all games in this driver are now playable smgp has some GFX glitches which would be fixed if using the MAME91 Sega Gfx but that makes the games take a major speed hit on the Xbox/

The sega code here points to mame 091 all I added where the sega xboard video updates and the divider segaic chip. It could be the interrupts as well as the divider video code or a missing mirror. I only added the undecrypted thunder blade sets and fixed the bad line of fire set its just boot to the gun adjust screen now. My only intention is to fix thunder blade though. Its a nightmare here started with a new be and couch now she wanting the whole house done. Which translates to me having to do all the decorating haha,

grant2258 commented 1 month ago

Ive separated the drivers since you can confirm this driver works on mame090 and ive implemented the interrupts and io, Its just the mirrors need done properly. Ill see if we can implement a mirror on this core else ill work out the unmapped addresses and where they should be pointing the work ram 1 and 2 and any others

grant2258 commented 1 month ago

just posting here for notes

main cpu mirrors

{0x80000, 0x83fff, MRA16_BackupRam},
{0x84000, 0x87fff, MRA16_BackupRam},
{0x88000, 0x8bfff, MRA16_BackupRam},
{0x8c000, 0x8ffff, MRA16_BackupRam},
{0x90000, 0x93fff, MRA16_BackupRam},
{0x94000, 0x97fff, MRA16_BackupRam},
{0x98000, 0x9bfff, MRA16_BackupRam},
{0x9c000, 0x9ffff, MRA16_BackupRam},
{0xa0000, 0xa3fff, MRA16_BackupRam2},
{0xa4000, 0xa7fff, MRA16_BackupRam2},
{0xa8000, 0xabfff, MRA16_BackupRam2},
{0xac000, 0xaffff, MRA16_BackupRam2},
{0xb0000, 0xb3fff, MRA16_BackupRam2},
{0xb4000, 0xb7fff, MRA16_BackupRam2},
{0xb8000, 0xbbfff, MRA16_BackupRam2},
{0xbc000, 0xbffff, MRA16_BackupRam2},
{0x280000, 0x283fff, MRA16_Shared RAM0},
{0x284000, 0x287fff, MRA16_Shared RAM0},
{0x288000, 0x28bfff, MRA16_Shared RAM0},
{0x28c000, 0x28ffff, MRA16_Shared RAM0},
{0x290000, 0x293fff, MRA16_Shared RAM0},
{0x294000, 0x297fff, MRA16_Shared RAM0},
{0x298000, 0x29bfff, MRA16_Shared RAM0},
{0x29c000, 0x29ffff, MRA16_Shared RAM0},
{0x2a0000, 0x2a3fff, MRA16_Shared RAM1},
{0x2a4000, 0x2a7fff, MRA16_Shared RAM1},
{0x2a8000, 0x2abfff, MRA16_Shared RAM1},
{0x2ac000, 0x2affff, MRA16_Shared RAM1},
{0x2b0000, 0x2b3fff, MRA16_Shared RAM1},
{0x2b4000, 0x2b7fff, MRA16_Shared RAM1},
{0x2b8000, 0x2bbfff, MRA16_Shared RAM1},
{0x2bc000, 0x2bffff, MRA16_Shared RAM1},
KMFDManic commented 1 month ago

@grant2258 hope all is well on the homefront. It definitely becomes increasingly challenging to find time to do stuff like this. But, when we do, we most certainly make it count:)

Loving the progress updates on ThunderBlade, etc.!

arcadez2003 commented 1 month ago

Yeah @grant2258 never mind the others Thunderblade is enough that's the game they've asked for over the years the MAME90 code is way faster than MAME91 and Thunderblade works well with it and the bonus here is users dont have to mess about with decrypted bootlegs as we have a working unprotected set already.

Personally i left the Afterburner sets using the ole video code as both games are way faster using it, i did a side by side at the time and we're only talking about minor gfx niggles TBH, certainly not worth taking a performance hit to sort but at the end of the day the choice as they say is all yours as to which code you wanna use.

And hey man enjoy the decorating mind not to miss a bit :)

@KMFDManic Thunderblade might be a little slow on some of the lower end devices your core targets but i have a workaround for this which i use on the Xbox which involves speeding up the CPU coms but we'll cross that bridge should you need too sometime down the road

grant2258 commented 1 month ago

@KMFDManic @arcadez2003 ive implemented the maps and updates getting unmapped reads on cpu2 and I need to find out where the extra read on the cpu comes from as well. The tanks seem to be casing the issue. The maps are interrupts are done will need to see what our sneaky sega code mappings are coming from will do all the mirrors at the weekend so see if any of them decide to enlighten us!

@KMFDManic doing well always the same in the summer all of us have less time when we are pumped full of vitamin d. All is well here hope all is well with you and your family.

@arcadez2003 getting two ram failures in the test ic38 and ic39 just need to figure out what they are mapped too. Ill hook the line of fire inputs up as well and see if that works at some point.

arcadez2003 commented 1 month ago

Hey @grant2258 great work big yin i knew you'd have it done sharpish it's just whether you could assed or not im glad you were right enough :)

Line Of Fire is no big deal TBH it's not all that good plus you'd have to update the segaic machine code to stop it from locking up and something tells me in the back of my head that you'd need to then update some of the other drivers using that machine as well, but i suppose it's something you might wanna do to kill a couple of hours on those long dark winter nights ;)

grant2258 commented 1 month ago

The segaic divider chip is at mame095 was part of the update nothing else is using it. Most games are hooked up pre ic code anyhow bit the option is always there to add the ones that require the divider chip. I cant remember if I changed interleave to 100 its safe to do that now with the updated segaic code. I think it could sprite ram mirrors causing ic failure on the memory test the games working fine though. Think I got all the other ram mirrors the games fine though so thats the main thing. Ill hunt it down if there is any issues.

Screenshot from 2024-07-16 13-59-02

KMFDManic commented 1 month ago

@grant2258 @arcadez2003 @mahoneyt944 I did a test of the updated code. Enemies display properly. It seems the AI, itself, isn't hooked up, however. Enemies do not shoot directly at you. You can pretty much skate right through the levels untouched, and the pattern is this. First part of each stage, overhead, Second part, 3D, Third part Overhead boss. The overhead bosses do not attack you at all, from what I am seeing. It is incredibly fun playing this, finally!

On a funny sidenote, a friend of mine was having trouble tackling the original Top Gun on NES. And, I have always been adept at exploiting games. In the case of Top Gun, despite one thinking the game is "hard", it is actually incredibly easy! If you can't see enemies onscreen, they also cannot attack you! And, in the landing portions, when it tells you to go up, up up, or down down down, the game incorrectly tells you which direction. You just do the opposite of what it tells you. So, saying to go up up up, is actually going down down down.

Loving the ThunderBlade implementation! Looking forward to seeing how further things develop:)

grant2258 commented 1 month ago

@KMFDManic there is still a memory fail in teh testing. I will talk a look when I get more time. The biggest problem with this core is its basically impossible to even debug as every single bit of debug information is enabled that should be only enabled if your debugging a certain thing. It might be quicker debugging this on your core since not everything is spammed.

KMFDManic commented 1 month ago

@grant2258 I definitely don't mind testing anything necessary on Xtreme, if it helps. I actually think it is cool seeing the evolution from how it used to run, to even now. Ill do a showcase video in next day or so, since this sort of stuff is certainly interesting. Let me know what youd like me to do in Xtreme, as in port over your commits, or if you wanna take a looksee and pull request. Whichever works.

grant2258 commented 1 month ago

Just going to grab a cup of coffee then Ill do these sprite ram mirrors I get a nagging feeling thats needing done.

Fixed the sprite ram up but the other error of not getting attacked still exists. Im going to have to double check all the shares are right. The divider chip will need double checked because that deals with collisions ect in system16 for golden axe anyway.

@arcadez2003 in sick of hand pasting mirrors this might help make your life easier. Just pay careful attention to any AMEF_ABITS as its essentially will and the that by the power of 2 ie AMEF_ABITS(22) will be 22 ^2 -1 essentially & it by 0x3fffff our core will expect the 0xffffff addressed always.


#include <stdio.h>

void mirror(int startadd, int endadd, int mirror, char *function) 
{
    for (int memory = startadd; memory < (endadd + mirror); memory += endadd-startadd +1 ) 
    { 
        printf("\t{ 0x%x, 0x%x, %s },\n", memory, memory + endadd-startadd, function );
    }
    printf("\n");
}

int main()
{
    //AM_RANGE(0x080000, 0x083fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(1) AM_BASE(&backupram1)
    mirror(0x80000, 0x83fff,0x1c000, "SYS16IC_MRA16_BACKUPRAM1 },");
    mirror(0x80000, 0x83fff,0x1c000, "SYS16IC_MWA16_BACKUPRAM1, &backupram1 },");
    //AM_RANGE(0x0a0000, 0x0a3fff) AM_MIRROR(0x01c000) AM_RAM AM_SHARE(2) AM_BASE(&backupram2)
    mirror(0x0a0000, 0x0a3fff ,0x1c000, "SYS16IC_MRA16_BACKUPRAM1 },");
    mirror(0x0a0000, 0x0a3fff ,0x1c000, "SYS16IC_MWA16_BACKUPRAM1,&backupram2 },");

}

@KMFDManic I have fixed all the mappings. Im not familiar with this game but its not a bug out end per say mame currents doing the same thing.

KMFDManic commented 1 month ago

@mahoneyt944 @arcadez2003 @grant2258 @dinkc64 This is quite interesting. I believe my observations may potentially be something overlooked within the ThunderBlade implementation into MAME/FBNEO, over the years. Most people, who DO play ThunderBlade, would obviously just move around, and shoot the enemies, and automatically assume they are avoiding the attacks. I tested ThunderBlade on EVERY Core, and enemies miss you in every single version, EXCEPT in the boss battles in FBNEO and later MAME revisions.

I watched videos of people playing ThunderBlade on an emulator, and you can see the enemy fire is pretty much not gonna hit them, either. Only thing I didn't personally test was "standalone" MAME. But, i'd, for now, assume the issue exists there, as well.

I am not entirely sure if anyone else ever noticed this. But, I think we are in an interesting spot, with a game that in compatibility lists, is considered good and working, yet has enemies that shoot at you with the accuracy of Star Wars Stormtroopers, haha.

So, ultimately, @grant2258 not sure if anyone HAS acknowledged this game logic ai issue, in the past, or not. If it becomes something that isn't easily fixable, i'd at least be happy enough with "working boss battles", which should be viable. But, damn, it is pretty crazy that even I haven't noticed this before, since I usually do the same thing, just move and attack...thinking I was just doing good, haha. Play the SMS version, you will be shot down quite fast, haha...!

But, for now, I can confirm, at least on my end, no version or Core I have tested, has enemies properly shooting at you, in phase 1 and 2 of each stage, but boss battles function properly, from what I can see. I even tested dip switches to see if somehow, "harder or hardest" difficulty might potentially make a difference. But, just let my controller sit there, unscathed, hehe. Hell, it was even "difficult" to intentionally get shot down in phase one, by forcing myself towards enemy fire:)

arcadez2003 commented 1 month ago

@KMFDManic TBH it might be the version your using and maybe others in those YT vids is bugged try another version as quite often arcade releases had bugs which were sorted in later revisions, the reason i mention this is i remember getting routinely blown out the sky while traversing the levels but my ole brain ain't what it was maybe that was while playing it in the cades back in the day rather than with MAME.

But if indeed the problem persists then you might wanna raise this on the MAME git or their testers site not mentioning this core obviously or they'll likely send ya packing :)

KMFDManic commented 1 month ago

@arcadez2003 ill do a test with the supported rom revisions for each tier of MAME, just to be certain. Hopefully, you truly did play a version that had the appropriate fixed enemy targeting intact:) I haven't seen one, as of yet, in my personal testing.

grant2258 commented 1 month ago

Guys the code is based on mame091 dont know much about the game but if there is a better version on a specific version of mame let me know. If the segaic needs updated for a better version I can do that on your port @KMFDManic as this core is specifically for lower end users.

@KMFDManic just to keep you updated I did fix the missing mirrors and mapping before the boss was missing sprites thats been fixed. There is sharp x68k version that might be worth trying, the nds version looks like the closest or maybe even better than the arcade version but ill need to track the rom down.

mahoneyt944 commented 1 month ago

I wonder if this is like the contra issue in level 2 where enemies wouldn't fire at you that just recently got fixed up. Could be that it's just some protection issue that's unknown still.

arcadez2003 commented 1 month ago

Ok did a test using the bootleg Thunder Blade set using standalone FBN the game works as i'd expect the tanks and or planes can shoot ya down and your toast if you collide with a building,

@KMFDManic you do know that if you fly high the tanks on the ground cant target you as well but other helicopters can and vice versa.?? i mean fly low and the tanks should blow ya out the sky quite quickly.

KMFDManic commented 1 month ago

@arcadez2003 ill retest on latest commits for 2003 plus with the outlined romsets. When I tested, it was previous to the current commits. I went different altitudes and enemies missed me no matter what I did. I changed difficulty to hardest and they still kept missing me and could only perish by intentionally crashing into buildings or helicopters. Ill grab latest code and retest after work:)

Ill also check out some of the other ports, as ive always enjoyed about any version of this particular game.

I am fairly sure in the original arcade version, enemies would almost immediately shoot you down if you didnt touch the controls, no matter what altitude you was at. But, ill do more testing. Thanks again, everyone!

I will also, of course, show the progress within THIS Core in my video demonstration, with a few builds in a row. Ill also be sure to showcase enemies completely missing me in the prior commits. I usually do progression builds just so I can verify things regress or are for the better, anyways

arcadez2003 commented 1 month ago

Ok the test results are in from xcalibur.....

i played through a couple of levels on both mameoxtras and fbl and can confirm that enemy fire does indeed miss you completley on the top down levels. once your looking from behind then its buisness as usual.mame 0.112 also has the same problem when it comes to the top down levels,i just tested it out. final burn alpha on xbox 360 also has the same problem.

So then is this an issue with the older cores fixed in later builds.?? certainly there is nothing in the MAME WIP or bug report logs that mention it maybe a wider google search might uncover something.

As i said earlier with latest FBN on the topdown and zoomed in behind sections i was shotdown by the tanks and planes but i did have to really go outta my way to make it happen most bullets would miss but the odd one would hit.

arcadez2003 commented 1 month ago

Right well i've done my bit someone needs to test using this core doin what i did that's to say play the first top down and zoomed in sections briefly on level one to see if you get shotdown by the tanks then reset the game rinse and repeat.

If your helicopter gets downed then we know there is no bug if you cant get shotdown then there will be an issue.

KMFDManic commented 1 month ago

@arcadez2003 I DO have the 3DS M2 conversion of the Arcade Version, as well, and will give that a test, to truly truly confirm.

My theory is that, potentially, the mathematics involved in the very complex scaling for phase 1 of each stage is so demanding, that they simply never truly bothered with the enemies truly accurately targeting you. No matter which Core or Emulator or version of the game I try thus far, it seems to behave the same, where I gotta go out of my way to get hit in phase 1. If I crank difficulty to hardest, zero difference in phase 1. But, in phase 2, I get taken down as I am expected to be taken down:)

So, in essence, til I give the 3DS version a good test, I am thinking the overhead "scaling" levels are too dynamically complex to handle the good enough AI to accurately take you down. Again, I don't think anyone ever noticed this before, because you are naturally moving around shooting, and thinking you are avoiding the enemy fire! But, it is ultimately, seemingly...just an illusion due to hardware limitations!

That is just my opinion, for now, however!

I did watch a few videos of the 3DS version, which is part of the Sega 3D Classics...Great collection, by the way. And, it seems the phase 1 misses people there, too, unless they "happen" to be in the way of enemies by coincidence.

Throughout the years, I tend to notice things like this, in whichever game I play. But, once you notice it, you can't unnotice it, haha. It may not be a bug, at all, and actually just how the game was designed! But, no worries, this will be a fun 3DS test, as if enemies miss you completely there, I would only assume that is how the Arcade Version always was!

This is definitely exciting, however, seeing the evolution, as this was updated into 2003 Plus:) Definitely a difference between before it was fixed, to right before the current commits, to "now". I will get a video done, showcasing these.

I did try the SMS and PCE versions, and had fun with those. SMS version has always been my favorite home port. I will update, once I try the 3DS version on the real cartridge on a real 3DS, to ensure accurate test results!

Thanks again for humoring me through all of the shenanigans. Whoever would have thunk, Thunder Blade may have been super easy, all along, haha. But, that amazing advanced scaling..it makes sense!

arcadez2003 commented 1 month ago

Well sometimes not moving i'd be hit other times while moving i was hit, but yeah im ready to call this as not a bug but just how the game actually functions, and TBH it's playable now in this core when it wasn't previously so maybe we should focus on that eh :)

Anyway as i said im done now with this cant do anymore from here plus im working on advancemame just now.

KMFDManic commented 1 month ago

@arcadez2003 @grant2258 Where we stand, with the current commits for Thunder Blade Arcade in MAME 2003 Plus, we are absolutely fine:) In testing on other Cores, Emulators, aside from the 3DS version, which I would need to test...the behavior for phase 1-3 is pretty much identical. You CAN get hit by enemy fire, tanks, etc, in phase 1. You are more likely to get hit if you change to a higher difficulty, however!

I find the game far more fun on the absolute hardest difficulty in dip switches!

I appreciate all you guys have done to get this one in Plus, and I consider it more than serviceable:) I will get a video up when I can. @arcadez2003 Thanks for taking the time to check into this. You focus on your AdvanceMAME for now:)

@grant2258 Thank you so much for getting the one single game I have always wanted into Plus:) It is far too slow on the higher Cores to truly be viable and enjoyable! It works fantastic on Plus! So, we are good, for now:)

Looking forward to whatever else comes into Plus in the foreseeable future. I will still, for the sake of things, test 3DS for kicks. But, I am happy where everything stands! Boss battles, everything, working great in current commits. The chaos of phase 2-3 is more pronounced and more fun with harder difficulty! Chat again, soon:) Will drop video link here once it is up!

KMFDManic commented 1 month ago

@arcadez2003 I was able to test the 3DS version. Even on the most difficult setting, phase one of each stage pretty much behaved like my previous results, with me being able to mostly coast through unscathed at practically any speed or altitude, rarely getting hit if at all. Phase 2 and 3, of course, got taken down quick if I didnt touch the controller:)

So, it seems, after all...it may be just how the game is designed. They (M2) did a great job on the 3DS version, for what it's worth.

I'll get stuff together for a demonstration video, soon:)

grant2258 commented 1 month ago

Well that some good news @KMFDManic glad your enjoying it. If anyone wants to add the other drivers feel free is one n done for me.

arcadez2003 commented 1 month ago

Added A.B. Cop just hung it off the existing code it'll either work or blow up we'll see :) https://github.com/libretro/mame2003-plus-libretro/commit/d2b68cced4a5ce2970ff201c3173f6439fe4ad6c

If it works then i could add Racing Hero and Super Monaco GP as i have the inputs done for those just need the roms then.

mahoneyt944 commented 1 month ago

Added A.B. Cop just hung it off the existing code it'll either work or blow up we'll see :) d2b68cc

If someone wants to test it abcop.zip

If it works then i could add Racing Hero and Super Monaco GP as i have the inputs done for those just need the roms then.

Game fires up abcop-240720-145211

arcadez2003 commented 1 month ago

Looks ok gfx wise at least, does it have sound.?? do the inputs work.??

grant2258 commented 1 month ago

just finishing up with the port degas32 port for km looks like i missed a git add. ill check it in a bit cheers for doing it @arcadez2003 I would eventually done it I think.