supermario world for msx

Page 102/109
95 | 96 | 97 | 98 | 99 | 100 | 101 | | 103 | 104 | 105 | 106 | 107

By Daemos

Paragon (1668)

Daemos's picture

15-12-2014, 13:05

guess what... Its not a slot problem. Its a stack problem. The sony HF500P's stack is on a very different location and it gets overwritten by the FMplayer. Aaargh how annoying. Ohw well. gues we need to relocate the stack then Tongue

EDIT: what the... That machine cannot even handle its own interrupts. it completely screws up in the BIOS while all other machines just do their job just fine. Just because I relocate the stack to another position the sony allready screws up. All the other machines have no problem with stack relocation but nooooo the sony immediatly gives up. Well too bad. I need those 100 bytes and I need them hard so thats the end of the story. Sony-F500P is now officially on the incompatability list together with that other annoying one the daewoo cpc 300 orso. If in the future I can manage to free those 100 bytes from page 3 the sony will be lucky

EDIT2: Problem solved Smile I have done something very very very naughty but it works... I have uhm... relocated the work area for the FMplayer into the work area for MSX basic. That adress $F664 up to somewhere near $F800 Since we don't use basic we do not require that area so we use it for our own stuff. Sony-F500P runs the game again Smile

By sd_snatcher

Prophet (2865)

sd_snatcher's picture

15-12-2014, 14:02

@Daemos

Wasn't the stack problem also happening on machines with an external disk interface on a lower slot than the game ROM?

For example, a plain vanilla Panasonic FS-A1 with:

- Sony HBD-F1 external disk interface on slot-1
- Jumping Italiam Plumber Game ROM on slot-2

EDIT: BTW, to avoid further headachess, and to save time, I really recommend to carefully read the Wiki article on compatibility testing. As you'll see, stack placement issue is described there.

By gdx

Prophet (2320)

gdx's picture

15-12-2014, 14:05

Just in case, if the game does not start on an Arabic or Korean MSX maybe you can fix it with POKE&HFDA4,&HC9

By Daemos

Paragon (1668)

Daemos's picture

15-12-2014, 14:41

引用:

Wasn't the stack problem also happening on machines with an external disk interface on a lower slot than the game ROM?

not sure. have to test to confirm.

Thanks for the great tips I will work them out. As far as I can see the problems are solved (for now) thanks to all your help Smile

I am also pleased to report that world1 is nearing its 100% completion, this means that the load save functions are in place, the scorebar, demofunctions, intromenu, the yellow switchpalace the whole map, all sprites and monsters, the final boss. the engine is nearing its final stages. Work on world2 has begun as well. The first maps are allready in place. We from now on expect an significant acceleration in the project because almost 80-90% of the gameengine functions are in place.

if we get far enough in time, we have plans to do a serious demonstration in Nijmegen. Since the engine is capable of playing demoloops as well we can even automate these events. but it depends. We have alot of glitches that need to be worked out.

引用:

Just in case, if the game does not start on an Arabic or Korean MSX maybe you can fix it with POKE&HFDA4,&HC9

I will make sure this is being included in the readme file.

By hit9918

Prophet (2790)

hit9918's picture

15-12-2014, 18:11

by the way, @Manuel, I just got into some blackscreen situation on openmsx F500P.
machine is breaked. I type: "reset". Then PC goes 0, slotselect goes 0.0, but memory there is FF FF FF.
a debug step makes it go 0x38.
slotselect still 0.0, memory there FF FF FF.
But when I let it run "debug cont", and then break it again after some thousands of RST 38 executed, somehow it got to a slotselect to 0.3 , 0.1, 0.0, 0.3, no idea how when executing RST 38 all the time.
again "reset", slotselect is all 0.0 , disasm 0x4000, some ROM "41 42 6F 57 76 65" is there, probably diskROM.
it is like slotmechanism is screwed up.

By Daemos

Paragon (1668)

Daemos's picture

15-12-2014, 18:34

引用:

it is like slotmechanism is screwed up

I sometimes have the exact same problem.

By hit9918

Prophet (2790)

hit9918's picture

15-12-2014, 18:42

The F500P "stack is strange", the ACTUAL story is:
it has disk ROM in slot 0.
and your game crashes like when someone on another machine plugs floppy in slot 1 and your game in slot 2.

so now the F500 stops looking mystic and the thing is clear:
if you want to use stuff at F380, first DI and knock down fd9a fd9f with a C9.
I think that's also what konami is doing.
rather than "being nice with the bios/standard", this one is "they know how to really make it shut up".

another thing:
put a check ID like e.g. FFFE at bottom of stack and check every vblank interrupt. at least in debug version.
one day it will save you hours of bug hunting.

By Manuel

Ascended (14738)

Manuel's picture

15-12-2014, 18:48

hit9918: if you can find a step of actions I can execute to reproduce the issue, we can investigate.

By hit9918

Prophet (2790)

hit9918's picture

15-12-2014, 18:54

That is the problem, I got no idea how to reproduce it.
I always thought "well real machine maybe too can get stuck with funny RAM content".
Today is the first time that I saw inconsistency in the debugger.

By Daemos

Paragon (1668)

Daemos's picture

15-12-2014, 18:56

引用:

so now the F500 stops looking mystic and the thing is clear:
if you want to use stuff at F380, first DI and knock down fd9a fd9f with a C9.
I think that's also what konami is doing.
rather than "being nice with the bios/standard", this one is "they know how to really make it shut up".

Thats what I just did about an hour ago Evil I screwed the BIOS its interrupthandler up and wrote my own in its place. I wrote a nice piece of code in the hook that ends with inc sp inc sp ei ret Wink

引用:

put a check ID like e.g. FFFE at bottom of stack and check every vblank interrupt. at least in debug version.

Thank for the tip why is it done?

Page 102/109
95 | 96 | 97 | 98 | 99 | 100 | 101 | | 103 | 104 | 105 | 106 | 107
My MSX profile