You are not logged in.

Read the FAQ and Knowledge Base before posting.
We won't make a 3DS/2DS emulator.

#2 Re: General » Metroid Prime Hunters LUA script » 2021-04-06 02:26:32

Also, it looks like input in Lua was broken for the last month in DeSmuME builds, but is now fixed. If you get an error when trying to run one of the scripts then make sure you have an up-to-date build of the emulator.

#3 Re: General » Metroid Prime Hunters LUA script » 2021-04-05 19:49:14

Legacy wrote:

I'm actually new to adjusting scripts in DesMume and I'm a visual learner, so I was wondering if you could post of video of how to do this? (I'm sure you would get a lot of views on youtube as well considering no one has done this.)
I always wanted to play Metroid prime hunters but trying to use my right hand for my laptop's mouse and my left hand for the controller is a horrible gaming experience.

Thank you in advance for your time!

What are you having trouble with?

To run Lua scripts you will need the correct dlls in the folder with your DeSmuME exe. A Lua setup guide copied from here:

Download the Lua DLL that matches your Desmume: - https://sourceforge.net/projects/luabin … s/Dynamic/

lua-5.1.5_Win32_dll14_lib.zip for x86 Desmume
lua-5.1.5_Win64_dll14_lib.zip for x86-64 Desmume

Extract lua5.1.dll from the .zip file to the same folder where your DeSmuME_0.9.11_x86.exe or DeSmuME_0.9.11_x64.exe is

Rename lua5.1.dll to lua51.dll

Copy the script from my post into a text file and rename the extension to ".lua". In DeSmuME once the game is running go to "Tools -> Lua Scripting -> New Lua Script Window...". In the new window that pops up hit browse and select the script you saved and it will start running.


If you want to adjust the controls then use this lua script to identify your controller and its buttons

dpad = {"up", "down", "left", "right"}
sticks = {"x", "y", "z", "r", "u", "v"}

function showControllers()
    gui.box(0, 0, 256, 192, "#808080")
    gui.box(0, -192, 256, 0, "#808080")
    for i=0,15 do
        cont = controller.get(i)
        if type(next(cont)) ~= "nil" then
            gui.text(0, (18*i)-143, i)
            xoffs = 14
            for ii=0,32 do
                col = "#606060"
                tmp = tostring(ii)
                if cont[tmp] ~= nil then
                    if cont[tmp] == true then col = "#FF0000" end
                    gui.text(xoffs, (18*i)-143, tmp, col) --goes off screen if controller has more than ~20 buttons.
                    xoffs = xoffs + string.len(tmp)*6 + 2
                end
            end
            xoffs = 14
            for idx, name in ipairs(dpad) do
                col = "#606060"
                if cont[name] ~= nil then
                    if cont[name] == true then col = "#FF0000" end
                    gui.text(xoffs, (18*i)-143+9, name, col)
                    xoffs = xoffs + string.len(name)*6 + 4
                end
            end
            for idx, name in ipairs(sticks) do
                col = "#606060"
                if cont[name] ~= nil then
                    if math.abs(cont[name]) > 0.25 then col = "#FF0000" end
                    gui.text(xoffs, (18*i)-143+9, name, col)
                    xoffs = xoffs + string.len(name)*6 + 2
                end
            end
        end
    end
end
gui.register(showControllers)

CzzpAOV.png
You should see output similar to this, but different depending on your controller and how many of them you have hooked up.
The white number on the left is the controller id. When you press a button it will turn red to help you identify which button corresponds to which number.
In the main script you can then adjust joyid and the controls with the values you find here.

#4 Re: General » Metroid Prime Hunters LUA script » 2021-04-02 01:45:01

Updated the script to include a "virtual stylus" for navigating stuff like your ship and the main menu. When holding select(on an xbox style controller) a virtual stylus will be displayed. It can be moved with the right stick and touch the screen with the right bumper. You can still toggle manual touchscreen input if needed with select + left bumper.

#5 General » Metroid Prime Hunters LUA script » 2021-03-30 04:32:33

windwakr
Replies: 4

I've been sitting on this for a while(years) now and decided to clean it up a bit and post it. This script allows you to play Metroid Prime hunters with a controller with smooth camera movement.
Some small snippets(like subweapon switching) were borrowed from https://forums.desmume.org/viewtopic.php?id=10957 .
This may only work on the Windows version of DeSmuME, I'm not sure.

Clear any controller input you may have set up in DeSmuME before using.
By default it's set up for an Xbox style controller but the controls are easily customizable.

left stick - move
right stick - aim
left or right trigger - shoot/scan
bumpers - cycle subweapon forward/back
start - start
d-pad up(hold) - scan visor
d-pad down - morphball
d-pad left - presses back arrow on messages
d-pad right - presses forward arrow on messages
B - presses OK on messages
A - jump
X - morphball boost
Y - cycle weapon(beam/missile/subweapon)
select(hold) - virtual stylus

while virtual stylus is active
  right stick - move the virtual stylus
  right bumper - tap the screen
  left bumper - toggle manual touchscreen input

The way aiming works is the center of the screen is continually pressed and the script injects stylus movement into the game's memory. If you need to manually use the touchscreen then use select+left bumper to toggle aiming on or off. That shouldn't be necessary with the existence of the virtual stylus, though.

Use with the U.S. version of the game.

joyid = 0 --change this if your preferred controller isn't being picked up
deadzone = 0.15 --Adjust analog stick deadzones

cooldown=0
weapon=0
subweapon=0
togglestylus=false
toggleaim=false
vcurx=128
vcury=96
key = {}
joy = {}

--Set the controls here
morphkey = "joy.down" --morph ball switch
visorkey = "joy.up" --scan visor switch(hold)
okkey = "joy.2" --ok button in messages
leftkey = "joy.left" --left arrow in messages
rightkey = "joy.right" --right arrow in messages
weaponkey = "joy.4" --weapon cycle
subweaponkey1 = "joy.5" --subweapon cycle back
subweaponkey2 = "joy.6" --subweapon cycle forward
leftstickx = "joy.x" --must be analog stick axis
leftsticky = "joy.y" --must be analog stick axis
rightstickx = "joy.u" --must be analog stick axis
rightsticky = "joy.r" --must be analog stick axis
shootkey = "joy.z" --may be either analog axis or button
boostkey = "joy.3" --morph ball boost
vstyluskey = "joy.7" --virtual stylus(hold)
jumpkey = "joy.1" --jump
startkey = "joy.8" --start


--https://www.lua.org/pil/14.1.html
function getfield (f)
  local v = _G    -- start with the table of globals
  for w in string.gfind(f, "[%w_]+") do
    v = v[w]
  end
  return v
end

while true do
    joysend = {}
    key=input.get()
    joy = controller.get(joyid)
    
    if getfield(vstyluskey) then
        toggleaim = true --this exists to just delay the pressing of the screen when you release the virtual stylus key
        if vcury>0 then
            gui.drawbox(vcurx-1, vcury-1, vcurx+1, vcury+1, "#000000", "#FFFFFF")
        else
            gui.drawbox(vcurx-1, vcury, vcurx+1, vcury+1, "#FFFFFF") --workaround for vcury=0, as it would draw to the top screen
            gui.pixel(vcurx, vcury, "#000000")
        end
        
        if getfield(subweaponkey2) then
            stylus.set{x=vcurx, y=vcury, touch=true}
        end
        if getfield(subweaponkey1) and cooldown==0 then
            togglestylus = not togglestylus
            print('Touchscreen input allowed = ' .. tostring(togglestylus))
            cooldown = 20
        end
        tmp = getfield(rightstickx)
        if tmp and math.abs(tmp)>deadzone then
            vcurx = vcurx + (tmp * 5)
        end
        tmp = getfield(rightsticky)
        if tmp and math.abs(tmp)>deadzone then
            vcury = vcury + (tmp * 5)
        end
        
        if vcurx<0 then vcurx=0 end
        if vcurx>255 then vcurx=255 end
        if vcury<0 then vcury=0 end
        if vcury>191 then vcury=191 end
    else
        if getfield(morphkey) then --Morph
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=231, y=167, touch=true} emu.frameadvance() emu.frameadvance()
        end
        if getfield(visorkey) then --Visor
            if cooldown == 0 then
                stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            end
            cooldown = 10
            stylus.set{x=128, y=173, touch=true}
        end
        if getfield(okkey) then --OK (in scans and messages)
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=128, y=142, touch=true} emu.frameadvance() emu.frameadvance()
        end
        if getfield(leftkey) then --Left arrow (in scans and messages)
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=71, y=141, touch=true} emu.frameadvance() emu.frameadvance()
        end
        if getfield(rightkey) then --Right arrow (in scans and messages)
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=185, y=141, touch=true} emu.frameadvance() emu.frameadvance()
        end
        if getfield(weaponkey) and cooldown==0 then --Switch weapon (beam->missile->subweapon->beam)
            cooldown=20
            weapon=(weapon+1)%3
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=85+40*weapon, y=32, touch=true} emu.frameadvance()
            stylus.set{x=85+40*weapon, y=32, touch=true}
        end
        if (getfield(subweaponkey1) or getfield(subweaponkey2)) and cooldown==0 then --Switch subweapon (previous and next)
            cooldown=20
            weapon=2
            if getfield(subweaponkey1) then subweapon=(subweapon-1)%6 end --previous
            if getfield(subweaponkey2) then subweapon=(subweapon+1)%6 end --next
            subX=93+25*subweapon subY=48+25*subweapon
            stylus.set{touch=false} emu.frameadvance() emu.frameadvance()
            stylus.set{x=232, y=34, touch=true} emu.frameadvance()
            stylus.set{x=232, y=34, touch=true} emu.frameadvance()
            stylus.set{x=subX, y=subY, touch=true} emu.frameadvance()
            stylus.set{x=subX, y=subY, touch=true}
        end
        tmp = getfield(leftstickx)
        if tmp and tmp < -deadzone then
            joysend.left = true
        elseif tmp and tmp > deadzone then
            joysend.right = true
        end
        tmp = getfield(leftsticky)
        if tmp and tmp < -deadzone then
            joysend.up = true
        elseif tmp and tmp > deadzone then
            joysend.down = true
        end
        tmp = getfield(rightstickx)
        if tmp and math.abs(tmp)>deadzone and togglestylus==false then
            memory.writedword(0x020DE526, (tmp * 4))
            toggleaim=false
        end
        tmp = getfield(rightsticky)
        if tmp and math.abs(tmp)>deadzone and togglestylus==false then
            memory.writedword(0x020DE52E, (tmp * 6))
            toggleaim=false
        end
        if getfield(boostkey) then
            joysend.R = true
        end
        
        tmp = getfield(shootkey)
        if tmp then
            if type(tmp) == "number" then
                if math.abs(tmp) > deadzone then
                    joysend.L = true
                end
            elseif type(tmp) == "boolean" then
                joysend.L = true
            end
        end
        
        if getfield(jumpkey) then
            joysend.B = true
        end
        if getfield(startkey) then
            joysend.start = true
        end
    end
    
    if cooldown>0 then
        cooldown=cooldown-1
    else
        ball = memory.readbyte(0x020DA818) == 0x02 --Is this a good way of detecting morph ball status??
        if ball==false and togglestylus==false and toggleaim==false then
            stylus.set{x=128, y=96, touch=true} --Required for aiming
        end
    end
    
    joypad.set(1,joysend)
    emu.frameadvance()
end

video recorded while using this script: https://files.catbox.moe/o6r3r5.webm

#6 Re: General » freelook Lua script » 2019-04-21 18:30:43

Bnthomason wrote:

So, how would I reverse or change the controller assignments?

For example, in some games, when you push the L or R stick right, the camera pans in the opposite direction.

If both the up/down and left/right of the stick are inverted you can try using the dpad to set a negative scale. If you only need one axis inverted then you're on your own. The code's quite ugly but there are comments by the bits of code handling each button/stick. You should be able to slap(or remove) a '-' in there somewhere to invert the axis you need.


edit:
For example, to invert just the left/right of the left stick you'd change "MoveRight(-key.x * movscale);" to "MoveRight(key.x * movscale);". For up/down on the right stick you'd change "pitch = (pitch + (key.r * rotscale)) % 360;" to "pitch = (pitch + (-key.r * rotscale)) % 360;"

#7 Re: General » freelook Lua script » 2019-04-19 23:04:32

Flyhngon wrote:

Total coding noob here... I'm trying wrap my head around how to use lua code, and I can't wrap my head around how to get the freelook script to work. I get that I actually have to adjust some things in the code myself, but I'm unclear about what values need changing, and no matter what I do the code stops running because register3devent is a nil value..? Even when I think I'm defining it correctly?

Freecam is a feature I'd really like, but I'm too tech-illiterate to wrap my head around how the lua script works, even with the instructions given on the github and in the script itself.. help?

You need a recent-ish build of the emulator.

Bnthomason wrote:

Hey, what emulator build are you using, and how would I get this to work with a 9.12 emulator with decent speed and graphics?

https://desmume.org/download/
Scroll down to "Official Nightly Builds"

#8 Re: General » freelook Lua script » 2019-03-08 21:41:27

Got a new controller recently and was messing around with this a bit. Updated the first post but here's the changelog.
*Now attempts to scan for a suitable controller instead of just using the first one
*Only updates the matrix on 3D events(still don't think I'm doing it properly, but this fixes most of the issues I had)
*Left and right bumpers now act as multipliers for the dpad scale settings
*Y button resets movement and rotation scale to 1.0

#9 Re: General » freelook Lua script » 2018-11-01 01:38:47

zeromus wrote:

It looks like we need your fork. Which is now AWOL.

Even if it's sloppy, paste your code onto our master and send a PR and I'll make sure it's OK
also I too was missing math.abs.. I have no idea why (don't want to know; I hate lua) but anyway here is a math.abs:

math.abs = function(x)
  if x == nil then return 0 end
  if x<0 then return -x end
  return x;
end

My fork was just what the queefersutherland guy PR'd, I don't think he made any changes to it. I didn't want to make a PR myself. The script just assumes you have a controller plugged in that's joystick id 0 and has the 3 axes it checks for, and that causes an error when trying to use them if they don't exist. It really should check for the axes before trying to use them.

#10 General » freelook Lua script » 2018-10-12 17:32:49

windwakr
Replies: 18

Putting this here to get people to stop replying in the issue page on github.

DeSmuME now has the ability to implement freelook through Lua scripting. Read zeromus' explanation on that here.

I've created this crappy script to look around with a controller. Honestly have no clue what I'm doing, but it somehow works well enough with most games I've tried. It's not a universal solution, though. There's a bunch of games that it doesn't work that great or at all with.

Some webms showing it off:
https://files.catbox.moe/zfni2x.webm
https://files.catbox.moe/0fn3dt.webm
https://files.catbox.moe/s8hev7.webm

Use with something like an xbox 360 controller, or modify the controls to suit your needs.

Left stick moves left/right and forward/back
Right stick rotates
Triggers move up down(according to where you're looking)

A button resets position, rotation, and pitch offset
B button resets rotation and pitch offset
X sets pitch offset
Y resets the movement and rotation scale

Dpad Up/Down sets the movement scale
Dpad Left/Right sets the rotation scale
Hold the left or right bumper to make smaller or bigger changes to the scales

Setting the pitch offset is important. Without doing so, your view will roll around as you look left and right in most games.
Angle your pitch towards the "horizon" and press X. Then try and rotate the camera 90 degrees to the left or right and adjust up/down a little while pressing X until everything's level.

--Assumes you have an Xbox style controller

joyID = -1; --Joystick ID to use. The script will attempt to find a suitable joystick, but you can manually set this if you wish
yaw = 0.0;
pitch = 0.0;
pitchoffs = 0.0; --used to correct for the initial pitch of the camera
xpos = 0.0; --coordinates in a virtual 3D space
ypos = 0.0; --^^^
zpos = 0.0; --^^^
matAdjustment = {1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1};
movscale = 1.0;
rotscale = 1.0;
cooldown = 0;

function MatrixMult4x4(m1, m2) --sorta copied/inspired from some lua matrix library
    local mtx = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
    for i=1,4 do
        for j=1,4 do
            local num = 0
            for n=1,4 do
                num = num + m1[(i-1)*4+n] * m2[(n-1)*4+j]
            mtx[(i-1)*4+j] = num
            end
        end
    end
    return mtx;
end

function Rotate(angle,x,y,z)
    local s = math.sin(math.rad(angle));
    local c = math.cos(math.rad(angle));
    return {(1-c)*x*x+c, (1-c)*y*x-s*z, (1-c)*z*x+s*y, 0,
            (1-c)*x*y+s*z, (1-c)*y*y+c, (1-c)*z*y-s*x, 0,
            (1-c)*x*z-s*y, (1-c)*y*z+s*x, (1-c)*z*z+c, 0,
            0, 0, 0, 1};
end

function vecrotx(angle, vx, vy, vz) --used for pitch correction in the functions below
    return vx,
            vy * math.cos(math.rad(angle)) - vz * math.sin(math.rad(angle)),
            vy * math.sin(math.rad(angle)) + vz * math.cos(math.rad(angle));
end

function MoveForward(l) --sorta based off https://www.gamedev.net/forums/topic/415144-get-forward-right-up-vectors-from-pitch-yaw-roll/
    local fX = math.sin(math.rad(yaw)) * math.cos(math.rad(pitch+pitchoffs));
    local fY = -math.sin(math.rad(pitch+pitchoffs));
    local fZ = -math.cos(math.rad(yaw)) * math.cos(math.rad(pitch+pitchoffs));
    
    fX, fY, fZ = vecrotx(pitchoffs, fX, fY, fZ);
    
    local mag = math.sqrt(fX*fX + fY*fY + fZ*fZ);
    fX = fX / mag; fY = fY / mag; fZ = fZ / mag;
    fX = fX * l; fY = fY * l; fZ = fZ * l;
    xpos = xpos + fX; ypos = ypos + fY; zpos = zpos + fZ;
end

function MoveUp(l)
    local fX = math.sin(math.rad(yaw)) * math.cos(math.rad(pitch+pitchoffs+90));
    local fY = -math.sin(math.rad(pitch+pitchoffs+90));
    local fZ = -math.cos(math.rad(yaw)) * math.cos(math.rad(pitch+pitchoffs+90));
    
    fX, fY, fZ = vecrotx(pitchoffs, fX, fY, fZ);
    
    local mag = math.sqrt(fX*fX + fY*fY + fZ*fZ);
    fX = fX / mag; fY = fY / mag; fZ = fZ / mag;
    fX = fX * l; fY = fY * l; fZ = fZ * l;
    xpos = xpos + fX; ypos = ypos + fY; zpos = zpos + fZ;
end

function MoveRight(l)
    local fX = math.sin(math.rad(yaw+90));
    local fY = 0;
    local fZ = -math.cos(math.rad(yaw+90));
    
    fX, fY, fZ = vecrotx(pitchoffs, fX, fY, fZ);
    
    local mag = math.sqrt(fX*fX + fY*fY + fZ*fZ);
    fX = fX / mag; fY = fY / mag; fZ = fZ / mag;
    fX = fX * l; fY = fY * l; fZ = fZ * l;
    xpos = xpos + fX; ypos = ypos + fY; zpos = zpos + fZ;
end

function on3d()
    emu.set3dtransform(2,matAdjustment);
end
emu.register3devent(on3d);
emu.set3dtransform(1,nil);

if joyID == -1 then
    for i = 0, 15 do
        c = controller.get(i);
        if c.x and c.y and c.z and c.u and c.r then --simple check that only looks for all the needed axes
            joyID = i;
            print("Found suitable joystick, id " .. i);
            break;
        end
    end
else
    print("Using manually set joystick, id " .. joyID);
end
if joyID == -1 then
    print("No suitable joystick found!");
    while true do
        emu.frameadvance();
    end
end

while true do
    local key = controller.get(joyID)
    
    scalemult = 1;
    if key["5"] then --Left bumper
        scalemult = 0.1;
    elseif key["6"] then --Right bumper
        scalemult = 10;
    end
    if key.up and cooldown==0 then --Dpad
        cooldown = 10;
        movscale = movscale + (0.1 * scalemult);
        print("Movement scale: " .. movscale);
    end
    if key.down and cooldown==0 then --Dpad
        cooldown = 10;
        movscale = movscale - (0.1 * scalemult);
        print("Movement scale: " .. movscale);
    end
    if key.right and cooldown==0 then --Dpad
        cooldown = 10;
        rotscale = rotscale + (0.1 * scalemult);
        print("Rotation scale: " .. rotscale);
    end
    if key.left and cooldown==0 then --Dpad
        cooldown = 10;
        rotscale = rotscale - (0.1 * scalemult);
        print("Rotation scale: " .. rotscale);
    end
    
    if(math.abs(key.x)>0.25) then --Left Stick
        MoveRight(-key.x * movscale);
    end
    if(math.abs(key.y)>0.25) then --Left Stick
        MoveForward(key.y * movscale);
    end
    if(math.abs(key.z)>0.25) then --Triggers
        MoveUp(-key.z * movscale);
    end
    if(math.abs(key.u)>0.25) then --Right Stick
        yaw = (yaw + (key.u * rotscale)) % 360;
    end
    if(math.abs(key.r)>0.25) then --Right Stick
        pitch = (pitch + (key.r * rotscale)) % 360;
    end
    
    if key["1"] and cooldown==0 then --A button
        cooldown = 20;
        yaw = 0.0;
        pitch = 0.0;
        pitchoffs = 0.0;
        xpos = 0.0;
        ypos = 0.0;
        zpos = 0.0;
        movscale = 1.0;
        rotscale = 1.0;
        print("Reset everything");
    end
    if key["2"] and cooldown==0 then --B button
        cooldown = 20;
        yaw = 0.0;
        pitch = 0.0;
        pitchoffs = 0.0;
        print("Reset rotations");
    end
    if key["3"] then --X button
        pitchoffs = -pitch;
    end
    if key["4"] and cooldown==0 then --Y button
        cooldown = 20;
        movscale = 1.0;
        rotscale = 1.0;
        print("Movement/rotation scales reset");
    end
    
    local tmp = Rotate(-yaw, 0.0, math.cos(math.rad(pitchoffs)), math.sin(math.rad(pitchoffs)));
    tmp = MatrixMult4x4(tmp, Rotate(-pitch, 1.0, 0.0, 0.0));
    local translation = {1,0,0,0,0,1,0,0,0,0,1,0,xpos,ypos,zpos,1};
    matAdjustment = MatrixMult4x4(translation, tmp);
    
    if cooldown>0 then cooldown=cooldown-1 end
    emu.frameadvance();
end

#11 Re: Support » 3d Picross has jitter / shaky textures » 2017-03-02 02:43:35

I've come up with a simpler code. I hadn't actually looked into the game's disassembly when I made that code earlier. I found the values being set in no$gba's i/o map viewer and searched for them in memory, then made the code to zero them. Turns out the game has support to just set those values to zero if a certain read value is zero.

Picross 3D (USA):

0208B5B0 E3A00000

Picross 3D (Europe):

0208B4DC E3A00000

Rittai Picross (Japan):

020A3BBC E3A00000

#12 Re: Support » 3d Picross has jitter / shaky textures » 2017-03-01 22:42:51

The game alters part of the texture matrix on alternating frames. You can disable this with this AR code:

-- see below post --

#13 Re: Compatibility » Umihara Kawase Shun - slow emulation » 2016-06-30 04:43:52

rogerman wrote:

SoftRasterizer easily makes this game playable.

Not really(well, maybe if you have the latest Intel® processor). Like I've already mentioned, for me the software renderer gets the same speed as OpenGL without scaling(~30fps) once I move around the level a bit. The only place where it's running at a playable speed is the very start of the level.

Guess I'll just dig my physical copy and play on the real thing.

#14 Compatibility » Umihara Kawase Shun - slow emulation » 2016-06-29 23:13:29

windwakr
Replies: 4

This game seems to be doing something with its graphics to cause some severe slowdown. In either the software renderer or the OpenGL renderer, it runs at half speed for me when I start moving around. With the OpenGL renderer and texture scaling set to 2x, the FPS drops down to below 5(see https://i.imgur.com/01TeL0A.png). Seems odd for such a simple looking game. No other games drop to below 55FPS for me with the same settings.

#15 Re: Support II (decommissioned) » Homebrew using Cflash(Quake DS and cQuake). » 2010-06-14 00:18:20

After compiling the most recent SVN, I was still getting the errors, but I've figured it out!

Homebrew CANNOT access the lowest alphabetically named folder!

If just I just had a folder name "ID1" in my CF specified directory, Quake gives the "could not find ID1" error. If I then add a folder that would be placed lower alphabetically, for example "HD1", in the folder next to "ID1", Quake WORKS!


Hope this info helps.




Also, it looks like the CF settings ALWAYS get set to "use ROM path", no matter what else I set it to.

#16 Re: Support II (decommissioned) » Homebrew using Cflash(Quake DS and cQuake). » 2010-06-12 15:52:59

Oh, I see. It isn't properly supporting subdirectories. The homebrew can only access the folder you specify, and not any of it's subdirectories. Is it supposed to not support them, or is there something wrong here?

#17 Support II (decommissioned) » Homebrew using Cflash(Quake DS and cQuake). » 2010-06-11 23:53:25

windwakr
Replies: 19

Hello, I can't get either cQuake or Quake DS to work in DeSmuME.

I have the file directory like it says in the readmes for them. In DeSmuME, I select compact flash for the gba slot, along with the proper directory. Both files are properly patched with mpcf.dldi.

They both start up saying they could initialize the file system, but they both fail to find the ".pak" files. I have double checked everything, it should work. I have also tried different builds of DeSmuME.


Anyone have any ideas as to why it's not working?


EDIT: Also, Quake DS should work, because it has been confirmed as working here: http://forums.desmume.org/viewtopic.php?pid=2539




EDIT: The only DLDI enabled homebrew I've been able to get work right so far is Lameboy.

Board footer

Powered by FluxBB