George Adventure DX: Episode I CELEST 2007 unreleased game revived
#1
Posted 13 June 2017 - 12:02 AM
I been programming in MZX in the past weeks; recycling my old games and trying to update the engines (mainly the RPGs). I will release shortly my new HP BAR engine that does the math with a simple value and sets the outcome as HP and HPMAX.
Back to George Great Adventure DX, it was a experimemental RPG, mixed of Pockémon, Dragon Quest and my old ZZT games. I made over 36 monsters and the battle engine was functional but with many bugs (special attack wasn't developed); then I tried to update with my new engines (I been making only engines)
So I decided to once again, remake this game. It came out great, cause i like it so far.
I am devoloping the main Map. Soon i will post more screenshots.
I can't use Sprites because they are too advanced for me yet.
More info later.
# Since 1998 #
#2
Posted 13 June 2017 - 12:40 AM

<Malwyn> Yes, yes. Don't worry I'd rather masturbate with broken glass than ask you for help again. :(
#3
Posted 13 June 2017 - 07:15 PM
Now, how I can make that like in SUPER MARIO WORLD, that you can't advance the next part after you finish the level?
EXAMPLE:
To advance the NEXT TOWN you need finish the ROAD level in order to "unlock" that part in the map.
Mmmmmmmmm
# Since 1998 #
#4
Posted 13 June 2017 - 07:17 PM
For example, lets say you want to create a new 2x2 sprite. You'd start by creating the graphics for that 2x2 sprite somewhere on the board (for example, let's say at board coordinates 10,10). Next, you'd pick a number to use for that sprite (this has to be between 0 and 255). If you intend for sprites to overlap, note that sprites with a lower number will be drawn first/hidden behind sprites with a higher number. For the sake of this example we'll just stick to 0. Thus, to initialize a sprite, we'd simply just do the following:
set "spr0_refx" 10 set "spr0_refy" 10 set "spr0_width" 2 set "spr0_height" 2 PUT c?? sprite p00 40 5
This post has been edited by Old-Sckool: 13 June 2017 - 07:17 PM
<phthalocyanine> they make experiences.
<Nadir> demos, more like
<Nadir> a glimpse into what could have been if mzx wasn't such a bore to work with
<Nadir> actually, i'm being unfair
<Nadir> i would have made mzx games if it was capable of running on more than 20 computers worldwide in 1998
<Nadir> >:D
<%Alice> functor
<%nooodl> i hear C++ has a thing called functors and they're completely different from Haskell functors...
<rorirover> the result is the most horrid thing in C++, it's basically black magic and it transforms any code you're writing into some eldritch monstrosity
#5
Posted 13 June 2017 - 08:10 PM
# Since 1998 #
#6
Posted 14 June 2017 - 06:50 PM
I am writing a CUSTOM saving engine that saves NAME, PLAYER LEVEL, TIMESTAMP of last SAVE, GAME LOCATION and such information, show it and load the file.
I am stuck because the file can't be overwritten or shown. Please help. Thanks for your help!
*I attach theoutcome files from the engine*
Attached File(s)
-
savedata1.txt (25bytes)
Number of downloads: 318
# Since 1998 #
#7
Posted 15 June 2017 - 01:11 AM
My best guess though is that after writing to file, you're not freeing the stream with this line:
set "" to fwrite
<phthalocyanine> they make experiences.
<Nadir> demos, more like
<Nadir> a glimpse into what could have been if mzx wasn't such a bore to work with
<Nadir> actually, i'm being unfair
<Nadir> i would have made mzx games if it was capable of running on more than 20 computers worldwide in 1998
<Nadir> >:D
<%Alice> functor
<%nooodl> i hear C++ has a thing called functors and they're completely different from Haskell functors...
<rorirover> the result is the most horrid thing in C++, it's basically black magic and it transforms any code you're writing into some eldritch monstrosity
#8
Posted 15 June 2017 - 01:16 AM
set "" to "fwrite_open"
But yeah, it'd be helpful to see all of your code.
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#9
Posted 15 June 2017 - 06:42 PM
cycle 1
color c00
end
: "saveFILE"
lockself
* "~eSAVING"
. "------ Lets check if data exists"
set "savedate&windowOPTIONsel&.txt" to "FREAD_OPEN"
set "$slot" to "fread"
if "windowOPTIONsel" = "&$slot&" then "SDENY"
set "" to "FREAD_OPEN"
goto "saveOK"
end
: "SDENY"
ask "File already exists! OVERWRITE?"
: "no"
set "" to "FREAD_OPEN"
end play
play "q2c"
* "ERROR CAN'T OVERWRITE!"
wait for 15
send "WINDOWz" to "startup"
unlockself
end
: "saveOK"
: "yes"
set "savedata&windowOPTIONsel&.txt" to "fwrite_open"
set "$slot" to "&windowOPTIONSEL&"
set "$name" to "GEORGE"
set "$level" to random 1 to 99
set "$Saintgems" to random 0 to 8
set "$SAVEday" to "&date_DAY&"
set "$SAVEmonth" to "&date_MONTH&"
set "$SAVEyear" to "&date_YEAR&"
set "$SAVEhour" to "&time_HOURS&"
set "$SAVEminute" to "&time_MINUTES&"
. "player location in WORLD MAP (based on MAP)"
set "$Glocation" to random 1 to 37
. "player position in BOARD (based on PLAYERX)"
set "$GX" to random 1 to 80
. "player position in BOARD (based on PLAYERY)"
set "$GY" to random 1 to 24
set "$slot" to "fwrite"
set "$name" to "fwrite"
set "$level" to "fwrite"
set "$Saintgems" to "fwrite"
set "$SAVEday" to "fwrite"
set "$SAVEmonth" to "fwrite"
set "$SAVEyear" to "fwrite"
set "$SAVEhour" to "fwrite"
set "$SAVEminute" to "fwrite"
set "$Glocation" to "fwrite"
set "$GX" to "fwrite"
set "$GY" to "fwrite"
set "" to "FWRITE_OPEN"
unlockself
* "~cSAVED!"
send "WINDOWz" to "startup"
send "data1" to "loadme"
end
: "error1"
end play
play "q1c"
* "~cSAVE ERROR!"
end
# Since 1998 #
#10
Posted 15 June 2017 - 08:49 PM
1)
set "savedate&windowOPTIONsel&.txt" to "FREAD_OPEN" set "$slot" to "fread" if "windowOPTIONsel" = "&$slot&" then "SDENY"
This will compare windowOPTIONsel to the counter named "0" or whatever the value in the save slot is. Unless the counter named "0" is set to zero, "1" set to 1, etc, this might fail to detect an existing file. In MZX, you can compare counters and strings numerically, so as long is the string is on the right of the operator this should just be:
set "savedate&windowOPTIONsel&.txt" to "FREAD_OPEN" set "$slot" to "fread" if "windowOPTIONsel" = "$slot" then "SDENY"
2)
set "savedate&windowOPTIONsel&.txt" to "FREAD_OPEN" ... : "SDENY" ask "File already exists! OVERWRITE?" ... : "yes" set "savedata&windowOPTIONsel&.txt" to "fwrite_open"
It looks like you aren't closing the file for reading before you try to write it. I haven't actually been able to get this to fail, but it might be the issue. I suggest changing the part starting at "yes" to:
: "yes" set "" "fread_open" set "savedata&windowOPTIONsel&.txt" to "fwrite_open"
xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#11
Posted 15 June 2017 - 09:33 PM
I upload the source .mzx (zipped), so you can see the save engine in action (because its a little difficult explain it)
Attached File(s)
-
saveengine.zip (3.94K)
Number of downloads: 182
# Since 1998 #
#12
Posted 17 June 2017 - 11:24 PM
set "savedate&windowOPTIONsel&.txt" to "FREAD_OPEN" set "$slot" to "fread" [ "&windowOPTIONsel& &$slot&" if "windowOPTIONsel" = "$slot" then "SDENY"

This is because you're opening "savedate[etc...]" instead of "savedata[etc...]". This file doesn't exist, so the special function of fread fails and instead the string gets set to literally "fread". When I change it to this:
set "savedata&windowOPTIONsel&.txt" to "FREAD_OPEN" set "$slot" to "FREAD" if "windowOPTIONsel" = "$slot" then "SDENY"
it works:

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository
#13
Posted 18 June 2017 - 03:07 AM
its the engine of custom save. yet tp be in the main game.
# Since 1998 #