Author Topic: Nostalgia - An Axe RPG  (Read 133054 times)

0 Members and 1 Guest are viewing this topic.

Offline Deep Toaster

  • So much to do, so much time, so little motivation
  • Administrator
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 8217
  • Rating: +758/-15
    • View Profile
    • ClrHome
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #285 on: October 26, 2010, 08:49:33 pm »
Optimization is going smoothly. I managed to cut the size from 10416 bytes to 9910! That's 506 bytes saved! And I'm pretty sure there are still several things I can optimize.  :D

Wow, nice! Any chance you could get it under 8811? ;D




Offline FinaleTI

  • Believe in the pony that believes in you!
  • Project Author
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #286 on: October 26, 2010, 09:33:03 pm »
Keep in mind this is just the menu, but if I could, that would be awesome. I did get it down to 9883 now, though. Only about 1000 bytes to go. :P


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline shmibs

  • しらす丼
  • Administrator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2132
  • Rating: +281/-3
  • try to be ok, ok?
    • View Profile
    • shmibbles.me
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #287 on: October 26, 2010, 09:33:22 pm »
i don't even have to say that you working on this makes me ridiculously happy. good luck with optimizations!

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #288 on: October 27, 2010, 03:03:26 am »
I assume this this an APP, btw, right? In app form you have 16 KB executable code limit instead of 8. However, this includes data, unlike in program form, so most of your data might need to be stored in external programs or appvars.
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Offline FinaleTI

  • Believe in the pony that believes in you!
  • Project Author
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #289 on: October 27, 2010, 11:00:39 am »
Yeah, it's an app. I don't think it would be possible for me to make it in a program, even if it was for Mirage or DCS, just because I need all the code space I can.
I did shave off a few more bytes last night, though. The menu now sits at 9883 bytes. I believe I can still 'sub-routinize' more code, so that should be helpful. Plus, with a little modification to some of my picture data, I can cut back on the number of rectangles I use to erase stuff.


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline Runer112

  • Moderator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #290 on: October 27, 2010, 11:18:44 am »
Darn, how did I miss this before? I love trying to optimize code :P If you post an updated version of the source, because I'm guessing you've made numerous changes since your post a few pages ago, I can work on optimizing it.

Offline FinaleTI

  • Believe in the pony that believes in you!
  • Project Author
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #291 on: October 27, 2010, 11:42:27 am »
Ok. Here's the code. And it's still pretty large.
Code: [Select]
:.NOSMENU
:.[Pic1]→Pic1
:.[Pic3]→Pic2
:.[Pic2]→Pic3
:.[Pic6]→Pic4
:.[Pic5]→Pic5
:[10A040A00000000060F0909000000000F09090600000000000A040A000000000→Pic1I
:"vNOSBUFF"→Str1D
:"IRON SWORD*"→Str1E
:"STEEL SWORD*"→Str2E
:"ARBITER'S BLADE*"→Str3E
:"IRON ARMOR*"→Str1A
:"STEEL ARMOR*"→Str2A
:"GUARDIAN MAIL*"→Str3A
:"IRON SHIELD*"→Str1S
:"STEEL SHIELD*"→Str2S
:"ROUND SHIELD*"→Str3S
:DiagnosticOff
:0→r1
:GetCalc(Str1D,768)→J
:DeltaList(8,20,42,60,48,99)→GDB1E
:DeltaList(12,23,33,50,60)→GDB1A
:DeltaList(6,10,15,26,39)→GDB2A
:DeltaList(5,25,125,625,0)→GDB1EX
:GetCalc("vNosStats")→K
:GetCalc("vNosPorts")→I
:GetCalc("vNosMenus",Y1)
:ClrDrawr
:DrawInv r
:Full
:For(θ,0,767
:{Y1+1536+θ} and {L3+θ}→{L3+θ}
:End
:Lbl MS
:If ‾1sub(R1) or (getKey(48)
:0→r1
:Return
:End
:Full
:conj(Y1,L6,768
:For(θ,0,1
:If {θ+K+70}=1
:sub(TX,63,θ*15+4,"ROLAND*"
:sub(DN,{38sub(K)}r,76,θ*15+9,2
:sub(DN,{40sub(K)},76,θ*15+14,1
:End
:If {θ+K+70}=2
:sub(TX,63,θ*15+4,"ARIA*"
:sub(DN,{0sub(K)}r,76,θ*15+9,2
:sub(DN,{2sub(K)},76,θ*15+14,1
:End
:If {θ+70+K}
:sub(TX,63,θ*15+9,"HP*"
:sub(TX,63,θ*15+14,"MP*"
:End
:End
:conj(L6,J,768
:Lbl MM
:ClrDraw
:conj(J,L6,768
:Normal
:For(θ,0,10
:DispGraphr
:End
:sub(BMG,3,30,7,3,6)
:r1→θ
:If ‾1sub(R1) or (θ>15
:DelVar Str1D
:ClrHome
:Goto EXT
:End
:If θ≤15
:Goto CS
:End
:Lbl EXT
:DelVar Str1D
:ClrHome
:Return
:
:.Item Screen
:Lbl IT
:Full
:conj(Y1+768,L6,768
:For(θ,0,7
:!If {θ+58+K}
:ref(4,θ*5+10,81,5
:rref(4,θ*5+10,81,5
:Else
:sub(DN,{θ+58+K},82,θ*5+11,1
:End
:End
:DispGraph
:Normal
:Pause 200
:0→S
:Repeat ‾1sub(R1) or (S≠0) or (‾3sub(R1)
:sub(BM,10,74,8,3,6,1)
:r1/5→S
:{S+58+K}→S
:End
:If ‾1sub(R1)
:Goto MM
:End
:If r1≥0
:sub(ITM,r1/5
:End
:If r1>200
:conj(Y1+4608,L6,768
:DispGraph
:Pause 200
:0→r1
:sub(BM,10,74,2,3,6,2)
:If r1≠65534 or (‾1sub(R1)
:0→r1
:Goto MM
:End
:Goto IT
:End
:Goto MS
:
:.Character Select
:Lbl CS
:θ→V
:For(θ,0,10
:DispGraphr
:End
:0→r1
:If V≠15 and ({71sub(K)}≠0
:sub(BMG,3,31,2,62,16
:End
:If ‾1sub(R1)
:Goto MM
:End
:If V=5
:0→r6
:If {r1/15+70+K}=1
:38→r6
:End
:Goto ST
:End
:If V=0
:0→V
:If {r1/15+70+K}=1
:32→V
:End
:Goto EQ
:End
:If V=10
:0→V
:If {r1/15+70+K}=1
:38→V
:End
:Goto IT
:End
:If V=15 and ({71sub(K)}≠0
:expr(K+70,K+71,1
:Goto MS
:End
:Goto MM
:
:.Status Screen
:Lbl ST
:conj(Y1+3072,L6,768
:If r6=38
:Fix 9
:Tangent(4,4,I)
:Fix 8
:ref(37,4,33,10
:rref(37,4,33,10
:sub(TX,37,4,"ROLAND*"
:sub(TX,37,9,"THIEF*"
:End
:sub(DN,{r6sub(K)}r,49,15,2
:sub(DN,{r6+3+K}r,68,15,2
:sub(DN,{K+r6+2},49,20,1
:sub(DN,{K+r6+5},63,20,1
:sub(LN,{31*(r6=38)+23+K}r
:sub(DN,{31*(r6=38)+23+K}r,57,26,Y
:sub(LN,{31*(r6=38)+25+K}r
:sub(DN,{31*(r6=38)+25+K}r,57,31,Y
:sub(DN,{K+r6+6},21,38,1
:sub(DN,100-{K+r6+7},74,38,1
:sub(DN,{K+r6+8},21,43,1
:sub(DN,{K+r6+9},74,43,1
:sub(DN,{K+r6+10},21,48,1
:sub(DN,{K+r6+11},21,53,1
:sub(DN,{K+r6+12},74,48,1
:sub(LN,{29*(r6=38)+37+K}
:sub(DN,{29*(r6=38)+37+K},84,4,Y
:sub(LN,{{32*(r6=38)+19+K}-13+GDB1E}
:sub(DN,{{32*(r6=38)+19+K}-13+GDB1E},44,38,Y
:{{32*(r6=38)+20+K}-27+GDB1A}→V
:{{32*(r6=38)+21+K}-32+GDB2A}+V→A
:sub(LN,A
:sub(DN,A,44,48,Y
:DispGraph
:Pause 200
:Repeat getKey(48) or getKey(1)
:End
:If getKey(1)
:conj(Y1+4272,L6+432,336
:Pxl-Off(8,40
:For(θ,0,2
:sub(DN,{9*(r6=38)+74+θ+K},26,θ*8+39,0
:End
:sub(LN,{{9*(r6=38)+74+K}-1+GDB1EX}-{9*(r6=38)+77+K}r
:sub(DN,{{9*(r6=38)+74+K}-1+GDB1EX}-{9*(r6=38)+77+K}r,54,39,Y
:sub(LN,{{9*(r6=38)+75+K}-1+GDB1EX}-{9*(r6=38)+79+K}r
:sub(DN,{{9*(r6=38)+75+K}-1+GDB1EX}-{9*(r6=38)+79+K}r,54,47,Y
:sub(LN,{{9*(r6=38)+76+K}-1+GDB1EX}-{8*(r6=38)+81+K}r
:sub(DN,{{9*(r6=38)+76+K}-1+GDB1EX}-{8*(r6=38)+81+K}r,54,55,Y
:DispGraph
:Pause 200
:Repeat getKey(48) or getKey(4)
:End
:If getKey(4)
:Goto ST
:End
:End
:Goto MM
:
:.Equip Screen
:Lbl EQ
:conj(Y1+2304,L6,768
:ref(36,4,52,10
:rref(36,4,52,10
:If V=32
:GetCalc("vNosPorts")→I
:Fix 8
:Tangent(4,4,I
:Fix 9
:ref(36,4,8,32
:rref(36,4,8,32
:sub(TX,37,4,"ROLAND*"
:sub(TX,37,9,"THIEF*"
:Else
:sub(TX,37,4,"ARIA*"
:sub(TX,37,9,"KNIGHT*"
:End
:sub(TX,72,4,"LV*"
:sub(LN,{29*(V=32)+37+K}
:sub(DN,{29*(V=32)+37+K},84,4,Y
:ref(87,37,5,25
:rref(87,37,5,25
:ref(4,37,83,24
:rref(4,37,83,24
:If {sub(KV)+19}=13
:sub(TX,37,15,Str1E
:End
:If {sub(KV)+19}=14
:sub(TX,37,15,Str2E
:End
:If {sub(KV)+19}=15
:sub(TX,37,15,Str3E
:End
:If {sub(KV)+20}=27
:sub(TX,37,20,Str1A
:End
:If {sub(KV)+20}=28
:sub(TX,37,20,Str2A
:End
:If {sub(KV)+20}=29
:sub(TX,37,20,Str3A
:End
:If {sub(KV)+21}=32
:sub(TX,37,25,Str1S
:End
:If {sub(KV)+21}=33
:sub(TX,37,25,Str2S
:End
:If {sub(KV)+21}=34
:sub(TX,37,25,Str3S
:End
:sub(TX,37,30,"BACK*"
:DispGraph
:Pause 200
:sub(BM,14,56,4,36,6,0)
:If 15sub(R1)
:Goto MM
:End
:If ‾1sub(R1)
:Goto MM
:End
:r1→θ
:If θ=0
:If {13sub(K)}
:Pt-On(4,37,Pic1I
:sub(TX,9,37,Str1E
:Pt-On(83,37,Pic1I+24
:sub(DN,{13sub(K)},87,37,0
:End
:If {14sub(K)}
:Pt-On(4,42,Pic1I
:sub(TX,9,42,Str2E
:Pt-On(83,42,Pic1I+24
:sub(DN,{14sub(K)},87,42,0
:End
:If {15sub(K)}
:Pt-On(4,47,Pic1I
:sub(TX,9,47,Str3E
:Pt-On(83,47,Pic1I+24
:sub(DN,{15sub(K)},87,47,0
:End
:13→U
:19→S
:End
:If θ=5
:If {27sub(K)}
:Pt-On(4,37,Pic1I+8
:sub(TX,9,37,Str1A
:Pt-On(83,37,Pic1I+24
:sub(DN,{27sub(K)},87,37,0
:End
:If {28sub(K)}
:Pt-On(4,42,Pic1I+8
:sub(TX,9,42,Str2A
:Pt-On(83,42,Pic1I+24
:sub(DN,{28sub(K)},87,42,0
:End
:If {29sub(K)}
:Pt-On(4,47,Pic1I+8
:sub(TX,9,47,Str3A
:Pt-On(83,47,Pic1I+24
:sub(DN,{29sub(K)},87,47,0
:End
:27→U
:20→S
:End
:If θ=10
:If {32sub(K)}
:Pt-On(4,37,Pic1I+16
:sub(TX,9,37,Str1S
:Pt-On(83,37,Pic1I+24
:sub(DN,{32sub(K)},87,37,0
:End
:If {33sub(K)}
:Pt-On(4,42,Pic1I+16
:sub(TX,9,42,Str2S
:Pt-On(83,42,Pic1I+24
:sub(DN,{33sub(K)},87,42,0
:End
:If {34sub(K)}
:Pt-On(4,47,Pic1I+16
:sub(TX,9,47,Str3S
:Pt-On(83,47,Pic1I+24
:sub(DN,{34sub(K)},87,47,0
:End
:32→U
:21→S
:End
:Pause 200
:Repeat ‾1sub(R1)
:0→r1
:sub(BM,36,79,5,3,6,0)
:If ‾1sub(R1)
:Goto EQ
:End
:If pxl-Test(4,r1+38) or (pxl-Test(4,r1+40
:{{sub(KV)+S}sub(K)}+1→{{sub(KV)+S}sub(K)}
:r1/5+U→{sub(KV)+S}
:{r1/5+U+K}-1→{r1/5+U+K}
:‾1→r1
:End
:End
:Goto EQ
:Return
:Lbl BM
:r6→F
:r5→θ
:r4→r5
:r3-1*(θ-1)+r1→r3
:r1→r4
:Repeat getKey(54) or (getKey(48)) or (‾3sub(R1)) or (‾2sub(R1)
:rref(r5,r1,r2,θ
:DispGraph
:rref(r5,r1,r2,θ
:Repeat getKey
:End
:If getKey(3) and (F≠0
:‾3→r1
:End
:If getKey(2) and (F=2
:‾2→r1
:End
:If getKey(4) and (r1≠r4
:For(r6,1,θ-1
:rref(r5,r1,r2,θ
:DispGraph
:Pause 20
:rref(r5,r1,r2,θ
:r1-1→r1
:End
:End
:If getKey(1) and (r1≠r3
:For(r6,1,θ-1
:rref(r5,r1,r2,θ
:DispGraph
:Pause 20
:rref(r5,r1,r2,θ
:r1+1→r1
:End
:End
:End
:If r1<<0
:Return
:End
:r1-r4→r1
:If getKey(48)
:‾1→r1
:End
:While getKey(0)
:End
:Return
:
:.Menu - Grey
:Lbl BMG
:r5→θ
:r4→r5
:r3-1*(θ-1)+r1→r3
:r1→r4
:Repeat getKey(54) or (getKey(48)
:rref(r5,r1,r2,θ
:Normal
:Repeat getKey
:DispGraphr
:End
:Full
:rref(r5,r1,r2,θ
:If getKey(4) and (r1≠r4
:For(r6,1,θ-1
:rref(r5,r1,r2,θ
:Normal
:For(Z,0,2
:DispGraphr
:End
:Full
:rref(r5,r1,r2,θ
:r1-1→r1
:End
:End
:If getKey(1) and (r1≠r3
:For(r6,1,θ-1
:rref(r5,r1,r2,θ
:Normal
:For(Z,0,2
:DispGraphr
:End
:Full
:rref(r5,r1,r2,θ
:r1+1→r1
:End
:End
:End
:r1-r4→r1
:If getKey(48)
:‾1→r1
:End
:Normal
:While getKey(0)
:DispGraphr
:End
:Return
:
:.Text
:Lbl TX
:[6050709000000000E0605070000000006080906000000000E05050B0000000006080C0E000000000F0406040000000007080B07000000000C878484800000000E04040F000000000F028A06000000000D060505800000000C040507000000000D0A8A8A8000000008060909000000000609090E000000000E0507040000000006090B06800000000E05060D000000000E0C060E00000000070A02020000000009890906000000000989050200000000088A8A85800000000502050D0000000009070202000000000F01060F00000000040C040E000000000709060F000000000609030F00000000020A0F02000000000E08060E0000000006080E0E000000000F09020200000000070F090F000000000E0E020C000000000E09090700000000000000080000000000000C04000000000604000800000000060A0004000000000C040000000000000A0A00000000000000000F8000000000020404080000000000000000000000000→Str1
:r1→X→F
:r2→Y→G
:0→C
:r3→S
:Repeat getKey(15) or ({S+C}=42
:If {S+C}=41
:Y+5→Y
:F→X
:C+1→C
:End
:If {S+C}=43
:Repeat getKey(54)
:End
:conj(L3,L6,756
:F→X:G→Y
:C+1→C
:End
:While {S+C}=32
:X+2→X
:C+1→C
:End
:If {S+C}=42
:Goto RT
:End
:If {S+C}=41
:Y+5→Y
:F→X
:C+1→C
:End
:{S+C}→D
:D-65→B
:If D<65
:(D-48)+25→B
:If D=48
:35→B
:End
:If D=46
:36→B
:End
:If D=44
:37→B
:End
:End
:5→A
:.If (D=72) or (D=74) or (D=75) or (D=77) or (D=81) or (D=85) or (D=86) or (D=87
:If inString(D,DeltaList(72,74,75,77,81,85,86,87,0))
:6→A
:End
:.If (D=69) or (D=83) or (D=49) or (D=53) or (D=54) or (D=57) or (D=33
:If inString(D,DeltaList(69,83,49,53,54,57,33,0))
:4→A
:End
:If D=33
:38→B
:End
:If D=39
:40→B
:3→A
:End
:Pt-On(X,Y,8*B+Str1
:X+A→X
:C+1→C
:End
:Lbl RT
:Return
:
:.Draw Numbers
:Lbl DN
:[E09090700000000040C040E000000000709060F000000000609030F00000000020A0F02000000000E08060E0000000006080E0E000000000F09020200000000070F090F000000000E0E020C000000000→Str1N
:DeltaList(5,4,5,5,5,4,4,5,5,4)→GDB3
:For(X,0,2
:0→{L1+X}
:5→{L5+X}
:End
:r1→Z
:r4→X
:While Z
:sub(CN,Z^10)
:Z/10→Z
:End
:sub(DRN)
:Return
:
:.Calculate Numbers
:Lbl CN
:{GDB3+r1}→{L5+X}
:r1→{L1+X}
:X-1→X
:Return
:
:.Draw Numbers
:Lbl DRN
:r2→Y
:For(X,0,r4)
:Pt-On(Y,r3,8*{L1+X}+Str1N
:Y+{L5+X}→Y
:End
:Return
:
:.Length of Numbers
:Lbl LN
:0+(r1≥10)+(r1≥100)+(r1≥1000)+(r1≥10000)→Y
:Return
:
:.Item Usage
:Lbl ITM
:If 0sub(R1) and ({sub(KV)}r≠0) and ({sub(KV)}r≠{sub(KV)+3}r) and ({58sub(K)}≠0
:{sub(KV)}r+100→{sub(KV)}r
:If {sub(KV)}r≥{sub(KV)+3}r
:{sub(KV)+3}r→{sub(KV)}r
:End
:{58sub(K)}-1→{58sub(K)}
:End
:If 3sub(R1) and ({sub(KV)+2}≠0) and ({sub(KV)+2}≠{sub(KV)+5}) and ({61sub(K)}≠0
:{sub(KV)+2}+10→{sub(KV)+2}
:If {sub(KV)+2}≥{sub(KV)+5}
:{sub(KV)+5}→{sub(KV)+2}
:End
:{61sub(K)}-1→{61sub(K)}
:End
:If 6sub(R1) and ({sub(KV)}r=0) and ({61sub(K)}≠0
:1→{sub(KV)}r
:{sub(KV)+5}→{sub(KV)+2}
:{61sub(K)}-1→{61sub(K)}
:End
:Return
:
:Lbl R1
:(=r1)Return
:
:Lbl KV
:ReturnK+V
:
:Lbl K
:(+K)Return

Attached is the .8xp source and the appvars you need to run the program. If you want to test, appvNosMenus needs to be archived, and appvNosPorts and appvNosStats need to be in the RAM.

Edit: Oops, I forgot to disable smileys, which messed up the posted source.
Edit 2: Sorry. The quote was really tall, so I switched to code tags.
« Last Edit: October 27, 2010, 11:46:57 am by FinaleTI »


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline Runer112

  • Moderator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #292 on: October 27, 2010, 12:23:07 pm »
Well I'd love to help optimize it, but I'm having some problems with it. If I open the source in SourceCoder and then export it without making any changes (program marked as locked, destination in RAM), and send that file to the calculator, it doesn't show up in Axe's list of valid source files to compile. If I change the program to unlocked and export that, that will show up in Axe's menu and compile, but the screen just shows garbage when I run it. Sending the original file in your zip file to the calculator works perfectly, but somewhere along the way, between my computer to cemetech and back to my computer, something is going wrong. And without using an off-calc editor like SourceCoder, there's no way I'm ever going to wade through and make optimizations to a 7KB source file.

EDIT: Perhaps I should ask you... With what do you edit this source file?
« Last Edit: October 27, 2010, 12:52:49 pm by Runer112 »

Offline FinaleTI

  • Believe in the pony that believes in you!
  • Project Author
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #293 on: October 27, 2010, 12:56:05 pm »
That's pretty odd. I just tried and had the same problem....

I tried to save it using the TI Program Editor, but it doesn't want to save it because it supposedly has an incorrect syntax.

In response to your edit, I end up using the on-calc editor because it's always accessible to me.

Edit: Just tried it with Merthsoft's Tokens program and I changed the name in the Axe header, sent it to Wabbit, compiled and it worked perfectly.
« Last Edit: October 27, 2010, 01:18:56 pm by FinaleTI »


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline Runer112

  • Moderator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #294 on: October 27, 2010, 01:27:47 pm »
You edit this behemoth on-calc?!? :o Thanks for reminding me of Merthsoft's Tokens program, that appears to work correctly. I'll try optimizing it from there now.

Offline FinaleTI

  • Believe in the pony that believes in you!
  • Project Author
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1830
  • Rating: +121/-2
  • Believe in the pony that believes in you!
    • View Profile
    • dmuckerman.tumblr.com
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #295 on: October 27, 2010, 01:30:06 pm »
Yeah. I'm just so used to the on-calc editor, that it doesn't phase me all to much. Plus, since I wrote the thing on-calc, I'm pretty comfortable with editing on-calc.


Spoiler For Projects:

My projects haven't been worked on in a while, so they're all on hiatus for the time being. I do hope to eventually return to them in some form or another...

Spoiler For Pokemon TI:
Axe port of Pokemon Red/Blue to the 83+/84+ family. On hold.

Spoiler For Nostalgia:
My big personal project, an original RPG about dimensional travel and a few heroes tasked with saving the world.
Coding-wise, on hold, but I am re-working the story.

Spoiler For Finale's Super Insane Tunnel Pack of Doom:
I will be combining Blur and Collision Course into a single gamepack. On hold.

Spoiler For Nostalgia Origins: Sky's Story:
Prequel to Nostalgia. On hold, especially while the story is re-worked.

Offline Magic Banana

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 371
  • Rating: +77/-1
  • It's not an apple, it's a ... magic banana.
    • View Profile
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #296 on: October 27, 2010, 01:45:13 pm »
Yeah. I'm just so used to the on-calc editor, that it doesn't phase me all to much. Plus, since I wrote the thing on-calc, I'm pretty comfortable with editing on-calc.
*Magic Banana gives FinaleTI a high five.

Good to see this project moving again. I should probably catch up with all the new features of Axe so that I can get back into actual coding. (The last time I used it was at 0.3.something)

Smiley for you.  ;D
I do sprites and stuff, so yeah.

Quote from: yunhua98
i'M NOT SURE WHAT A SWORD SKILL IS BUT HERE'S THE SWORD ANIMATION FROM THE TWO SPRITES ON PG 13

Offline Runer112

  • Moderator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2289
  • Rating: +639/-31
    • View Profile
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #297 on: October 27, 2010, 02:18:55 pm »
Well so much for optimizing it by adding subroutines... I just got ERR: MAX SYMBOLS. Which, according to the documentation, means the program has too many static pointers and labels.

EDIT: Although Merthsoft's Tokens program looked so promising, I just realized that even it fails to correctly handle the source file. Without any changes to the source file, compiling it with Axe yields a 9,878-byte application, which is 5 bytes smaller than it should be. I first noticed that something was wrong because no items showed up in the equip items menu, resulting in my becoming stuck and having to reset the RAM. Unfortunately it looks like I'm not going to be able to help optimize this for you unless I can find SOME program editor that will correctly handle the source file. I can tell you one fairly large optimization that I noticed right at the beginning, though:
Code: [Select]
ClrDrawr
DrawInv r
Full
For(θ,0,767
{Y1+1536+θ} and {L3+θ}→{L3+θ}
End
Is the same as:
Code: [Select]
Full
conj(Y1+1536,L3,768)
« Last Edit: October 27, 2010, 03:42:35 pm by Runer112 »

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55942
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #298 on: October 27, 2010, 04:00:56 pm »
You edit this behemoth on-calc?!? :o Thanks for reminding me of Merthsoft's Tokens program, that appears to work correctly. I'll try optimizing it from there now.
I don't want to discourage you, but the 29 (if I didn't forget any) calculator RPG projects I worked on, some of which were in the 75-120 KB code size, were all created on-calc. Same for Metroid II: Evolution and its expansion. :P The thing is that when you do a lot of TI-BASIC you end up being used so much to the on-calc editor that you are more comfortable coding on-calc than on a computer, even more when you owned no computer when starting TI-BASIC (like me)

Also sorry to hear about the max symbol errors. X.x
« Last Edit: October 27, 2010, 04:02:11 pm by DJ Omnimaga »
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

ASHBAD_ALVIN

  • Guest
Re: Nostalgia - My Axe Parser Contest Entry
« Reply #299 on: October 27, 2010, 04:03:04 pm »
yeah, my current project will probably surpass 100K of memory, and it's goign to be all on-calc.  As long as you don't make a file too big to navigate, and split source files up to avoid large files, on-calc is fine.

FinaleTI: still though, that's a lot of code for one source file...
« Last Edit: October 27, 2010, 04:03:13 pm by ASHBAD_ALVIN »