New game for MSX1 (Transball)

Page 15/20
8 | 9 | 10 | 11 | 12 | 13 | 14 | | 16 | 17 | 18 | 19 | 20

Par NYYRIKKI

Enlighted (6033)

Portrait de NYYRIKKI

14-09-2016, 11:05

Ramones wrote:
NYYRIKKI wrote:

This is very simple: ROM games can't ever expect disk system to be present. If they need disk routines, they need to exit and init them self later though hooks when disk system has been initialized. (like ie. Konami Game Master does)

Of course, I agree. For this reason ODO can't initialise the stack. It is the responsibility of the game... Cool

For sure it could just as well as the cartridge it self... and it even does if you hold CTRL... I still would point my finger to end user or ODO's insufficient documentation instead of the game it self. If the game works from real ROM, I consider it good.

Par Ramones

Champion (264)

Portrait de Ramones

14-09-2016, 11:15

NYYRIKKI wrote:

I still would point my finger to end user or ODO's insufficient documentation instead of the game it self.

Ok, you win. Wink ODO is guilty.

From ODO README.TXT:

---------------------------------------------------------------

[] RESTRICTIONS

ODO uses RAM to load and execute ROM files. These files could have problems if the MSX used does not have 64K in the same slot/subslot since they were not programmed to work from RAM.

Other problems can arise when executing the program. This can happen because the ROM boot system is always simulated and it is not exactly the same as the one which is used when MSX boots with the cart inserted.

Use CTRL option if your Rom don't work fine.

Par NYYRIKKI

Enlighted (6033)

Portrait de NYYRIKKI

14-09-2016, 11:17

Ramones wrote:

Ok, you win. Wink ODO is guilty.

Oh, no it is not. As we can now see, it was actually explained very well... Now I blame end user Smile

Par Imanok

Paragon (1199)

Portrait de Imanok

14-09-2016, 11:23

If the developer releases the game in cartridge only, there wouldn't be problem at all... but as far as a digital version is released, you can expect many people trying to play it from RAM, so I'd initialize the stack in the game just to be safe.

Par Ramones

Champion (264)

Portrait de Ramones

14-09-2016, 11:39

Imanok wrote:

If the developer releases the game in cartridge only, there wouldn't be problem at all...

Nope. You should initialise the stack. MSX2 G900P has the DiskRom in 0-1 slot...(And this isn't a ODO problem) Then the DOS is initialised before your cartridge. So... you must initialise the stack. Smile

Par santiontanon

Paragon (1771)

Portrait de santiontanon

18-09-2016, 10:42

Sorry for not replying here earlier. Ok, so, if it's safer to initialize the stack. Then I'd like to do that in the game. But I'm unsure how to do that. Does anyone have any pointers or examples on where I can learn how to do it?

We are finalizing the physical edition, and if this is an easy addition, then I'd like to have it in before we release it Smile

Par ericb59

Paragon (1099)

Portrait de ericb59

18-09-2016, 12:47

santiontanon wrote:

Sorry for not replying here earlier. Ok, so, if it's safer to initialize the stack. Then I'd like to do that in the game. But I'm unsure how to do that. Does anyone have any pointers or examples on where I can learn how to do it?

We are finalizing the physical edition, and if this is an easy addition, then I'd like to have it in before we release it Smile

It does not seem to be necessary with the Cartridge version anyway....

Par Imanok

Paragon (1199)

Portrait de Imanok

18-09-2016, 16:13

@santiontanon: I start my games just like this:

		; *** Header ***
		org     04000h
                db      041h,042h
                dw      init_main   
                ds      12

		; *** Init Main ***
init_main:
                di          
                im      1
                ld	sp,0F380h	;Init stack
		...

@ericb59: as Ramones said, it wouldn't work in MSX2 G900P computer

Par Ramones

Champion (264)

Portrait de Ramones

18-09-2016, 18:13

santiontanon wrote:

We are finalizing the physical edition, and if this is an easy addition, then I'd like to have it in before we release it Smile

Try the Imanok's initialisation. Wink Just one more thing, about G900P. Disable interrupt hooks before enable interrupts or call BIOS entries. Otherwise your game, surely, hangs. In short:

            [ header ]

            DI
            IM  1
            LD  SP,#F380
            LD  A,#C9
            LD  (#FD9F),A
            LD  (#FD9A),A

            [your awesome code can call now to bios entries, safely] 

Par Uninteresting

Champion (352)

Portrait de Uninteresting

18-09-2016, 19:24

Reading all these "little" things that need to be addressed for a release with maximum compatibility, such as setting the stack top manually, makes me hope there is a "checklist" of these somewhere for newcomers?

Page 15/20
8 | 9 | 10 | 11 | 12 | 13 | 14 | | 16 | 17 | 18 | 19 | 20