libretro / mame2003-plus-libretro

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

Backport request: Fantasy Zone II - The Tears of Opa-Opa (fantzn2x) #1239

Closed vaguerant closed 2 years ago

vaguerant commented 2 years ago

The original Fantasy Zone was released for Sega System 16 and is emulated in MAME 2003 Plus. The sequel, Fantasy Zone II, was originally a Sega Master System exclusive, but in 2008 Sega contracted M2 to port the game to System 16 hardware.

The new Fantasy Zone II runs on a slightly modified System 16 board, with more RAM than the original boards. It was added to MAME in mid-2012, well beyond MAME 2003/0.78, but I'm hoping the changes needed are small enough that the 2003 version of the driver could have System 16C/Fantasy Zone II support added without the need to backport too much.

Here's the commit which added Fantasy Zone II to MAME. mamedev/mame@bac858b0a3f73860847e7430ba97b9c8657ddccb MAME was still using the old non-commercial license at this point, so even if it isn't directly usable, it should be fine to reference its code.

arcadez2003 commented 2 years ago

Yeah im familiar with this one as i keep a copy of the game in my set decent wee game but annoyingly missing a continue mode, short answer here is simply this look at the commit and those tables at the top of the driver which were created so that many games can share the same code instead of like our ole driver having a unique code hookup for every single game.

The problem here is as i said we dont have those tables in our ole driver so to add this game and get it up and running we'd need to create a whole new hookup for it directly im not saying it cannot be done but it certainly wont be a simple job

Regards

vaguerant commented 2 years ago

It's a shame to hear that it's not a quick fix. Feel free to close the issue if the request is unrealistic.

mahoneyt944 commented 2 years ago

Seems to look like wrestwar though fz2.a2 and fz2.b11 are bigger so I think we'd use rom_continue on these.? Probably completely wrong 🙃

ROM_START( fantzn2x )
    ROM_REGION( 0xc0000, REGION_CPU1, 0 ) /* 68000 code */
    ROM_LOAD16_BYTE( "fz2.a7", 0x00000, 0x20000, CRC(94c05f0b) SHA1(53da68a919776a46ae96dbc094ff941308d13613) )
    ROM_LOAD16_BYTE( "fz2.a5", 0x00001, 0x20000, CRC(f3526895) SHA1(3197956608138601192f111d3bcc26662a7d6ec1) )
    /* empty 0x40000 - 0x80000 */
    ROM_LOAD16_BYTE( "fz2.a8", 0x80000, 0x20000, CRC(b2ebb209) SHA1(bd40c90a372ab92a869bdd28d12cf52b45ecc80e) )
    ROM_LOAD16_BYTE( "fz2.a6", 0x80001, 0x20000, CRC(6833f546) SHA1(b4503cdb5bdb1322c34b9da3ff4227c740dad707) )

    ROM_REGION( 0x60000, REGION_GFX1, 0 ) /* tiles */
    ROM_LOAD( "fz2.a14", 0x00000, 0x20000, CRC(1c0a4537) SHA1(3abdf51ea81780309bcfaf12c04efdf7cb15a649) )
    ROM_LOAD( "fz2.a15", 0x20000, 0x20000, CRC(2b933344) SHA1(5b53ea8d58cc3d157aec6926db048359984e4276) )
    ROM_LOAD( "fz2.a16", 0x40000, 0x20000, CRC(e63281a1) SHA1(72379c579484c1ef7784a9598d373446ef0a472b) )

    ROM_REGION( 0x300000, REGION_GFX2, 0 ) //* sprites */
    ROM_LOAD16_BYTE( "fz2.b1",  0x000001, 0x10000, CRC(46bba615) SHA1(b291df4a83d7155eb7606f86ed733c24362a4db3) )
    ROM_CONTINUE( 0x040001, 0x10000 )
    ROM_RELOAD  ( 0x020001, 0x10000 )
    ROM_CONTINUE( 0x060001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b5",  0x000000, 0x10000, CRC(bebeee5d) SHA1(9e57e62c6b9136667aa90d7d423fc33ac6df4352) )
    ROM_CONTINUE( 0x040000, 0x10000 )
    ROM_RELOAD  ( 0x020000, 0x10000 )
    ROM_CONTINUE( 0x060000, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b2",  0x080001, 0x10000, CRC(6681a7b6) SHA1(228df38601ba3895e9449921a64850941715b421) )
    ROM_CONTINUE( 0x0c0001, 0x10000 )
    ROM_RELOAD  ( 0x0a0001, 0x10000 )
    ROM_CONTINUE( 0x0e0001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b6",  0x080000, 0x10000, CRC(42d3241f) SHA1(c3240e3e1d7d398e74e76ba65adca6b06f0f67a9) )
    ROM_CONTINUE( 0x0c0000, 0x10000 )
    ROM_RELOAD  ( 0x0a0000, 0x10000 )
    ROM_CONTINUE( 0x0e0000, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b3",  0x100001, 0x10000, CRC(5863926f) SHA1(0e591c4b85e5d572b3311bec2c1f6d2484204db6) )
    ROM_CONTINUE( 0x140001, 0x10000 )
    ROM_RELOAD  ( 0x120001, 0x10000 )
    ROM_CONTINUE( 0x160001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b7",  0x100000, 0x10000, CRC(cd830510) SHA1(8a32a1aa43f8af5e86f552f05da40b6e4ba12495) )
    ROM_CONTINUE( 0x140000, 0x10000 )
    ROM_RELOAD  ( 0x120000, 0x10000 )
    ROM_CONTINUE( 0x160000, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b4",  0x180001, 0x10000, CRC(b98fa5b6) SHA1(c3f8891f81e80321e2ee5cc1f4d93b1867ed1868) )
    ROM_CONTINUE( 0x1c0001, 0x10000 )
    ROM_RELOAD  ( 0x1a0001, 0x10000 )
    ROM_CONTINUE( 0x1e0001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b8",  0x180000, 0x10000, CRC(e8248f68) SHA1(7876945d2baf1d7bdb9cc3a23be9f1a1681cede9) )
    ROM_CONTINUE( 0x1c0000, 0x10000 )
    ROM_RELOAD  ( 0x1a0000, 0x10000 )
    ROM_CONTINUE( 0x1e0000, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.a1",  0x200001, 0x10000, CRC(9d2f41f3) SHA1(54f5dc47d854cd26b108695f55263d8b8c29ce0e) )
    ROM_CONTINUE( 0x240001, 0x10000 )
    ROM_RELOAD  ( 0x220001, 0x10000 )
    ROM_CONTINUE( 0x260001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b10", 0x200000, 0x10000, CRC(7686ea33) SHA1(812a638f42500b30f80f9a3956c5eb4553cc35d0) )
    ROM_CONTINUE( 0x240000, 0x10000 )
    ROM_RELOAD  ( 0x220000, 0x10000 )
    ROM_CONTINUE( 0x260000, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.a2",  0x280001, 0x10000, CRC(3b4050b7) SHA1(8c7c8051c577a4b2ca54d7e60c100fbd5391551f) )
    ROM_CONTINUE( 0x2a0001, 0x10000 )
    ROM_LOAD16_BYTE( "fz2.b11", 0x280000, 0x10000, CRC(da8a95dc) SHA1(d44e1515008d4ee302f940ce7799fa9a790799e9) )
    ROM_CONTINUE( 0x2a0000, 0x10000 )

    ROM_REGION( 0x50000, REGION_CPU2, 0 ) /* sound CPU */
    ROM_LOAD( "fz2.a10", 0x00000, 0x08000, CRC(92c92924) SHA1(3c98cea8f42c316405b28ae03469c6876de5e806) )
    ROM_LOAD( "fz2.a11", 0x10000, 0x20000, CRC(8c641bb9) SHA1(920da63961d2f3457c80d4c5f6d4f405374bb23a) )
ROM_END
arcadez2003 commented 2 years ago

So you wanna hang it off Wrestle War we'd still need to call the extra ram via a new memory map the pcb is basically System B with extra ram space hence some people call it System C

i tried something similar last year but used Wonder Boy III instead game never booted right enough but then again maybe i should have hooked up to the grappling game instead :)

Anyway @mahoneyt944 give it a go and see how it pans out im busy just now with Xena Crisis trying to add support for this recent dump to our ole NeoGeo driver but i cant get it to boot as of yet.

EDIT:: silly me i forgot to set the date on my xbox hence which prevents the NeoGeo games from booting everything is good now so i'll add support for Xeno Crisis shortly

mahoneyt944 commented 2 years ago

I was wondering if we could use the driver init to install the extra read and write handlers?

ghost commented 2 years ago

yes you can install memory and port handlers if you choose too. You just need to figure out what memory handler you need if its the 68k be install_mem_read16_handler and install_mem_write16_handler check the memory maps with the MRA to get the right size could be 8 16 or 32 depending cpu

arcadez2003 commented 2 years ago

@mahoneyt944 So i had a wee look at this the good news i suppose is that there is not a total wipeout in the sense the game boots and functions in the background unlike if we hookup to other 5704 games like Aurail or Bayroute etc etc however a black screen is all that we get, it could be im not handling the extra ram correctly.??

Or simply a case of the gfx handling for Wrestle War setup via a combination of this call wrestwar_update_proc and the driver and machine INIT's are plain wrong for this game.??

Fancy talking a look at this sometime.?? to see if you can get the game to do something im kinda confident that if you manage to sort the extra ram we would have a decent chance of fixing the gfx but as you know there are no guarantee's either way.

The first post in this thread has a link to the commit when this game was added and how they added the extra ram calls, however in the latest MAME driver which has been extensively rewritten since then the only change between Sys B and Sys C is a single workram call in the mem map.......

map(0x500000, 0x53ffff).ram().share("workram"); // only change from system16b_map

There is no hurry right enough..... sys16 fantzn2x.zip

mahoneyt944 commented 2 years ago

That was my experience when I tried before, though I never hooked the extra ram up either. So its definitely hopeful that it's possible. I'll take another look at it.

MistyDreams commented 2 years ago

is this the correct file not even booting for me?

static MEMORY_WRITE16_START( fantzn2x_writemem )
    { 0x000000, 0x0bffff, MWA16_ROM },
    { 0x100000, 0x10ffff, SYS16_MWA16_TILERAM, &sys16_tileram },
    { 0x110000, 0x111fff, SYS16_MWA16_TEXTRAM, &sys16_textram },
    { 0x200000, 0x200fff, SYS16_MWA16_SPRITERAM, &sys16_spriteram },
    { 0x300000, 0x300fff, SYS16_MWA16_PALETTERAM, &paletteram16 },
    { 0x400000, 0x400003, SYS16_MWA16_EXTRAM2, &sys16_extraram2 },
    { 0x500000, 0x53ffff, SYS16_MWA16_EXTRAM3, &sys16_extraram3 },
    { 0xc40000, 0xc40001, sys16_coinctrl_w },
    { 0xc43034, 0xc43035, MWA16_NOP },
    { 0xffe08e, 0xffe08f, sound_command_w },
//  { 0xffc000, 0xffffff, SYS16_MWA16_WORKINGRAM, &sys16_workingram },
    { 0xfc0000, 0xffffff, SYS16_MRA16_WORKINGRAM, &sys16_workingram }, // correct for extra ram board.??
MEMORY_END

last has the wrong line commented out but even changing that does not boot the game

arcadez2003 commented 2 years ago

Still WIP not playable as yet

MistyDreams commented 2 years ago

I dont hear any functioning in the background either that's why i was asking if it was the correct file.

arcadez2003 commented 2 years ago

Sure with some games they'll at least boot errors and all, while with others if even one part of the emulation is incorrect it'll throw off the rest hence although it boots nothing is happening.

MistyDreams commented 2 years ago

Sorry I probably miss read you comment saying things where working in the background. I was expecting to hear sound or something visually.

mahoneyt944 commented 2 years ago

@arcadez2003 have you tried SYS16_MRA16_WORKINGRAM2, &sys16_workingram2 added separately from the original working ram? I was looking through aburner, and noticed it also used 2 working rams. Maybe we can add another line to the mem maps with workingram2 instead of lumping it as one.

https://github.com/libretro/mame2003-plus-libretro/blob/755e64ed8c7f1fdc5d69e65084a3355c51107937/src/drivers/aburner.c#L758-L765

arcadez2003 commented 2 years ago

It might be worth a try

MistyDreams commented 2 years ago

maps completely wrong above this will get the game booting. I guessed the soundport as well and added the logged input ports. If someone wants to finish the inputs up feel free.

static MEMORY_READ16_START( fantzn2x_readmem )
    { 0x000000, 0x0bffff, MRA16_ROM },
    { 0x200000, 0x23FFFF, SYS16_MRA16_WORKINGRAM }, // correct for extra ram board.??
    { 0x3F0000, 0x3FFFFF, SYS16_MRA16_EXTRAM, }, //rom_5704_bank
    { 0x400000, 0x40FFFF, SYS16_MRA16_TILERAM },
    { 0x410000, 0x410FFF, SYS16_MRA16_TEXTRAM }, //*
    { 0x440000, 0x4407FF, SYS16_MRA16_SPRITERAM },
    { 0x840000, 0x840FFF, SYS16_MRA16_PALETTERAM },
    // none of these are are confirmed what they do just filled the space
    { 0xc41000, 0xc41001, input_port_4_word_r }, 
    { 0XC41002, 0xc41003, input_port_3_word_r },
    { 0xc41006, 0xc41007, input_port_0_word_r }, 
    { 0xc42000, 0xc42001, input_port_1_word_r }, 
    { 0xc42002, 0xc42003, input_port_3_word_r }, 
    { 0xFE0006, 0xFE0006, ww_io_service_r },

MEMORY_END

static MEMORY_WRITE16_START( fantzn2x_writemem )
    { 0x000000, 0x0bffff, MWA16_ROM },
    { 0x200000, 0x23FFFF, SYS16_MWA16_WORKINGRAM },
    { 0x3F0000, 0x3FFFFF, SYS16_MWA16_EXTRAM, &sys16_extraram}, //rom_5704_bank
    { 0x400000, 0x40FFFF, SYS16_MWA16_TILERAM, &sys16_tileram },
    { 0x410000, 0x410FFF, SYS16_MWA16_TEXTRAM, &sys16_textram },
    { 0x440000, 0x4407FF, SYS16_MWA16_SPRITERAM, &sys16_spriteram },
    { 0xc40000, 0xc40001, sys16_coinctrl_w },
    { 0x840000, 0x840FFF, SYS16_MWA16_PALETTERAM, &paletteram16 },
    { 0xFE0006, 0xFE0006, sound_command_w }, // this was best guess need verfied
MEMORY_END

Screenshot from 2022-05-30 06-21-21

mahoneyt944 commented 2 years ago

Well I'm glad that the rom loading was correct..... Or at least enough to work here. Once we fill out the mem maps the rest of the way this game should be operational 👍 ...oh and we need to confirm the extra ram too

Nice work

MistyDreams commented 2 years ago

its functional with sound just needs inputs added, all you need to do is add the memmaps to arcadez zip.

@arcadez2003 the inputs address added are confirmed reads just so you know the addresses are good.

sorted the service port game plays fine need to confirm all the other ports agains s16b though.

https://github.com/libretro/mame2003-plus-libretro/compare/master...MistyDreams:opaopa?expand=1

mahoneyt944 commented 2 years ago

@MistyDreams hey i committed this already. Sorry if you were also working on this too. I used arcadez inputs, your mem maps updates with the right ports, and my rom loading and it seems to work right.

Might be some tweaks yet though with the dips, newer mame shows 02 as demo sounds but it doesn't seem to function here.

MistyDreams commented 2 years ago

see the post in pull request clearly you dont test. I dont know how you run things but its impossible to get anything done here.

mahoneyt944 commented 2 years ago

I'm playing the game right now? I test everything. You're looking at old commits. Just because a branch is live doesn't mean it's final

fantzn2x-220530-054714

mahoneyt944 commented 2 years ago

@MistyDreams see where you comment is? And the commits after the fact? Screenshot_20220530-055014

MistyDreams commented 2 years ago

@arcadez2003 here is the zip since its messed up system16 service ports differs. opaopa.zip

@mahoneyt944 that was the memory maps when the game didnt work until I fixed it. I feel like waiting my time explaining this but ill leave it. There is no hard feelings btw, I just cant work in place that just commits with conversations, feedback, pull requests, some kind of collaboration type of environment would really help you get devs.

mahoneyt944 commented 2 years ago

@MistyDreams you're getting way to hostile here, you were just telling me the game wouldn't boot and that I don't test things when that's not the case at all with the version that was pushed to the master branch.

The branch you commented on was an initial code dump that I later edited with your memory maps updated to use the inputports that arcadez shared. I then tested the game through multiple levels of play, entered the service mode, and tested all the inputs within that menu.

I'm sure there are tweaks to improve things further but the game is working at this stage which is why it was committed. I plan to credit you, arcadez, and myself for this as well in a future commit btw.

Try not to get so worked up, when multiple people are working on the same code at the same time it can get confusing. We can always make corrections in future commits.

MistyDreams commented 2 years ago

None of this is about credits of hostility its about impatience and rushing on your part. This is the prototype so any issues check it against mame then take it there. All the source for backport came from mame not me per say anyway so i dont need any credit. All the non encrypted sets can be mapped easily enough if you know how dont think there is any missing games though.

edit: nevermind its not the prototype. Anyhow onwards and upwards check any bugs against Mame current

mahoneyt944 commented 2 years ago

I'm a pretty easy going guy. I try to be fair here as much as I can. I'm not sure why you feel I was rushing. No one has been actively working on this or anything. I threw out an idea to Arcadez back in December to hook this to wrestwar providing a quick rom loading for it. He then plugged it in real quick and noted that the core wasn't crashing but it wasn't working either. I think both of us figured the mem maps were wrong or perhaps missing the extra ram but it was left on the back burner.

When you corrected the mem maps, you stated:

its functional with sound just needs inputs added, all you need to do is add the memmaps to arcadez zip

I was under the impression you were just sharing the mem maps and were leaving the input hook up for someone else. So I hooked the inputs up, and did loads of testing and pushed the commit.

Sorry if this seemed rushed, I felt the game was working to an acceptable level. If there's any further corrections you want to make feel free to submit a PR anytime. Also unless you're adamant about not getting credit, I feel the 3 of us should be, not that these are taken over seriously or anything....at least by the devs here.

MistyDreams commented 2 years ago

Im not adamant anything here. What I will say I could see you where wasting your time changing memory maps the game didnt crash because it didnt run.

The only thing that can cause a crash is if it is running some way or the wrong way. I dont understand how you never picked up on all the unmapped memory reads, thats why I told you it was a waste of time. Then I just deciphered the map from mame.

mahoneyt944 commented 2 years ago

personally I never reviewed the mem maps arcadez provided. What I did was add his shared zip into a branch so that I could begin working on it. At that point it was just a copy paste of where arcadez was at last.

First thing I did was verify all the roms loaded successfully, since the romload was something I threw together in one of the posts above pretty quickly.

[MAME 2003+] Opening ROM file: fz2.a7
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a5
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a8
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a6
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a14
[MAME 2003+] Opening ROM file: fz2.a15
[MAME 2003+] Opening ROM file: fz2.a16
[MAME 2003+] Opening ROM file: fz2.b1
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b5
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b2
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b6
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b3
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b7
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b4
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b8
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a1
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b10
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a2
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.b11
[MAME 2003+] read_rom_data: All done
[MAME 2003+] read_rom_data: All done
[MAME 2003+] Opening ROM file: fz2.a10
[MAME 2003+] Opening ROM file: fz2.a11
[MAME 2003+] Succesfully loaded ROMs.

At this point you shared the corrected map, so I just updated the branch then hooked up the inputs like you noted as needing finished.

mahoneyt944 commented 2 years ago

And actually, one of the first things I did after creating that branch was fix an entry in the write map arcadez had... it was entered as a read. https://github.com/libretro/mame2003-plus-libretro/pull/1353/commits/3527b64bc70e07b43cad8aaafede51ca72849ad3

Without actually sorting through the maps contents at this point, I figured it may have just been a simple typo that was the issue, so I added the branch to the buildbot to test and see.

But yeah I didn't really review the map up front since I didn't make it. It was just a starting point of what was shared here.

MistyDreams commented 2 years ago

The only problem is your approach when someone fixes something and you add one thing you feel a need to commit it. Instead of just sharing it here and getting feedback or even putting a pull request it and asking for testing. It a lack of development respect/decorum and makes collaborating near impossible. I guess everyone does things a different way but this makes for more work and buggy commits in general. Just my opinion we all have our own.

mahoneyt944 commented 2 years ago

Well I'm not sure what you wanted me to do exactly, I took the rom loading I did, your mem maps with the inputs fixed up (as you noted as needing done), and arcadez's input map and compiled and tested the code not once but about 10 times which included long game plays and service menu testing. I then created a PR for it once I felt it was working at an acceptable level for the public to try out. I also provided credit to all of us for the addition to the core.

I don't want this to be a hostile environment for anyone, so I apologize if the commit I sent in upset you, if you would like to make any revisions I'll be happy to correct anything you want.

arcadez2003 commented 2 years ago

@mahoneyt944 upon reflection we did take the code @MistyDreams created and was working on with regards to Marble Madness II and then we all piled in basically rather than being patient and waiting to see what they came up with on their own given the proper space and time to do so.

im sorry if that upset you @MistyDreams but i did have my reasons as i explained earlier help was offered which i felt had to be taken at the time, and then also there is the matter of this game being drama attracting over and above what we normally get as per this core at the best of times..

So in a nutshell the offer of help the possible drama my own heath were factors as to why i certainly rushed through it.

But look if your up for it there is a nemesis of mine a game i've been trying to get playable in this core off and on for nigh on three years would you like to take a look at it to see what's going wrong.?? i 100% guarantee no one will butt in and you'll be 100% left alone to work on this should you choose to.

And BTW lovely job on this i didnt think it was possible to get Fantasy Zone II to work in this ole core

arcadez2003 commented 2 years ago

Anyway with regards to the extra ram im not really sure what it does and with my ole segasb.c driver i dont even have it totally hooked up entirely as i was missing some code which could not be backported however the game seems to function correctly.

I've heard that the game can fail a check on the later levels and crash maybe that's due to extra ram.?? i dunno but i'll give this game a full on playtest shortly but the lack of a continue mode can make getting to last few levels kinda tricky as this is not a easy game.

But again im impressed ya's got it to work in the first place

mahoneyt944 commented 2 years ago

@arcadez2003 That's a fair enough assessment from the view point of a contributor....and I can see that too.

Though like you, I know the backlash and the behind the scenes stuff that goes on.... And honestly in this particular case I was under the impression Mistydreams was just sharing the mem maps for one of us to finish up. So that's what I did. I'm basing this assumption on his comment when he shared the corrected mem maps

If someone wants to finish the inputs up feel free.
mahoneyt944 commented 2 years ago

@arcadez2003 if you're going to do a full play through, there's a "lives" dip option cheat, basically infinite lives.

arcadez2003 commented 2 years ago

Well that is handy i never noticed that before and to think i could have got way further into the game :)

mahoneyt944 commented 2 years ago

Yeah just restart the core once you change the dip and it should be what you need to survive ha. I may be able to write an invisibility code for this game too if need be.

mahoneyt944 commented 2 years ago

I may have found a bug, looks like we are missing some of these upgrades.

fantzn2x-220530-095328

Ours shows like this fantzn2x-220530-095954

And if you click on where it should be it says sold out fantzn2x-220530-100012

mahoneyt944 commented 2 years ago

maybe the spriteram?

arcadez2003 commented 2 years ago

Well im sorry but i cant test after offering as my MAME72 core hasn't been updated as per here https://github.com/libretro/mame2003-plus-libretro/commit/28a4a59b44c2fb6039503c3d9b1733936c50c809

So the sprites are all messed up and well obviously im not gonna update a shit load of code to test one game :)

But on this subject there are more Sega16 games that could in theory be made playable in this core using the same method as per Fantasy Zone II however even if the graft was done there is no guarantee that the ole Sega gfx we have would be compatible anyway.

We lucked on this one which is a real bonus :)

BTW i had Cotton up and running a while back it hangs totally off Wonderboy III but we lack the correct gfx and there was no sfx or music due the sound core needing an update so it was a no go which is a pity as it's such a good game.

arcadez2003 commented 2 years ago

maybe the spriteram?

Have you went through the warp gate yet.?? the levels all change to night time with different enemies just to make sure that is handled ok

mahoneyt944 commented 2 years ago

Yes that works right fantzn2x-220530-101224 fantzn2x-220530-100955

arcadez2003 commented 2 years ago

Lovely

mahoneyt944 commented 2 years ago

This caught my eye. https://github.com/libretro/mame2003-plus-libretro/blob/df36e0e2cf517b057d210a3de8c875368e226766/src/drivers/system16.c#L21

Or we are just missing a ram hookup.

arcadez2003 commented 2 years ago

I've got an idea which usually is the first sign of trouble :) the tile/text/sprite/pallette/ rams are a dead ringer for the original Fantasy Zone maybe that's where @MistyDreams took the vaules from.?? anyway @mahoneyt944 try this on the spriteram to see if that solves the issue.........

{ 0x440000, 0x440fff, SYS16_MRA16_SPRITERAM },
    { 0x440000, 0x440fff, SYS16_MWA16_SPRITERAM, &sys16_spriteram },

Also it's numbers before letters usually move this pallette call up one on the writes

{ 0x840000, 0x840FFF, SYS16_MWA16_PALETTERAM },
{ 0xc40000, 0xc40001, sys16_coinctrl_w },
{ 0xFE0006, 0xFE0006, sound_command_w }, // this was best guess need verfied
mahoneyt944 commented 2 years ago

And a sprite bug, probably all related, on the demo screen if you let it run fantzn2x-220530-110724

@arcadez2003 ok, I'll test it out

arcadez2003 commented 2 years ago

@mahoneyt944 see my edited comments above check the palette position on the writes

mahoneyt944 commented 2 years ago

@arcadez2003 tested it out, that didn't fix it though.

arcadez2003 commented 2 years ago

Ah bummer but i think that sprite address is still correct however as per the other games no matter the values they always end with three F's

mahoneyt944 commented 2 years ago

@arcadez2003 Yeah probably but I'll wait to see what @MistyDreams thinks since it's his memory map.