Finally, I made this thing ! There are a few graphical glitches, but because I didn't copy data correctly
I also released a cheating device, which can't edit data while the game is running, but can hack the save after execution.
Okay, give me screens now ! [EDIT] The screenshots are now broken, see this post for the newest version with correct screenshots
Spoiler For Screenshots:
Sorry if the screen sometimes garble, it doesn't happen on my calc, but on TileM it occurs
Your very first screen !
Interactable signs !
Door warping !
Save and reload !
Isn't there something ?
A small glitch (fixed in my development build)
Spoiler For Cheating device:
Example : rotate your guy without changing its target tile
Example : warp to an out of bounds location which displays a glitched terrain (I corrupted the screenshot, sorry) WARNING : Pressing Enter in this kind of zone may lead the game into interpreting garble data as tile interaction, and will trigger invalid routines (you may freeze the game, make it return with a ERR:SYNTAX (don't know which RAM address is called at that time) or just crash / freeze the game with a RAM clear)
Example : kind of walk through walls glitch (you may directly enter 0F in the vertical byte #1)
If you enter a zone you usually can warp only if you entered aan odd number of doors with having entered and even number of doors (and vice-versa), you will stay on the doors after warping. This is because a flag is changed when walking through a door.
The file couldn't be hosted on omnimaga (too large ), so there it is ! All the files are in the zip, but you may download the files individually
Coming back, with a different project : While I was trying to make the warps-using maze, I went really far in its development. Kinda looks like this is going to be a different project. Its code name : RPGLITE, 4632 bytes large, features :
Somewhat a man
"Smooth" scrolling when moving
Interactable tiles
Door warps
A start "mode" menu, with a slidy transition when appearing
Save your position, yay ! (yes, there was a time when your position wasn't saved... )
Also does this use the clock functions on the 84+ ? There's a day of week function built in.
No, because it uses assembly, I didn't use this function. Maybe it is possible, but it currently is quite fast (about half a second to scan a whole month), and I don't think using this feature will speed up the program
But, you gave me an idea : When the calculator implements these time functions, the day isn't asked to. Will require two programs, though.
NOTICE : I am currently working on a mini-RPG engine for my PUZZLE MASTER program, so this program is in limbo, but shall be back soon !
Hello guys, yesterday I was asked a very important question : "When will the next Friday, 13th be ? How many times will it occur next year ?" I didn't know the answer, I didn't have any calendar near me, but I had my calculator...
So, there it is, FRIDAY 13 FINDER ! How it works :
Launch it
Enter today's date :
Select the number to change
Press Enter
Enter the new value
Select "Confirm"
Scroll the list with the left and right keys, hit Enter to validate
Press any key
Press any key to skip to next month, or Clear to quit.
And that's pretty much everything about it !
One known bug : when editing a value on the date screen, the display isn't updated, but internally it is.
Features to implement soon :
Limiting the day value as the months do
Adding an "Auto Scan" mode which only displays the affected months
Last change before uploading : * Fixed when creating a new file, then pressing something else than Enter, then selecting Continue allowed you to enter weird levels (entering them would display the ending screen, until level 0 is passed which would make you enter level 1).
Uploaded the files, see first post ! Also, look at the FAQ (you may find something interesting ?)
Coming back... I just made some big data compression, and 500 more bytes are off : Rewrote the labyrinth's graphical engine, which added (unexpectedly) rounded angles. (~ 250 bytes) Also took the labyrinth's Map data and switched from byte structure to nibbles (~ 250 bytes)
Always when i had flash corruption it was fixed by re-sending the OS
The memory corruption was fixed (thanks !), but I uninstalled zStart, I got too many problems with it. Switching to NoShell + Omnicalc.
I finally got some spare time, so I'll probably upload the files (and screens) this afternoon !
I need an idea for some kind of "action" level (in which there is no need to think). The author of idea I'll select will win a FABULOUS prize !! (no, actually I will only mention him on the level screen )
Spoiler : the next labyrinth will have teleporters...
My calculator has a flash corruption (when I said "Crashed by zStart"... seems to be some garbled data that maessed up everything), and a friend of mine is repairing it. Also, like Zemmagorp (a friend of mine), we are still at school, and we have math lessons to learn... so not many time to spend.
+------------+---------------+---------------------------------+ | 1 byte | 1 byte | 2 bytes | +------------+---------------+---------------------------------+ | Version ID | Current level | Unused bytes (for future usage) | +------------+---------------+---------------------------------+ Total size : 4 bytes
[NOTE] No, I can't give you the programs, nor screenshots, because I have a problem with my TI. This message will be replaced by the programs a soon as I will be able to upload them !
If you have questions, post them ! I'll be happy to answer. You are also welcome if you want me to add some levels, give your ideas below (I have no more ideas...) Also, as soon as I will have uploaded the files, you will also be welcome if you report some bugs. They will go into this spoiler \/
[EDIT] Moved both spoilers to the first post. It will be easier to find these there.
.PUZZMAST Some puzzles ! (In a pack ^^) .-- by ISSOtm
.Zemmagorp's Menu( axiom #Axiom(MENUS .I find the activity indicator annoying DiagnosticOff #ExprOff Full^^r^^r Full^^r ClrDraw^^r^^r Fix 5 Disp "PUZZLE MASTER -- DISSOLVED ?" getKey^^r While 1 Lbl MENU ClrHome Menu("TITLE MENU","New game","Continue","How to play","Quit" .NOTE: this command clears the screen like ClrHome, so it isn't needed Then. !If -4 .quit selected Lbl QUIT GetCalc(Str7FILE)?Archive Str7FILE ClrDraw^^r^^r .reset activity indicator on DiagnosticOn Asm(FDCB00AE) Return Else!If +3 .new game Lbl NEW !If GAL2(Str7FILE,1,1) Disp "ERROR: SAVE FILECOULDN'T BE CREATED." getKey^^r Goto QUIT Else!If -1 !If UnArchive Str7FILE Disp "SAVE COULDN'T BEUNARCHIVED." getKey^^r Goto QUIT Else GetCalc(Str7FILE)->[Y1T] End End Disp "WARNING: DOING THIS WILLERASE YOUR PREVIOUS SAVE.", getKey^^r Disp "PRESS [ENTER] TOCONFIRM, OR ANY KEY TO CANCEL" getKey^^r-5??1->{[Y1T]}|LGAME,|LMENU Goto () Else!If -1 .load game !If GALC(Str7FILE) Disp "Save file does not exist. ",,"Creating a new one." getKey^^r ClrHome Goto NEW Else!If -1 !If UnArchive Str7FILE Disp "SAVE FILE HASN'TBEEN UNARCHIVED" Else GetCalc(Str7FILE)->[Y1T] End End ClrDraw Fix 1 Text(0) Text "YOU HAVE ACCESS" Text(2048) Text "TO LEVELS FROM 1" Text(4096) Text "TO ",{[Y1T]}>Dec,"." Text(6144) Text "CHOOSE :" {[Y1T]}->A Repeat 0 Text(6204) Text {[Y1T]}>Dec DispGraph !If getKey^^r-1 {[Y1T]}-A?{[Y1T]}++ Else!If -1 {[Y1T]}-1?{[Y1T]}-- End End!If -3 Fix 0 Goto GAME Else .Game help Disp "PLAYING PUZZLE MASTER : PAGE 1 ",,"The goal of thisgame is to pass all the levels." getKey^^r ClrHome Disp "PLAYING PUZZLE MASTER : PAGE 2 ",,"But, it may be abit harder than it seems... >=))" getKey^^r End End Lbl GAME prgmSUBthetaPUZZ Goto MENU .Program end .------------- .Data is saved here prgmDATthetaPUZZ .Data end .------------- .Displays all the rocks
.ROCKS() Lbl ROCKS GDB0ROCK->[X1T] 1->[X2T] For(7)^^r Pt-Change({[X1T]}*8,[X2T]*8,Pic7ILE+8) Pt-Change({[X1T]+1}*8,[X2T]*8,Pic7ILE+8) [X1T]++ [X1T]++ [X2T]++ End Return .------------- .My custom (optimized as i could) randIntNoRep( axe implementation
.RANDINTNOREP(INT How many numbers to sort)->PTR Sorted data .Overwrites [r1]*2-1 bytes starting at L1 Lbl RANDINTNOREP Fill(L1,[r1]*2-1) 0->[X1T]->{[r1]+L1->[X2T]-2->[X3T]+1} For([r1]-1)^^r [X1T]++ If rand<<0 [X1T]->{[X2T]} [X2T]++ Else [X1T]->{[X3T]} [X3T]-- End End [X3T]+1 Return .------------- .Nice display routine for dialog-like texts
.DISP(PTR String to display)->PTR Position of the next string Lbl DISP While {[r1]}-255 .Character [00] ends line !If +255 Disp getKey(9)?40,800 Else Disp {[r1]}>Char getKey(9)?40,200 End Pause [r1]++ End [r1]+1 Return .------------- .GetCalc() lib to easily get OS vars
.GAL2{requires GALC}(STR var name, INT var size, DATA default value)->ENUM[0=creation failed,1=in Archive ,2=in RAM] data location .If in RAM : INT var pointer->[Y1T] Lbl GAL2 .try to find the var !If GALC() .it doesn't exist ? then create it ! !If GetCalc([r1],[r2]) .If we can't create it, Then Return 0 Else GetCalc([r1])->[Y1T] .let's fill the var with the default value [r3]->{[Y1T]}^^r .now it exists in ram 2 End End Return
.GALC(STR var name)->ENUM[0=doesn't exist,1=in Archive ,2=in RAM] data location Lbl GALC If GetCalc([r1]) ->[Y1T] 2 ElseIf GetCalc([r1],[Y1]) 1 Else 0 End
..PUZZMAST first (and only) include file While {[Y1T]}-4 ClrHome !If {[Y1T]}-1 Str7ITLE->A Disp "You wake up. You don't remember anything..." For(4)^^r getKey^^r ClrHome DISP(A)->A End Else!If -1 DISP(Str2LEVEL)->[Y2T] ClrDraw HLine(28,43,53) HLine(38,43,53) HLine(33,44,48) VLine(43,29,37) VLine(53,29,37) 0->X->Y Pt-Change(42,27,Pic5QUARE) DispGraph While Y-1 or X If getKey^^r->A<5 Pt-Change(X*5+42,Y*5+27,Pic5QUARE) !If A-1 X??X++ Else!If -1 X?X-- Else!If -1 X and Y?Y-- Else X-1 or Y??Y++ End Pt-Change(X*5+42,Y*5+27,Pic5QUARE) DispGraph Else!If A-9 Goto MENU End End Text(28,41) Text "WELL DONE !" DispGraph getKey^^r ClrHome DISP([Y2T]) Else ClrHome DISP(Str3LEVEL)->[Y2T] getKey^^r ClrDraw Fix 1 Text(0) Text "LV 3: :" For(A,0->C,2) Pt-Change(A*8+29,0,Pic4EART) End Fill(GDB0ROCK,14,0) 12->B For(2)^^r RANDINTNOREP(7)->A For(7)^^r B->{{A}*2+C+GDB0ROCK} B++ A++ End C++ End HLine(0->A->G->I,60,93) HLine(6,60,93) VLine(94,1->B->D,3->C+1->L+1) Pt-Change(0,32,Pic7ILE) ROCKS() While A-36 Pt-Change(0,C+1*8,Pic7ILE) !If getKey-1 C-6 and {C+1*2+GDB0ROCK}?C++ Else!If -3 {C-1*2+GDB0ROCK} and C?C-- Else!If -11 Goto MENU End DS<(B,128) A++ VLine(A+58,1,5) End DS<(D,64) .Clear old rocks ROCKS() GDB0ROCK->E For(14)^^r !If {E} {E+1}->{E} {E}<12?13,{E}+1 +(rand^8)->{E+1} Else!If -1 or (E-GDB0ROCK/2-C) Pt-Change(L*8+13,0,Pic4EART+8) For(10)^^r DrawInv Pause 500 End DS<(L,1) ClrHome Disp "TOO BAD !",,"YOU DIED !",,"PRESS ANY KEY TOTRY AGAIN..." getKey^^r 1->G End 4->C+1->I End {E}-- E++ End ROCKS() I?I-- End Pt-Change(0,C+1*8,Pic7ILE) DispGraph EndIf G If Goto GAME End Text(4104) Text "+------------+" Text(6152) Text "I LEVEL NO 3 I" Text(8200) Text "I COMPLETED! I" Text(10248) Text "+------------+" DispGraph Fix 0 Pause 600 getKey^^r ClrHome DISP([Y2T]) End getKey^^r ClrHome Disp "YOU JUST PASSED LEVEL",{[Y1T]}>Dec," !",,,"GAME SAVED." {[Y1T]}++ !If getKey^^r-9 Goto MENU End End Goto MENU
..PUZZMAST first (and only) include file Buff(14,0)->GDB0ROCK [0000001818000000]->Pic5QUARE [6CFEFE7C38100000006C7C3810000000]->Pic4EART [3070787E7E78703046EEFF7F7EFEEF06]->Pic7ILE "appvPUZZSAVE"->Str7FILE "Where am I ?"->Str7ITLE "It's dark there."[00] "..."[00] "You hear a voicesaying :"[FF] "Welcome to the PUZZY LAND !"[00] "Here, you will need much logic."[00] "Because I won't tell you what todo."[FF] "But anyways, youshould exit and try to get out of here..."[0000] "The voice stops speaking."[FF] "A ray of light appears while a door creaks."[00] "You move to thatdoor, and..."[FF]
.Strings displayed at the beginning and the End of the levels "You are in a bigwhite room. You see a small gameunder a glass."->Str2LEVEL "You can move an iron jetton witha magnetic pieceof wood."[FF] "Putting the tinypiece of iron inthe hole opened a door."[00] "You head throughthat door."[FF]
"There is a room,and inside, you only see an old arcade game."->Str3LEVEL "It's on, and itsscreen displays:ISSOtm ASTEROID Idea : Zemmagorp"[FF] "You have won !!"[00] "The arcade game rotates, and a corridor lights up behind."[00] "The voice says :Thou are doing pretty well..."[FF]
I'm happy to see you used my Menu( axiom ... But less happy to see you used my Asteroid game without even asking me , and without writing "Game by Zemmargorp" anywhere in the game . The worst thing is that you added bugs to it ! Please, remove the download link until you change the level 3, and don't use my game in the next version. And like said Hayleia, find another name, because PuzzPack is already taken .
Otherwise, I like the way the text scrolls between levels !
Sorry, but all the code was written by me (except one thing : I took the sprite of the ship and I flipped it) I mentioned you because it was your idea)
Also, should I make a walkthrough for the first three levels ?
For those of you who hate math lessons (I know I already said that in the topic name ), here is another game to have on your calc ! If you have already finished all the Flappy Bird clones (tell me how you did if you have, these games are supposed to be infinite ), pwned every single opponent on Matrefeytontias' Worms, etc etc... Well I have a completely new game that is gonna crush your mind !! (No actually, it is pretty simple and there are only 5 levels but I am working on it... during my math lessons)
Well, at least, this should be some game you haven't played for a while (blame me if I am wrong)
FEATURES :
5 levels and more incoming !
Much fun (I hope)
7413 bytes "only" !
Only one bug isn't fixed !
COMING SOON :
More levels (give me ideas below !)
Spoiler For Screenshots:
[EDIT] There are no screenshots, because Wabbitemu is terribly laggy since its last update. Sorry for this [EDIT 2] TileM worked fine, so let's get started !
Level 1 (part of)
Level 2
Level 3
Level 4
Yeah, there it (finally) is !
Spoiler For Walkthrough:
Spoiler For Level 1:
Actually, you just need to scroll the text. If you look at this right now, maybe you should play something else
Spoiler For Level 2:
Spoiler For Level 3:
Actually, as there is no predefined pattern, I can't make a walkthrough. Sorry
Spoiler For Level 4:
If you have questions, post them ! I'll be happy to answer. You are also welcome if you want me to add some levels, give your ideas below (I have no more ideas...)
Spoiler For FAQ:
Spoiler For General FAQ:
QUESTION : What do I need to run this game ? ANSWER : Actually, nothing. It is an assembly game, so you'll need to run it sing the Asm( command, or to use an app like NoShell or zStart.
QUESTION : Do I need any particular skill to play this game ? ANSWER : No, but I recommend being intelligent , because you will need much logic... Also, please, do NOT tell me "how to go through this level ?". I will upload a walkthrough soon !
QUESTION : Is there any easter egg in your game ? ANSWER : Yep ! It is in the source code. Although it is some raw data, you may find what it is quite quickly, it is exactly like another data block next to it.
Spoiler For Little FAQ about the new version IDs:
QUESTION : What are "generations" and "version ID"s ? ANSWER : "Generations" is a word I use to describe games which use different "version ID"s. There are currently two generations (generation 0, which is some kind of "Alpha", and generation 1, which is more a "Beta" generation) The "version ID"s are used internally to find if the appvar structure is compatible with the game.
QUESTION : Is my current version compatible with the next ones ? ANSWER : No, and this is why I've created a tool to migrate appvars, it will be updated at each appvar structure update.
QUESTION : Why did you add version IDs ? ANSWER : In order to make versions with different data structure not compatible.
QUESTION : Why ? ANSWER : Because making data compatible is something hard to do and sometimes impossible. Generation 0 is a good example : when I released it, I wasn't thinking about changing data structure. But then I figured out that I may be adding features in next generations that would need to be saved, and I found that it would be a good idea to make a version ID to avoid data corruption. It is also easy to corrupt data while using a game with a data structure it doesn't understand. As an example, using a v1 appvar with a v0 (= without version ID) game would corrupt data, as then the version ID would be misinterpreted as level ID. On the other hand, using a v0 appvar with a v1 game would say "Appvar version is incorrect"... as long as the level (as of generation 0) is not 1. Generation 0 compatibility is nonexistent, because it writes its level counter where other generations read the version ID, and easily corrupts data. So please, do not use generation 0 but convert you appvar to generation 1.
QUESTION : Will the migration tool work for the next generations ? ANSWER : No, the tool is currently designed to migrate v0 to v1. You will have to download a new version to support (future) v2 conversion. But the program designed for v2 will convert v1 AND v0 to v2
You are also welcome if you report some bugs. They will go into this spoiler \/
Spoiler For Known bugs:
(sorted by levels)
General
The NEW GAME option makes you restart at the end of the game, but the save IS reset to 1
FIXED : I errorneously put ->{Y1T} instead of ->{Y1T}r ...
General
When no save file exists, select New File / Continue, and when asked, press any key but Enter. Press then Continue, and you may access any level (including glitch levels 0 and 8-255, which behave exactly like the ending screen, but do not make you leave. You loop like this until you passing level 0 makes you enter level 1).
FIXED : The save file is created with a level set to 1, instead of not being set (and the default value is... 0)
Level 3
Sometimes the rocks' hitbox glitches out, and you can't move when you should be able to.
Looks like this only happens when you are in a certain distance from the rock. It is (still) unclear on how to fix this issue, which is quitereally annoying.
Level 5
When the choosen number > 32767, the game's logic is inverted.
FIXED : The GUESS A NUMBER is now limited to 32767 instead of 65535
Color code : FIXED (also means it will be removed from the table soon) Not a big problem Quite annoying Makes game unplayable