Homebrew LPP Help

Megalegacy98

Well-Known Member
OP
Member
Joined
Aug 11, 2015
Messages
505
Trophies
0
Location
United States
XP
430
Country
United States
Code:
Sound.init()
topscreenimg = Screen.loadImage("/theme/top.png")
bottomscreenimg = Screen.loadImage("/theme/bottom.png")
bgmusic = Sound.openWav("/theme/bgmusic.wav",false)
sysdetailmenu = 0
homebrew = 0
gamecard = 0
themes = 0
maxy = 6
y = 1
selected = Color.new(255,255,0)
unselect = Color.new(0,255,255)
oldpad = Controls.read()

while true do
pad = Controls.read()

if (Controls.check(pad,KEY_DUP)) and not (Controls.check(oldpad,KEY_DUP)) then
   y = y - 1
end

if (Controls.check(pad,KEY_DDOWN)) and not (Controls.check(oldpad,KEY_DDOWN)) then
   y = y + 1
end

if maxy < y then
   y = 1
end

if y <= 0 then
   y = maxy
end

Screen.waitVblankStart()
Screen.refresh()
Screen.clear(TOP_SCREEN)
lol = {unselect,unselect,unselect,unselect,unselect,unselect}
lol[y] = selected
Screen.debugPrint(45,0, "Homebrew Menu v 0.1a",unselect,TOP_SCREEN)
Screen.debugPrint(45,30,"Load Game Cartridge",lol[1],TOP_SCREEN)
Screen.debugPrint(45,45,"Load Homebrew",lol[2],TOP_SCREEN)
Screen.debugPrint(45,60,"Reboot System",lol[3],TOP_SCREEN)
Screen.debugPrint(45,75,"See system details",lol[4],TOP_SCREEN)
Screen.debugPrint(45,90,"Toggle themes",lol[5],TOP_SCREEN)
Screen.debugPrint(45,105,"Exit",lol[6],TOP_SCREEN)
Screen.flip()


if homebrew == 1 then
   dofile(System.currentDirectory().."/homebrew.lua")
end

if sysdetailmenu == 1 then
   dofile(System.currentDirectory().."/sysdetails.lua")
end

if gamecard == 1 then
   dofile(System.currentDirectory().."/gamecard.lua")
end

if themes == 1 then
   if Sound.isPlaying(bgmusic) then
     Sound.close(bgmusic)
   end
   Screen.clear(TOP_SCREEN)
   Screen.clear(BOTTOM_SCREEN)
end

if themes == 2 then
   Screen.drawImage(0,0,topscreenimg,TOP_SCREEN)
   Screen.drawImage(0,0,bottomscreenimg,BOTTOM_SCREEN)
   Sound.play(bgmusic,LOOP,0x09)
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 1 then
   gamecard = 1
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 2 then
   homebrew = 1
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 3 then
   System.reboot()
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 4 then
   sysdetailmenu = 1
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 5 then
   themes = 2
   else
   themes = 1
end

if (Controls.check(pad,KEY_A)) and not (Controls.check(oldpad,KEY_A)) and y == 6 then
   Sound.term()
   System.exit()
end

Screen.refresh()
Screen.waitVblankStart()
oldpad = pad
end
 
Last edited by Megalegacy98,

730

Professional Shitposter
Member
Joined
Apr 2, 2015
Messages
485
Trophies
0
XP
628
Country
Argentina
Well to begin with, indent your code or else nobody will understand anything.
As for the code itself, you're doing some weird shit with the screen functions.
The order should be like this:
Code:
Screen.waitVblankStart()
Screen.refresh()
Screen.clear(TOP_SCREEN)
Screen.clear(BOTTOM_SCREEN)
--Print/draw stuff
Screen.flip()
 
Last edited by 730,

Megalegacy98

Well-Known Member
OP
Member
Joined
Aug 11, 2015
Messages
505
Trophies
0
Location
United States
XP
430
Country
United States
Well to begin with, indent your code or else nobody will understand anything.
As for the code itself, you're doing some weird shit with the screen functions.
The order should be like this:
Code:
Screen.waitVblankStart()
Screen.refresh()
Screen.clear(TOP_SCREEN)
Screen.clear(BOTTOM_SCREEN)
--Print/draw stuff
Screen.flip()
Haha, I guess I should have. Sorry about that.

I guess I'm blind because I don't see where I went wrong on the screen functions. That's what I did with my menu (the homebrew menu part). Are you talking about the y == * parts?
 

730

Professional Shitposter
Member
Joined
Apr 2, 2015
Messages
485
Trophies
0
XP
628
Country
Argentina
Haha, I guess I should have. Sorry about that.

I guess I'm blind because I don't see where I went wrong on the screen functions. That's what I did with my menu (the homebrew menu part). Are you talking about the y == * parts?
No, I mean there are lots of clean()s and whatnots. There should be just 2 at the beginning of the loop (one for top screen, the other for bottom screen) along with the waitforvblank and refresh or whatever, then just the flip() at the end of the loop.
Oh also, variable naming conventions 101: capitalize the first letter on words on variables, except for the first word, i.e. when you have "topscreenimg" make it "topScreenImg". It's another thing that helps readablity, just like indentation.
 
Last edited by 730,

Megalegacy98

Well-Known Member
OP
Member
Joined
Aug 11, 2015
Messages
505
Trophies
0
Location
United States
XP
430
Country
United States
No, I mean there are lots of clean()s and whatnots. There should be just 2 at the beginning of the loop (one for top screen, the other for bottom screen) along with the waitforvblank and refresh or whatever, then just the flip() at the end of the loop.
I see. I will fix my code up a bit and see if that works. Thanks!

--------------------- MERGED ---------------------------

Doesn't work. I got rid of the other stuff and put the Screen.flip() at the end of the loop and the other elements at the start.
 
  • Like
Reactions: 730

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
You didn't read the rest of the opening post.

Yeah you right, i was in a hurry cause i was cooking for the launch so i asnwered first question i seen without overchecking the entirety of the post, my bad :(

@Megalegacy98 can you ident your code? It's a bit hard to give support for hard-reading codes.
 
  • Like
Reactions: Jwiz33 and 730

Rinnegatamante

Well-Known Member
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
Country
Italy
Not at all but it's much more readable. What's the problem you encountered? (P.s., instead of 0-1 values like C, LUA accepts also boolean values but in reality they are equal. I prefer boolean ones to make my codes cleaner)
 

Megalegacy98

Well-Known Member
OP
Member
Joined
Aug 11, 2015
Messages
505
Trophies
0
Location
United States
XP
430
Country
United States
Not at all but it's much more readable. What's the problem you encountered? (P.s., instead of 0-1 values like C, LUA accepts also boolean values but in reality they are equal. I prefer boolean ones to make my codes cleaner)
I didn't say my problem was fixed lol. The problem is nothing shows up in the screen.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • SylverReZ @ SylverReZ:
    They probably said "Hey, why not we combine the two together and make a 'new' DS to sell".
  • Veho @ Veho:
    It's a DS Lite in a slightly bigger DS Lite shell.
    +1
  • Veho @ Veho:
    It's not a Nintendo / iQue official product, it's a 3rd party custom.
    +1
  • Veho @ Veho:
    Nothing special about it other than it's more comfortable than the Lite
    for people with beefy hands.
    +1
  • Jayro @ Jayro:
    I have yaoi anime hands, very lorge but slender.
  • Jayro @ Jayro:
    I'm Slenderman.
  • Veho @ Veho:
    I have hands.
  • BakerMan @ BakerMan:
    imagine not having hands, cringe
    +1
  • AncientBoi @ AncientBoi:
    ESPECIALLY for things I do to myself :sad:.. :tpi::rofl2: Or others :shy::blush::evil:
    +1
  • The Real Jdbye @ The Real Jdbye:
    @SylverReZ if you could find a v5 DS ML you would have the best of both worlds since the v5 units had the same backlight brightness levels as the DS Lite unlockable with flashme
  • The Real Jdbye @ The Real Jdbye:
    but that's a long shot
  • The Real Jdbye @ The Real Jdbye:
    i think only the red mario kart edition phat was v5
  • BigOnYa @ BigOnYa:
    A woman with no arms and no legs was sitting on a beach. A man comes along and the woman says, "I've never been hugged before." So the man feels bad and hugs her. She says "Well i've also never been kissed before." So he gives her a kiss on the cheek. She says "Well I've also never been fucked before." So the man picks her up, and throws her in the ocean and says "Now you're fucked."
    +2
  • BakerMan @ BakerMan:
    lmao
  • BakerMan @ BakerMan:
    anyways, we need to re-normalize physical media

    if i didn't want my games to be permanent, then i'd rent them
    +1
  • BigOnYa @ BigOnYa:
    Agreed, that why I try to buy all my games on disc, Xbox anyways. Switch games (which I pirate tbh) don't matter much, I stay offline 24/7 anyways.
  • AncientBoi @ AncientBoi:
    I don't pirate them, I Use Them :mellow:. Like I do @BigOnYa 's couch :tpi::evil::rofl2:
    +1
  • cearp @ cearp:
    @BakerMan - you can still "own" digital media, arguably easier and better than physical since you can make copies and backups, as much as you like.

    The issue is DRM
  • cearp @ cearp:
    You can buy drm free games / music / ebooks, and if you keep backups of your data (like documents and family photos etc), then you shouldn't lose the game. but with a disk, your toddler could put it in the toaster and there goes your $60

    :rofl2:
  • cearp @ cearp:
    still, I agree physical media is nice to have. just pointing out the issue is drm
  • rqkaiju2 @ rqkaiju2:
    i like physical media because it actually feels like you own it. thats why i plan on burning music to cds
  • cearp @ cearp:
    It's nice to not have to have a lot of physical things though, saves space
    +1
  • AncientBoi @ AncientBoi:
    Nor clothes 🤮 . Saves on time, soap, water and money having to wash them. :D
    AncientBoi @ AncientBoi: Nor clothes 🤮 . Saves on time, soap, water and money having to wash them. :D