Homebrew [RELEASE] ctrQuake - Quake 1 port

  • Thread starter Thread starter MasterFeizz
  • Start date Start date
  • Views Views 191,147
  • Replies Replies 727
  • Likes Likes 46
Has anyone tested this on a O3DS yet? I want to know how it goes.

Not exactly an O3DS, but I'm about to run it on N3DS locked to O3DS specs (268mhz/64mb RAM) to see how it runs. So, in a couple minutes I can give an idea of how it works.
 
God yes.

Can I make a suggestion for keyboard inputs?

In order to use the console we'd need access to a full keyboard. Can you set it so that tapping a portion of the touchscreen enables either a touchscreen or a daisy-wheel input system? You could also use select to switch modes, and have return/escape buttons on the touchscreen keyboard/daisy wheel to free up space.


I'm partial to wheel interfaces myself, and I can make a configuration that should be able to easily implement extra binds like weapon switching.
 
When locked to O3DS speeds it's a bit sluggish, about 30 FPS from just eyeballing it, and the audio gets a little choppy. Looks playable, but I didn't try it for real long. I imagine HW rendering would give it a massive boost. That being said, it's pretty impressive that it runs that smooth at 268MHz.
 
Last edited by daxtsu,
God yes.

Can I make a suggestion for keyboard inputs?

In order to use the console we'd need access to a full keyboard. Can you set it so that tapping a portion of the touchscreen enables either a touchscreen or a daisy-wheel input system? You could also use select to switch modes, and have return/escape buttons on the touchscreen keyboard/daisy wheel to free up space.


I'm partial to wheel interfaces myself, and I can make a configuration that should be able to easily implement extra binds like weapon switching.

I have started to implement better touch screen controls, with buttons to bring up the console or the keyboard, and will also have slots for binding keypresses

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

When locked to O3DS speeds it's a bit sluggish, about 30 FPS from just eyeballing it, and the audio gets a little choppy. Looks playable, but I didn't try it for real long. I imagine HW rendering would give it a massive boost. That being said, it's pretty impressive that it runs that smooth at 268MHz.

Thanks for testing. The timer functions are not well implemented, so they might be affecting performance also, but hardware rendering should make it full speed.
 
Thanks for testing. The timer functions are not well implemented, so they might be affecting performance also, but hardware rendering should make it full speed.

I'll probably get smitten by the FPS lovers for writing this, but even if it had to be locked to 30 FPS with smooth audio, it'd still be just fine. Anyway, would you be open to a pull request for generating a CIA version of this, perhaps once it's a little further along? It pretty much amounts to having an RSF file and a makefile edit.

Also, I just noticed it crashed my N3DS after running the demo for about 10 minutes in a row. I'm not sure if that's related to 268mhz/64mb or not though (or maybe it simply being a CIA).
 
I'll probably get smitten by the FPS lovers for writing this, but even if it had to be locked to 30 FPS with smooth audio, it'd still be just fine. Anyway, would you be open to a pull request for generating a CIA version of this, perhaps once it's a little further along? It pretty much amounts to having an RSF file and a makefile edit.

Also, I just noticed it crashed my N3DS after running the demo for about 10 minutes in a row. I'm not sure if that's related to 268mhz/64mb or not though (or maybe it simply being a CIA).

It may have memory leaks, as i have to malloc large arrays to avoid crashing. Might have forgotten to free one of those.
 
I have started to implement better touch screen controls, with buttons to bring up the console or the keyboard, and will also have slots for binding keypresses
Awesome, sounds like you know what you want. I look forward to it!
I might look into adjusting the controls to use a daisy wheel interface anyways to test my library, but I'll willing to bet whatever you do will be better.
 
  • Like
Reactions: MasterFeizz
Awesome, sounds like you know what you want. I look forward to it!
I might look into adjusting the controls to use a daisy wheel interface anyways to test my library, but I'll willing to bet whatever you do will be better.

The code right now is pretty simple to use, files ending with ctr are specific to the 3ds and input functions are on in_ctr.c and sys_ctr.c
 
  • Like
Reactions: Arseface_TM
Awesome, gonna try this asap.

But just commenting, there's already a Quake 1 port for 3DS, isn't there? It's the engine port, to be honest, similar to the Doom one. I found it hard to use, so I guess this one will end up a lot better.

Thanks for the work!
 
It may have memory leaks, as i have to malloc large arrays to avoid crashing. Might have forgotten to free one of those.

It crashes (the system locks up and continues playing whatever sound was just playing, kind of like on old Windows computers) after about 10 minutes of demo playback in "N3DS mode" too (I just used the official release 3dsx), so I think there's a memory leak or something like you said.
 
But just commenting, there's already a Quake 1 port for 3DS, isn't there? It's the engine port, to be honest, similar to the Doom one. I found it hard to use, so I guess this one will end up a lot better.
Spectre3DS runs pretty well on my o3DS, it just wasn't well implimented. I had to mess with the controls for a while, and I gave up after not being able to figure out how to change the sensitivity of the look controls.

Just tested this on my o3DS running *hax 2.1, and it runs excellently! Not quite as excellently as Spectre3DS when it comes to performance; I'm getting around 30-35FPS rather than Spectre's 59 or so, but it's still very playable especially with the functional GUI.
 
I get an error when I try to compile.

Code:
c:/Users/Arseface/Desktop/poop/ctrQuake-master/source/sys_ctr.c:302:2: error: too few arguments to function 'hidInit'
  hidInit();
  ^
In file included from c:/devkitPro/libctru/include/3ds.h:26:0,
  from c:/Users/Arseface/Desktop/poop/ctrQuake-master/source/sys_ctr.c:25:
c:/devkitPro/libctru/include/3ds/services/hid.h:78:8: note: declared here
 Result hidInit(u32* sharedMem);
  ^
 
I get an error when I try to compile.

Code:
c:/Users/Arseface/Desktop/poop/ctrQuake-master/source/sys_ctr.c:302:2: error: too few arguments to function 'hidInit'
  hidInit();
  ^
In file included from c:/devkitPro/libctru/include/3ds.h:26:0,
  from c:/Users/Arseface/Desktop/poop/ctrQuake-master/source/sys_ctr.c:25:
c:/devkitPro/libctru/include/3ds/services/hid.h:78:8: note: declared here
Result hidInit(u32* sharedMem);
  ^

Your ctrulib is probably out of date. Are you using the one that came with devkitPro? If so, you'll need to build a newer one from https://github.com/smealum/ctrulib.
 
  • Like
Reactions: Arseface_TM
It crashes (the system locks up and continues playing whatever sound was just playing, kind of like on old Windows computers) after about 10 minutes of demo playback in "N3DS mode" too (I just used the official release 3dsx), so I think there's a memory leak or something like you said.
I just commited some changes and released a new version that should fix the memory leak
 
  • Like
Reactions: daxtsu

Site & Scene News

Popular threads in this forum