Pages:
1
2
3
4
..
6 |
MikeDX
|
|
D.exe should still be the "runner" for div. D-windows.exe is a (wrongly) named d.exe
Also i don't think anything should have changed in d.exe (?).
When i get the chance, possibly next weekend i will try to review this build and see what's happened
[Edited on 16-8-2017 by MikeDX]
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
I used d-windows because the linux version uses d-linux, and that mac d-osx, so it seems more appropriate to identify modern platforms, furthermore
d.exe is the old name used for the DOS version and the current version DIVDX is still able to compile for this platform, this would avoid conflicts.
Clearly it's just a tip, but it might be better to leave old d.exe for the DOS and d-platform version for new platforms.
Maybe something to add as data info for debugging or other in future, who knows.
Quote: Originally posted by MikeDX |
When i get the chance, possibly next weekend i will try to review this build and see what's happened
[Edited on 16-8-2017 by MikeDX] |
Great, for now I will see if I can fix the big memory allocation bug in the release version and other small things, I'll see pass you the new code as
soon as possible, however we will need to find a solution to my repository problem so that we can keep it all up to date in a cleaner and more
synchronized manner.
|
|
MikeDX
|
|
I hope you know what has changed, otherwise this is quite a worrying release!
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
I have not changed anything in the d.exe (runner) code at the moment, but everything is annotated currently.
|
|
MikeDX
|
|
If nothing has changed for d.exe, why does rksoft need to use your new d-windows.exe?
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Because all files are compiled on MSYS2 that is different from build provided by DIV-Arena server and maybe some DLL addiction, or other libraries was
introduced in the build may not coincide, who knows, so to avoid any unexpected error difficult to identify, better run DIV from d-windows.exe
provided in the package for now.
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Hello,
I think I've finally found and corrected the problem of big RAM consumption in the RELEASE versions of the programs but it needs more tests in
different machines.
I've re-uploaded the package on first post.
|
|
MikeDX
|
|
Thanks for your continuing help cictec
|
|
RKSoft
Game Making Machine!
Posts: 232
Registered: 1-3-2016
Location: Germany
Member Is Offline
|
|
@Cictec
okay, the ready compiled exe uses extemly less memory! Great work, but...
- if you maximize the window and switch back to normal, the content of this window will be black
- if you quit the game (or press ALT+X), it occurs an error (see screenshot #2) - there is nothing in the error log
- the little fps drops always be there (i think every 10 seconds fps drops for ca. 2 seconds)
- when i unzipped your updates, the first start will be done after 10-12 seconds, why? after first start, d-windows starts normal... strange
Memory usage of Mushroom Adventures:
Error by quiting:
@Mike
good to see you alive
[Edited on 17-8-2017 by RKSoft]
[Edited on 17-8-2017 by RKSoft]
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
It's a pleasure Mike.
Great, this seems to indicate that the bug was totally correct.
Did I notice, it also happened with the last official nightlybuild?
Quote: Originally posted by RKSoft |
- if you quit the game (or press ALT+X), it occurs an error (see screenshot #2) - there is nothing in the error log
|
Maybe some bugs caused by the attempt to erase memory will not validate, the original DIV code has a lot of spare dynamic allocations everywhere, it's
not so easy to find and correct any links, I'll see if i can identifies the problem, thank you.
One question, this happens with all the programs that follow (including the examples) or just some?
It's always the bug you brought here:
https://github.com/DIVGAMES/DIV-Games-Studio/issues/23
Or is that something else?
Quote: Originally posted by RKSoft |
- when i unzipped your updates, the first start will be done after 10-12 seconds, why? after first start, d-windows starts normal... strange
|
I have no idea sincerely, with d.exe does the same thing happen?
[Edited on 17-8-2017 by CicTec]
|
|
RKSoft
Game Making Machine!
Posts: 232
Registered: 1-3-2016
Location: Germany
Member Is Offline
|
|
Switching is strange; in Mushroom Adv. i get this errors. In my level editor not! Same, when quiting the game. The level editor works well but the
game not.
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Maybe your game uses some DIV functions that allocate memory that you try to free up when you exit the program, would it be possible to have the
source + assets to try it?
|
|
RKSoft
Game Making Machine!
Posts: 232
Registered: 1-3-2016
Location: Germany
Member Is Offline
|
|
okay, here is my Mushroom Adventure and if you quit by doing ESC (lost a live) till it shows 'game over' the game quits correct. But ALT+X or pressing
the X on the window title it occurs the error.
Attachment: Mushroom Adventures.7z (30kB) This file has been downloaded 1909 times
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Thanks,
I've tried but this error does not happen in my machine, I tried all the combinations (ALT + X, X window, etc ...) always terminate correctly both
RELEASE and DIV versions. :\
|
|
Vortigano
DIV Regular
Posts: 237
Registered: 12-1-2017
Location: Ciudad de Buenos Aires, Argentina
Member Is Offline
|
|
Wow, voy a probar la última actualización Cictec. Iba a reportar sobre el update anterior porque el ejemplo "example_start_mode8" de la ayuda de div
fallaba al ejecutarlo desde el ide al momento de cerrarlo con "alt+x", ademas de haber preparado un ejemplo que consume mucha memoria hasta que se
cuelga el programa, pero como es para un update antiguo me reservo los detalles para evitar confusiones, voy a probar la última actualización ahora
mismo. Muchísimas gracias Cictec.
[Edited on 17-8-2017 by Vortigano]
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Quote: Originally posted by Vortigano | Wow, voy a probar la última actualización Cictec. Iba a reportar sobre el update anterior porque el ejemplo "example_start_mode8" de la ayuda de div
fallaba al ejecutarlo desde el ide al momento de cerrarlo con "alt+x", ademas de haber preparado un ejemplo que consume mucha memoria hasta que se
cuelga el programa, pero como es para un update antiguo me reservo los detalles para evitar confusiones, voy a probar la última actualización ahora
mismo. Muchísimas gracias Cictec.
[Edited on 17-8-2017 by Vortigano] |
Ok Vortigano, muchas gracias por los tests y feedbacks.
--------------------------------------------------------------
Ok Vortigano, thank you very much for tests and feedbacks.
|
|
Vortigano
DIV Regular
Posts: 237
Registered: 12-1-2017
Location: Ciudad de Buenos Aires, Argentina
Member Is Offline
|
|
update-17.08.17-reports
Example_start_mode8 __ It works fine, but crashes when use alt + x.
Divdx_update_tester ___ runs out of memory.
|
|
Vortigano
DIV Regular
Posts: 237
Registered: 12-1-2017
Location: Ciudad de Buenos Aires, Argentina
Member Is Offline
|
|
divdx_update_tester.prg
P/d: Se hace un lío al mostrar los FPS XD
Attachment: divdx_update_tester.PRG (1kB) This file has been downloaded 1652 times
[Edited on 17-8-2017 by Vortigano]
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Hola Vortigano,
Gracias por el test, esto muestra 3 errores:
1) El primer error es de memory leak y esta en el ejemplo mismo, el siguiente trozo de codigo del proceso "poner_letra":
Code: |
loop
graph=write_in_map(0,letra,4);
y=y+velocidad;
if(tiempo>1 and y<580) tiempo--; else signal(id,s_kill);end
frame;
unload_map(graph);
end
|
Tiene un fallo, cuando el tiempo acaba, llamas la funcion SIGNAL que pone en estado de "killing" el proceso y justo despues se ejecuta FRAME, esto
indica a DIV que el proceso a acabado su ejecucion para este FRAME y esta listo para el siguiente, todavia despues la ejecucion de todos los procesos
(llamada a FRAME) el proceso que ha sido puesto en estado de killing es destruido por el gestor de procesos de DIV ante de empezar el nuevo FRAME,
esto implica que la ultima llamada a WRITE_IN_MAP no es seguida de la correspondiente llamada a UNLOAD_MAP, causando una perdida de memoria (el MAP
sigue en memoria).
2) El problema que provoca el bloqueo del programa es debito al bug del programa indicado en el punto 1 y a un bug del codice di DIV.
DIV puede crear hasta 1000 mapas en memoria (con WRITE_IN_MAP o NEW_MAP) cuyos ID van desde 1000 hasta 1999, todavia el codigo que se encarga en
WRITE_IN_MAP de devolver el ID es el siguiente:
Code: |
while(g[0].grf[next_map_code]) {
if(next_map_code++ == 1999) {
next_map_code = 1000;
}
}
|
El bucle busca si una "slot" de los 1000 mapas utilizables es disponible y devuelve tal ID, todavia con el bug del punto 1 todos los "slot" se van
rellenando hasta no tener uno libre y como el bucle no tiene condiciones de salida validas se queda ejecutandose infinitamente provocando el bloqueo
del programa.
Habra que arreglar el codigo para que el bloqueo no se verifique nunca.
3) El consumo del RAM que sube en el programa parece ser debito a un problema de gestion de la memoria: WRITE_IN_MAP pide memoria al SO y esa es
alocada si todo esta bien y UNLOAD_MAP deberia liberarla, pero parece no ser asi, aunque el codigo sea corretto, habra que mirar efectivamente cosa
provoca esto.
Sobre el crash del programa del ejemplo del mode8 pulsando ALT + X, como para el juego de RKSoft sigue funcionando bien en mi maquina, asi que de
momento no sabria a que es debito.
-----------------------------------------------------------------------------------------------------------------------------------------------------
Hi Vortigano,
Thanks for the test, this shows 3 errors:
1) The first error is memory leak in the same example, the following process code "poner_letra":
Code: |
loop
graph=write_in_map(0,letra,4);
y=y+velocidad;
if(tiempo>1 and y<580) tiempo--; else signal(id,s_kill);end
frame;
unload_map(graph);
end
|
It has a failure, at the end of time you call the SIGNAL function that causes the process to "killing" and immediately executes FRAME, this indicates
to DIV that the process has finished running for the current FRAME and is ready to the next,
However after executing all processes (called to FRAME), the process that has been put into killing is destroyed by the DIV process manager before
starting the new FRAME, this implies that the last call to WRITE_IN_MAP is not followed by the corresponding call to UNLOAD_MAP, causing memory leak
(the MAP persists in memory)
2) The problem that causes the program to be blocked is due to program bugs mentioned in step 1 and a DIV code bug.
DIV can create up to 1000 memory maps (with WRITE_IN_MAP or NEW_MAP) with identification from 1000 to 1999, the code that manages IDs in WRITE_IN_MAP
is as follows:
Code: |
while(g[0].grf[next_map_code]) {
if(next_map_code++ == 1999) {
next_map_code = 1000;
}
}
|
The loop searches if a "slot" of the 1000 usable maps is available and returns that ID, but with point 1 bug all "slots" are filled until they aren't
free and since the loop has no valid exit condition it runs infinitely, causing the program to be blocked.
It will be necessary to correct the code so that the block does not occur anymore
3) The RAM consumption that goes progressively increasing in the program seems to be caused by a memory management problem: WRITE_IN_MAP asks for
memory to the SO and this is allocated if everything is OK, UNLOAD_MAP should release it, but it does not seem like this even if the code is correct,
we will need to see what actually causes this.
About the crash of the mode8 sample program by pressing ALT + X, as with the RKSoft game, it keeps running well in my machine, so at the moment I do
not know what's the cause.
[Edited on 18-8-2017 by CicTec]
[Edited on 18-8-2017 by CicTec]
|
|
Vortigano
DIV Regular
Posts: 237
Registered: 12-1-2017
Location: Ciudad de Buenos Aires, Argentina
Member Is Offline
|
|
Muy interesante todo esto, gracias por compartir tu experiencia y conocimiento Cictec. Esto es genial.
|
|
BreadCaster
Loyalty Card Holder
Posts: 321
Registered: 2-3-2016
Member Is Offline
|
|
CicTec, this is fantastic. Thanks so much for putting the time and effort into this. I've been trying to get to grips with Unity3D recently as I want
to make a 3d game next for sure, but it's been kicking my ass. Is there any liklihood that this working build of DivDX will be ported to OSX - as in,
is that something in the pipeline that you and Mikey think you could do in the near future?
If so I'm very tempted to make a quick n nasty Blood styled 2.5d shooter, using some of the functions I wrote
~*~ Princess of Pies and Pastries ~*~
|
|
RKSoft
Game Making Machine!
Posts: 232
Registered: 1-3-2016
Location: Germany
Member Is Offline
|
|
@Cictec
i found a solution how fixing the ALT+X or window-x button bug. I set up the compatibility mode to windows xp sp3 and it works. But this isn't really
fine.
I tried another game (project Candy Time), made an installation and run it without the comp. mode. No bugs with ALT+X etc. (i use no scrolling in this
game). Maybe a bug there?
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
It's a pleasure BreadCaster.
DIVDX is able to be compiled for Mac, unfortunately I do not have it so I can not make the build, and the DIV-Arena server I think is currently not
set to do so.
There are a lot of ideas and things in the pipeline that we have in mind for DIV, unfortunately everything stalled because of Mike's current lack of
time, when he would come back to it, you would soon see a modern DIV3 version (32bits color , Modern features, etc ...) working on your machines.
Well, 2.5D is currently mode8, I understand it is limited in some features and lack of colors at least 16bits, we can currently try to fix all the
bugs present and possibly add some tiny new feature while waiting for more advanced versions.
Quote: Originally posted by RKSoft | @Cictec
i found a solution how fixing the ALT+X or window-x button bug. I set up the compatibility mode to windows xp sp3 and it works. But this isn't really
fine.
|
Thanks for the report RKsoft, yes is not really fine, maybe I can fix this problem.
Quote: Originally posted by RKSoft |
I tried another game (project Candy Time), made an installation and run it without the comp. mode. No bugs with ALT+X etc. (i use no scrolling in this
game). Maybe a bug there? |
Thanks for the test, this could help find the problem.
According to your reports and Vortigano, they seem to crash programs using scroll y mode8, maybe parts related to it during the finalization of the
program are involved in the problem, I will control it.
[Edited on 18-8-2017 by CicTec]
|
|
CicTec
DIV Pro
Posts: 471
Registered: 6-8-2016
Member Is Offline
|
|
Hello,
I've re-uploaded the package on first post, contains some bugsfix of error(s) reported by us and others found, worklog also updated and tagged as "===
17.08.18 ====".
|
|
BreadCaster
Loyalty Card Holder
Posts: 321
Registered: 2-3-2016
Member Is Offline
|
|
Cictec the only thing really stopping me at the moment is that the Mac build isnt done, I mean I could go downstairs and try to use the tower PC but
it's a pain to set up and I have to plan a dedicated day to it, rather than doing it anytime on my laptop. Still planning on polishing up Forgotten
and releasing it as a test/demonstration though
~*~ Princess of Pies and Pastries ~*~
|
|
Pages:
1
2
3
4
..
6 |