Schrijver
| BLOADing a game from Basic...
|
cesco msx addict Berichten: 261 | Geplaatst: 09 Maart 2008, 18:47   |
I don't understand...  I have tried the converted Caos Begins on two similar computers, two Philips VG-8020, and I got two different behaviors...
One computer is a VG8020/00 and the other one is a VG8020/20 (that means it's the second hardware revision I guess)
On the VG8020/00 the game loads and plays immediately (I have tested it on the real hardware and on OpenMSX)
Instead, on the VG8020/20 the screen turns to black and nothing seems to happen (it looks like as if the MSX is stuck in an infinite loop). When I push the reset button on the real hardware (or when use the "reset" command under OpenMSX) the game starts but it's unplayable.
I have used the universal poke, as written on the MSX FAQ ( POKE -1,1.0625*(NOT(PEEK(-1))AND&HF0) ). I have even tried to BLOAD the binary files without applying that poke, but I got the same results.
What could it be ?
These are the files I'm actually using for making some tests:
( Wav file that can be used on the real hardware or on OpenMSX, 2400 Baud, The compressed file is only 108Kb )
test.cesco.it/Caos Begins (2400 Baud).wav.zip
( Wav file that can be used on the real hardware or on OpenMSX, 3200 Baud, The compressed file is only 100Kb )
test.cesco.it/Caos Begins (3200 Baud).wav.zip
( Cas file for BlueMSX and other emulators, 38Kb )
test.cesco.it/Caos Begins.cas.zip
Type RUN"CAS:" to load the game
If you prefer, I have also made an archive with the single files needed to load the game, so you can export them to a disk and load Caos Begins from within MSX Basic. There are three files: CAOSBG.ASC (the Basic loader), CAOS1.BIN and CAOS2.BIN (the binary files of the game)
( Disk Version )
test.cesco.it/Caos Begins.zip
( DSK Version )
test.cesco.it/Caos Begins.dsk.zip
|
|
PingPong msx professional Berichten: 884 | Geplaatst: 09 Maart 2008, 19:55   |
Quote:
| I don't understand...  I have tried the converted Caos Begins on two similar computers, two Philips VG-8020, and I got two different behaviors...
One computer is a VG8020/00 and the other one is a VG8020/20 (that means it's the second hardware revision I guess)
|
Hi, cesco, if you want i can check on my hb55p (msx1). But not before the next week. Since i cannot download anything from this site, can i ask you to send the 2400 baud version to spambin AT tiscalinet D.O.T. it?
I live in the same country as you so, if you want to talk to me via email, you can use your native language instead of english.... |
|
PingPong msx professional Berichten: 884 | Geplaatst: 09 Maart 2008, 22:42   |
@cesco:just to try, have you loaded at 1200 bauds only on the machine where the game crash?
|
|
ARTRAG msx master Berichten: 1592 | Geplaatst: 09 Maart 2008, 22:43   |
You have RAM mapper problems.
How you choose the RAM slots where the game is loaded?
|
|
cesco msx addict Berichten: 261 | Geplaatst: 10 Maart 2008, 08:45   |
Quote:
| You have RAM mapper problems.
How you choose the RAM slots where the game is loaded?
|
The first half (Caos1.bin) is loaded into memory from the starting address 9000H along with another small assembly program that relocates it to address 4000H. At the end of this operation, the assembly program gives the control back to MSX-Basic.
The second half (Caos2.bin) is also loaded into memory from address 9000H, along with another small program that relocates it to address 8000H. Right after, the small program When the relocation has finished, the small program jumps to address 4011H (or that's what I guess it's doing) and it should run the game. I'm using these assembly routines to load binaries: www.msxtop.msxall.com/Download/InitGame.zip
This operation works on a VG8020 but not on a VG8020/20... I used to think that was caused by a wrong loading, but I can see the same behaviour under OpenMSX. |
|
Jipe msx freak Berichten: 185 | Geplaatst: 10 Maart 2008, 13:19   |
testing FFFF are not the good solution
first block
LD A,(F342H)
LD HL,4000H
CALL 0024H
LD HL,9000H
LD DE,4000H
LD BC,4000H
LDIR
LD A,(FCC1H)
LD HL,4000H
CALL 0024H
RET
second block
LD A,(F342H)
LD HL,4000H
CALL 0024H
LD HL,9000H
LD DE,8000H
LD BC,4000H
LDIR
LD HL,(4002H)
JP (HL)
|
|
pitpan msx master Berichten: 1368 | Geplaatst: 10 Maart 2008, 14:07   |
What about developing a custom loader? I mean, the tool is making a conversion, therefore, you should aim for the most efficient conversion. Different blocks imply different headers and longer loading times. What about a custom loader? It is not that difficult. You can even use the BIOS functions!
And accept a suggestion: do not force the 3200 baud mode. It is fairly unstable in different MSX models when using the BIOS. With WAVeR v.2 I made different tests, and while some computers accepted up to 3600-3800 bauds, others weren't able to load at 3000-3200. If you want to make it compatible, stick to 2400 bauds. If you really need to go further, there is no other option but a custom "turbo" loader.
|
|
NYYRIKKI msx master Berichten: 1503 | Geplaatst: 10 Maart 2008, 14:08   |
Jipe: AFAIK your method works only, if you have disk drive on your MSX.
|
|
cesco msx addict Berichten: 261 | Geplaatst: 10 Maart 2008, 16:37   |
Quote:
| What about developing a custom loader?
|
I don't know anything about Z80 Assembly; I have only studied something about 80x86 opcodes at school, and that happened more than 13 years ago
Quote:
| And accept a suggestion: do not force the 3200 baud mode. It is fairly unstable in different MSX models when using the BIOS. With WAVeR v.2 I made different tests, and while some computers accepted up to 3600-3800 bauds, others weren't able to load at 3000-3200.
|
Well, I have posted links to both the 2400 Baud and 3200 Baud version in my message. Unfortunately, none of the two version are working on OpenMSX and on the real hardware. Tonight I'll try to convert that game with WAVer and with MicroWAVer, so I'll be able to understand if the issues are caused by the binary loader or by something else. |
|
|
|
|