Yamaha YIS machines not clearing games on reboot/restart

By uberjack

Master (217)

uberjack's picture

25-09-2019, 07:45

I'm hoping someone can explain something to me about Yamaha YIS machines - particularly classroom-networked ones.

I remember that after loading games onto networked Yamaha YIS MSX machines (via network), getting those machines to reboot into BASIC took forever. Restarting them, cycling power would inevitably put them back into game mode - the only thing that seemed to work was turning them off, waiting a minute or more, then turning them back on - and even then, occasionally, the game would still load, but corrupted - which meant we had to repeat the whole thing again.

What was causing this? Was YIS not clearing RAM, or was this something else? I've never seen this sort of behavior on any other MSX machine (although I haven't used any other networked MSX machines). Is it that I haven't looked hard enough?

Login or register to post comments

By tfh

Paragon (1813)

tfh's picture

25-09-2019, 08:16

uberjack wrote:

I'm hoping someone can explain something to me about Yamaha YIS machines - particularly classroom-networked ones.

I remember that after loading games onto networked Yamaha YIS MSX machines (via network), getting those machines to reboot into BASIC took forever. Restarting them, cycling power would inevitably put them back into game mode - the only thing that seemed to work was turning them off, waiting a minute or more, then turning them back on - and even then, occasionally, the game would still load, but corrupted - which meant we had to repeat the whole thing again.

What was causing this? Was YIS not clearing RAM, or was this something else? I've never seen this sort of behavior on any other MSX machine (although I haven't used any other networked MSX machines). Is it that I haven't looked hard enough?

I have seen this behaviour on a Phillips NMS8220 as well. One of my friends had one and after playing a game like Zanac, a Konami or any other game with the AB cartridge code, he also needed to switch off his machine for a long time.
You could even, with the help of some pokes, get a basic program back after switching the machine off and on again.

I don't know the cause. It could be that the memory still got fed some left over power from some capacitors until those got drained.

By zPasi

Champion (471)

zPasi's picture

25-09-2019, 08:29

I would guess someone made inner memory expansion with SRAM?

By sdsnatcher73

Hero (591)

sdsnatcher73's picture

25-09-2019, 08:38

I noticed this same thing on my Sony HB-F1XD, have not tried my Yamaha machines (don’t usually play games from RAM these days). I don’t think the SONY was modified (certainly not with an expansion). I rather think there are indeed some capacitors in play that are in the design to overcome power fluctuations towards RAM. SRAM would also need power to keep it’s content. Normal RAM needs power and a refresh now and then (which is why you would get corrupted memory after some time as without the refresh some bits will start to flip).

By Pencioner

Paladin (954)

Pencioner's picture

25-09-2019, 09:54

uberjack wrote:

What was causing this? Was YIS not clearing RAM, or was this something else?

I have noticed 2K SRAM on the network module board. Maybe those loaders are using it?

By Meits

Scribe (5538)

Meits's picture

25-09-2019, 11:09

I remember a Sony 700 did this as well with badly hacked diskversions of ROM games. Back then it was just a matter of keeping the machine switched off for a while. Now I would switch it off, remove the power lead and switch it on again, hoping this might discharche the capacitors that keep the ram chips powered.
But that's all theory. In modern computer world this trick works once in a while to get a stubborn pc booting again.

By Alexey

Guardian (2386)

Alexey's picture

25-09-2019, 11:37

On our Russian Yamahas that was a typical behavior. Switching off the machine for 10 seconds usually helps.

By max_iwamoto

Champion (467)

max_iwamoto's picture

26-09-2019, 00:55

The only thing you need to do is to write 00h at 4000h and 4001h. Something like Poke &H4000, 0: POKE4001, 0

But you need to make sure that start of the Rom located at 4000h. If not, you need to write it at the beginning of the Rom to prevent a self restart on next reboot. You can also load file into debugger and replace 41h,42h with 00h,00h. After that pressing reset will return computer back to basic.

By zPasi

Champion (471)

zPasi's picture

26-09-2019, 07:10

max_iwamoto wrote:

The only thing you need to do is to write 00h at 4000h and 4001h. Something like Poke &H4000, 0: POKE4001, 0

What are you talking about?

1) When the game rom starts, you cannot POKE anything.

2) In any case, Poke &H4000,0 doesn't do anything, because when BASIC is active, 4000h - 8000h is BASIC ROM.

By tfh

Paragon (1813)

tfh's picture

26-09-2019, 08:32

You can try to open the files you're loading in a HEX editor on your PC. One of the binaries will start with AB. I don't know if you can just change this or not.
More info: https://www.msx.org/forum/msx-talk/general-discussion/header...

By zPasi

Champion (471)

zPasi's picture

26-09-2019, 08:46

tfh wrote:

You can try to open the files you're loading in a HEX editor on your PC. One of the binaries will start with AB. I don't know if you can just change this or not.

Of course you can change that prior execution. But then the game just doesn't start in the first place.

In theory the disk / cassette loader could be made so that it doesn't reset the machine, but jumps to the start address so it works without the AB code. I don't know if that kind of loader exists. SofaRun does that jump but I don't know if it works without the AB code.