1

The biggest part of this all I interested is a realisation of short pause before appearance of new character's reply text, when game must not to react to buttons pressing - i. e. I need a functional analogue of RenPy's $ renpy.pause () function. I tried to use the code like the textTimer from my RPG engine, but for some reason it doesn't work and interferes to execute a sprites clearing code in the basic function even.

Maybe, you'll help me to fix a background colour glitches with a character's pictures and stringe pallete bug of unique title screen tile at the same time.

You can see the first results of my work here.
The source is here. Warning: this project uses the DATlib 0.3!!!
avatar

2

Proper color for transparency on sprites and fix is Fuchsia (RGB 255,0,255)

3

That's magenta smile
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

In main.c move waitVBlank(); in line 572 up under SCClose(); 554. Also I think that the function Control_Sub(); should not be executed between SCClose and waitVBlank. There are other places in your code this happens.

The color code you need is ff0ff I believe.

Hope this helps. I'll look through the code again later.
avatar

5

Zerosquare (./3) :
That's magenta smile

Nope, Fuchsia embarrassed

6

grin
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

7

hine62 (./4):In main.c move waitVBlank(); in line 572 up under SCClose(); 554. Also I think that the function Control_Sub(); should not be executed between SCClose and waitVBlank. There are other places in your code this happens.

I am sorry, but these changes had no effect. You can test the source version below as a proof.

The color code you need is ff0ff I believe.

I know it, and therefore I tried to place these pictures on the ff00ff coloured background through Photoshop.

tromb Fichier joint : main.c
avatar

8

Moving SCClose(); was only a common practice suggestion for the NeoGeo. Program code should go between waitVBlank() and SCClose(). Like this:
while(1) { waitVBlank(); /*Do stuff*/ SCClose(); }
It can be this way also...
while(1) { SCClose(); waitVBlank(); /*Do Stuff*/ }
I did get your program to run, but for some reason I couldn't compile any changes? Weird.... anyway here is my suggestion.

Put this in the variables section of introduction()
int pauseTimer = 0; //keep track of time int isPaused = 1; //keep track of pause state

Then use a timer to pause the program in an action state. I believe that the neogeo updates 60 times per second. So you could pause for 60 ticks or 1 second. To pause and action just set isPaused in the action before the one you want paused.

if(action==0) { if(isPaused == 1) { pauseTimer++; if(pauseTimer >= 240) //4 seconds { isPaused = 0; //reset pauseTimer = 0; //reset } }else { fixPrint(1,3,0,1,"Мне продолжает сниться этот сон."); fixPrint(1,4,0,1,"Каждую ночь одно и то же."); fixPrint(1,5,0,1,"Ну, сон и сон! По-настоящему странные"); fixPrint(1,6,0,1,"вещи происходят, когда я просыпаюсь."); } }
One last thing. Move the Day1() function above introduction(). The compiler will like this better smile
avatar

9

Thank you very much! Now everything works greatly!
avatar

10

Glad I could help!
avatar

11

I'd like you help me with a selection of background files colour reduction way - I decided to process these files with IrfanView (reducting to 256 colours) before giving them to DATimage. But for some reason, althoght DATimage successfully reduces a colours number per tile, it increases a colour number in the whole file.

Here is a sample for comparsion.

tromb Fichier joint : lqTX
tromb Fichier joint : oizS
avatar

12

Hi VasiiiyFamilya,

EX:

Image is 320x224 (Neo Geo Screen Size) = 71680 pixels
16x16 tile = 256 pixels
Tiles per 320x224 image = 280 tiles

DATimage with this flag -mtc15 will convert an image to the neo geo format (15 colours per tile)

The total number of palettes that can be used on Neo Geo is 256 (0-255) (There is another palette bank I haven't used it yet....probably can only access one bank at a time)
If all 280 tiles have a unique palette you are over the total number of palettes just to load that image.

It's not that there are more colours added its that each tile can have a unique palette.
Even if the colours repeat throughout the image I believe the compiler is looking at each individual tile as its own mini image with its own palette based on the order it sees the colours.
There is probably some cool compression going on under the hood that HPMAN hooked up but that is the breaks as I know them.

My advice is you must compress your image more until you get a reasonable number of palettes at compile time.

13

Mega Shocked (./12):My advice is you must compress your image more until you get a reasonable number of palettes at compile time.

How should I do it?
avatar

14

I have pretty lame method but I use PNGquant and run my image through it several times.....there can be alot of trial and error involved depending on how obsessed you get.

https://pngquant.org/

DATimage can also reduce colours "Change -mic256 to -mic128 , mic64 etc....

DATimage pathWhereFilesAre\*.png -mtc15 -mic256

15

Mega Shocked (./14):
I have pretty lame method but I use PNGquant and run my image through it several times.....there can be alot of trial and error involved depending on how obsessed you get.

https://pngquant.org/

DATimage can also reduce colours "Change -mic256 to -mic128 , mic64 etc....

DATimage pathWhereFilesAre\*.png -mtc15 -mic256

I just tried this way of color reduction for a most of time, and tried to reduce the mtc maximally for economy of palettes allotted for characters portraits. But more often the result of direct reduction through DATimage (-mtcX or -mtcX & -micX) looks much less visually neat than a result of reduction to 8bpp through IrfanView and PNGquant, despite of larger nunber of colours.

Here is a -mtc15 -mic256 version of previous picture.

tromb Fichier joint : E4ZJ
avatar

16

in my opinion DATIMAGE does a very good job but I think you get the best results when you don't use pre-edited images.
maybe you can upload the original image so that we can do tests together for a better result?

17

blastar (./16):
in my opinion DATIMAGE does a very good job but I think you get the best results when you don't use pre-edited images.
maybe you can upload the original image so that we can do tests together for a better result?

Here is it:

tromb Fichier joint : Xl7N
avatar

18

After I heard about currently running development of WAR●SAW dungeon crawler, I decided to create its Jeju Massacre of 1949-themed clone to Neo-Geo.
However, since WAR●SAW is just preparing to be published and it's unknown what its gameplay will be look like for now, I decided to begin the clone development not from gameplay by itself but from demo attracts (I'm sure that to learn how to make a demo attracts will be useful for absolutely all other my Neo-Geo projects).
For demo attracts realization I used the pieces from VN engine, but for some reason the demo attract doesn't start in 10 sec. after game launch, and also titlescreen BGM doesn't play before you insert coin.
avatar

19

After so much time, I finally figured out what was the reason of problems with the previous version of my WAR●SAW clone. At first, I stupidly forgot to write the demo_timer variable decreasing code because of my hurry and inattention. smile

Now, please tell me more in detail about the "dev mode" and how to add the credits ($0x10FE00 register) in this mode to help me complete the demo attract.
avatar

20

Thoses will return correct credit counters, homeCredits are local variables.

ushort creditsP1() { if(BIOS_MVS_FLAG) return(BIOS_DEVMODE?BIOS_CREDIT_P1:CAB_CREDITS_P1); else return(P1HomeCredits); } ushort creditsP2() { if(BIOS_MVS_FLAG) { if(BIOS_COUNTRY_CODE==COUNTRY_USA) return(BIOS_DEVMODE?BIOS_CREDIT_P2:CAB_CREDITS_P2); else return(BIOS_DEVMODE?BIOS_CREDIT_P1:CAB_CREDITS_P1); } else return(P2HomeCredits); }

21

HPMAN (./20):
Thoses will return correct credit counters, homeCredits are local variables.

ushort creditsP1() { if(BIOS_MVS_FLAG) return(BIOS_DEVMODE?BIOS_CREDIT_P1:CAB_CREDITS_P1); else return(P1HomeCredits); } ushort creditsP2() { if(BIOS_MVS_FLAG) { if(BIOS_COUNTRY_CODE==COUNTRY_USA) return(BIOS_DEVMODE?BIOS_CREDIT_P2:CAB_CREDITS_P2); else return(BIOS_DEVMODE?BIOS_CREDIT_P1:CAB_CREDITS_P1); } else return(P2HomeCredits); }

My main piece of question is how to increase these credits in dev mode. NeoGeo doens't react on standart coin insertion in this mode.
avatar

22

It should, never had issues

23

HPMAN (./22):
It should, never had issues

Oooops! Looks like, it's me made a some mistake (most likely, with NeoGeo BIOS choice in MAME) during testing at previous time. If to choose the US 4 slot v2 bios, for example, the NG reacts to coin insertion properly.
Also I wrote the conditions of menu_logo background appearance by more clever way, and background changing to menu_logo confirms that there is no problems with a coins.

And now, what should I do to prevent the credits indicators disappearing after jumping to title/game mode?
avatar

24

I've just read your code but you can try to remove the "clearFixLayer()" inside your // TITLE MODE MVS ////////////////////////////////////////////////////////////////////////////////////////

or push the // display credit counter(s) //////////////////////////////////// after your MVS loop

25

Now I took out the credits indication to separate function. But for some reason, after I "inserting" a "coin", the number of credits at the right side from "DevCRED P1/2" labels doesn't change, staying be equal to 0.
avatar