A82: Ash and Kurai's problems examined


[Prev][Next][Index][Thread]

A82: Ash and Kurai's problems examined



Here is the whole story. Kurai and I have been trying to convert 
DyingEyes/FFX4 to Ash. And every time we compile and run the game, it 
works fine but when you exit, the ash menu says "no programs" and 
everything is screwed up.  The name of the prog is always diffrent, it 
says it takes up about 51000 mem and sometimes y1-y0 have tremendously 
huge values. And of course Crash! I think me and Kurai have figured out 
the problem with Ash. You can't have a game bigger than 14k (roughly). 
Here are all the points to support this:
#1 FFX4 and Dying Eyes work perfectly with OS-82 which does not move the 
programs to the start of user mem when executed. Maybe the new Ash 
shouldn't either??
#2 It is not the program that is messed up, everything is converted 
fine.
#3 Even though both RPG's use lots of variables, I and Kurai have spent 
hours trying diffrent combinations of TEXT_MEM(2), GRAPH_MEM, and 
APD_BUF things. Plus I calculated all the locations and all are within 
the respective limits. So, no values are being stored in the wrong 
place.
#4 Even when you immediatly_quit it still gets messed up. I even made 
sure to clear and reset everything before quitting and still it doesn't 
work
#5 To date, there has been no Ash program greater than 10k. The biggest 
one so far is GAMEWIZARD and that I think is only about 7-8k
#6 It works fine with OS-82!

Possible solutions and reasons for this
-------------------
Reason #1: the 82 won't allow large amounts of memory to be moved to the 
start of the user mem.
Reason #2: Since the 82's mem is always moving, big programs take up too 
much space and are moved diffrently and that of course would lead to a 
crash. Let me expain it this way. If the 82 moves it's memory in 8 or 
16k bunches then any program over that would take up 2 bunches. So just 
moving the program to the start of mem, you would lose part of it and 
then a crash would resuly. This is supported by the values of the 
variables and programs after you exit a very large game.
Solution #1: Don't make big programs :(  (That would not be wise)
Solution #2: Go back to the old method of using PROGRAM_ADDR and add 
hl,de whenever you need to load a locaion in hl. Hence OS-82!!!
Solution #3: Dines will have to think up some complicated scenario and 
fix this in the next version of Ash. More than likely a 3rd or 4th 
variable will be needed.

Well, there is the facts. Dines, what are our options????
Cause I and everybody want big, cool games!!!!!