[V9990] Q&A Official Thread

Page 8/23
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12 | 13

Par hit9918

Prophet (2932)

Portrait de hit9918

04-03-2016, 13:35

The tiny demo I posted did the 2 charsets, the 2 nametables, the sprite attribute table,
except scroll the whole VDP was sorted out for tile mode.
It is just a hand full of things, all the rest then no more is VDP coding but game coding.

Par Kai Magazine

Paragon (1428)

Portrait de Kai Magazine

04-03-2016, 16:43

hit9918 wrote:
Quote:

If anyone would be kind enough to assamble them in such a way I can bload them from basic and use them with DEFUSR, we could have acces to the GFX9000 graphic commands from Basic

how many kilobytes would that need? Tongue
A hand full of gosubs that do some OUT for vpoke, copy, set_scroll can serve a whole game.
The scroll X register bits are laid out unhandy?
This is NOTHING compared to all the burden on MSX1 and MSX2.
The many problems discussed in those threads dont happen on 9990.

Too many messages to answer, I will try to be generic and simplify:

-I store as much data as possible in Vram. The maps of all my games are on Vram. It is the slowest way (to read from vdp both the map and character's/projectile collisions) but since I have so little ram, I have to use vram even if it is slower.

-GFX9000 has 512k of vram (4 times more than a regular msx).

How many kilobytes would an ASM routine need to handle the necessary v9990 commands?
Less than having to store the original basic code and the compiled basic code for such routines, since we would have it compiled already on ASM, so we can avoid the uncompiled basic version of the code in the ram.
Also, using a=usr() takes less space than a whole bunch of OUTS so, we are saving memory there as well.

An ASM routine to handle gfx9k would indeed save memory, as you can see.

Par tvalenca

Paladin (747)

Portrait de tvalenca

04-03-2016, 18:13

Kai Magazine wrote:

How many kilobytes would an ASM routine need to handle the necessary v9990 commands?
Less than having to store the original basic code and the compiled basic code for such routines, since we would have it compiled already on ASM, so we can avoid the uncompiled basic version of the code in the ram.
Also, using a=usr() takes less space than a whole bunch of OUTS so, we are saving memory there as well.

An ASM routine to handle gfx9k would indeed save memory, as you can see.

Maybe we'll have some luck trying to use Team Bomba's GFX9K lib. I'll look at them and see if it can be called from BASIC. This will save up some space and speed up some things, but I don't think this will solve the BLOAD issue I pointed...

Any luck finding Konamiman?

Par Kai Magazine

Paragon (1428)

Portrait de Kai Magazine

04-03-2016, 19:35

You can bload anything using gbasic (which works on z80) and you can compile the turbo blocks using regular basic and use out commands or with any luck, the compiled ASM routine with defusrs, so there should be no issue doing that.
The amount of available ram after installing gbasic and turbo basic is the same, so there is no memory loss by doing so, and you can still call the p1 mode the same way you do.

No luck on finding konamiman yet...

Par tvalenca

Paladin (747)

Portrait de tvalenca

04-03-2016, 20:07

@Kai I'm having a hard time trying to convince myself to work with Turbo Basic after knowing about the memory constraints you and @Grauwl pointed. Its a complete nonsense having the same code twice on a 24k work ram. That's why I insisted on Konamiman, because his NestorBASIC bypassed this limitation by allowing the user to use Memory Mapper on BASIC programs, and it could be upgraded with a V9990 plugin like the MoonBlaster replayer and OPL4 plugins.

Hope he's not gone or MSX scene for good.

About GBASIC, I'll give it a try, since I'm already doing everything with OUTs. But I'm considering moving to MSX-C or finding a MSX-Basic compiler (not only BAS2BIN converters, at least simple BASIC code must run outside the interpreter). In any of these cases, I'll have to deal with new tools that will have to be created. At least programming to V9990 is pretty straightfoward, any possible graphic functions will be very simple to write.

Par AxelStone

Prophet (3199)

Portrait de AxelStone

04-03-2016, 20:27

tvalenca wrote:

Really? That's a HUGE downside!

Clearly the worst feature of Turbo Basic, duplicate program in memory Sad

tvalenca wrote:

@Kai I'm having a hard time trying to convince myself to work with Turbo Basic after knowing about the memory constraints you and @Grauwl pointed. Its a complete nonsense having the same code twice on a 24k work ram. That's why I insisted on Konamiman, because his NestorBASIC bypassed this limitation by allowing the user to use Memory Mapper on BASIC programs, and it could be upgraded with a V9990 plugin like the MoonBlaster replayer and OPL4 plugins.

You are wrong, Nestor Basic don't allow to bypass this limitation. The code itself remains with 24Kb available and is duplicated in memory, so the limitations are the same. Nestor Basic allows you acces to all segments of mapped memory in a linear way to store data or to store other programs and jump from one to other (it's not much different to load different engines since only one can be ran at same time). This was the main cause why I left Turbo Basic first and Nestor Basic after.

However take something in consideration: are you alone to make a game? How much complex your game is going to be? If you are alone and are not going to make a complex game, perhaps BASIC is not a bad choice. All depends the game you want to make.

Par tvalenca

Paladin (747)

Portrait de tvalenca

04-03-2016, 20:42

Sure, BASIC isn't a bad choice. It's simple, faster to code, and somewhat powerful. And I'm used to it in some way I could develop a BASIC program that could benefit from Mapper. It isn't everyday programming, but is very doable. But of course it's better to have a complete tool (a BASIC interpreter that support compiled code, mapper and have support for newer hardware like V9990 and OPL4) than stick to the standard one and code in a almost obfuscated way to take advantage of some programming hacks.

Par Manuel

Ascended (19471)

Portrait de Manuel

04-03-2016, 21:30

If you program in C or Pascal, you run under DOS and you have more than 50kB of memory...

Par Kai Magazine

Paragon (1428)

Portrait de Kai Magazine

04-03-2016, 22:01

As long as you do not include any music or sound effect's data, music replayer, image de-compressor, ASM support subroutines, etc.

Par AxelStone

Prophet (3199)

Portrait de AxelStone

04-03-2016, 23:31

Manuel wrote:

If you program in C or Pascal, you run under DOS and you have more than 50kB of memory...

I think that C/Pascal will be the best alternatives for program MSX in medium term Smile

Page 8/23
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12 | 13