Homebrew Who wants Duke Nukem 3D (JFDuke?) on the DSi?

Would you like to play Duke Nukem 3D on DSi, in a version with good quality graphics and sound?

  • Yes, certainly, I have always dreamed of it and I can't wait!

    Votes: 34 89.5%
  • No. I don't care. Duke is too vulgar and violent. And it's too difficult for me. I'm not up to it.

    Votes: 4 10.5%

  • Total voters
    38

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,032
Country
United States
Yes, It handles the whole initialization, and no, you must not initialize each B[ I]. Matrixes are allocated in a contiguous line of memory. That is different from an array of pointers, that is

int *B[N] // array of N pointers to int
int (*B)[N] // pointer to a matrix of int of N colunms.

You can see this question in stackoverflow for more information, although I consider the third answer the correct answer for the problem, not the one selected by the user: https://stackoverflow.com/questions/14450123/c-pointer-to-a-matrix




I can't see why would It break DS. It shouldnt matter for any of the defines as long as they all evaluate to a constant (which they do since the memory is allocated in compile time) The pitch (N) will still be the same so the macros will all expand to the correct positions.[/I][/I]
The ds only has 4mb of memory. The size of all the static data is well over 4 mb. I think it is more like 6 to 8 mb.
For compiling the issue is the default ds link script only allows 3.5 mb for everything - code and static variables. If this is exceeded than the link fails. I am not quite certain if this is a limitation of the nds format or it is just to allow ds/dsi compatible hybrid nds files.
Thanks for pointing out how it could be managed. I had only ever seen the array of pointers method for C before with dynamic allocation of multidimensional arrays.
 

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
The ds only has 4mb of memory. The size of all the static data is well over 4 mb. I think it is more like 6 to 8 mb.
For compiling the issue is the default ds link script only allows 3.5 mb for everything - code and static variables. If this is exceeded than the link fails.
Sorry to intervene. Obviously I don't know anything about this at all. To overcome this problem, I simply ask: Why not develop two versions, one for DS Phat/Lite (flashcart) and one for DSi (SD slot), the latter of which would also allow larger maps and thus more complex addons to be loaded?

Side note: Could you also enlarge the font of the user maps, as you did for the command setting? Thanks.
 
Last edited by Nikokaro,

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
If this was ported it should be possible to port the other one made by the same creator, which is JFShadowWarrior
What a rush, kid! He has not even perfected and completed this port yet and you're already thinking about the next one. About this we say "chi troppo vuole, nulla stringe" (grasp all, lose all).😉
 

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,032
Country
United States
I was going to look at switching some of the static variables to dynamic allocation and I noticed that I had set the everything to version 5 as the max - 5 - 8 being the options. I knew that 8 would exceed the static limits for the nds - so tried setting it to 7 instead and it was fine. anyway ... some of the addons seem to be loading now. I only tried a couple, but they were definitely failing previously, I am not sure if they all work though.
 

CrashMidnick

Well-Known Member
Member
Joined
Jul 22, 2015
Messages
725
Trophies
0
Age
41
XP
2,833
Country
France
I was going to look at switching some of the static variables to dynamic allocation and I noticed that I had set the everything to version 5 as the max - 5 - 8 being the options. I knew that 8 would exceed the static limits for the nds - so tried setting it to 7 instead and it was fine. anyway ... some of the addons seem to be loading now. I only tried a couple, but they were definitely failing previously, I am not sure if they all work though.

All official addons work now :) You rock. And it is very nice to have a virtual KB, we can run now ;) Thank you.
 

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
To my surprise, the latest version can load very large maps. I tried the famous 350 kb large 1_bitch (sic!) SP map which loads easily but ................. turns out to be completely unplayable: very slow and jerky, not responding to commands, can't even exit to the main menu. In contrast, maps under 300kb work fine, which is great. 😉
 
  • Like
Reactions: KirgoPlayer007

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
@elhobbs is this port already compatible with .mid files, or at the time of compiling it do changes have to be made for it to be compatible? Because the midis are already present within the GRP file but are not working. Maybe they need to be extracted from the GRP and inserted loose into the jfduke3d folder?

If midi music is still to be activated, would it have a major negative impact on the game fluidity and speed, or would it be negligible?
 

mrparrot2

Well-Known Member
Member
Joined
Nov 29, 2021
Messages
106
Trophies
0
Age
29
Location
SP, Brazil
XP
561
Country
Brazil
@elhobbs is this port already compatible with .mid files, or at the time of compiling it do changes have to be made for it to be compatible? Because the midis are already present within the GRP file but are not working. Maybe they need to be extracted from the GRP and inserted loose into the jfduke3d folder?

If midi music is still to be activated, would it have a major negative impact on the game fluidity and speed, or would it be negligible?
Someone has to implement a midi synthesizer in the game. DSDoom did implement a OPL2 emulator on ARM7 so perhaps its code could be used. Still it had bugs and its playlist stopped for no reason after while.
 

JhulkerCraft

Active Member
Newcomer
Joined
Jul 19, 2022
Messages
33
Trophies
0
Age
17
Location
Lara
XP
73
Country
Venezuela
@elhobbs is this port already compatible with .mid files, or at the time of compiling it do changes have to be made for it to be compatible? Because the midis are already present within the GRP file but are not working. Maybe they need to be extracted from the GRP and inserted loose into the jfduke3d folder?

If midi music is still to be activated, would it have a major negative impact on the game fluidity and speed, or would it be negligible?
The only ones that play are the one on the screen when you pass a level and the one at the beginning of the nuclear winter.
 

Indy13

Well-Known Member
Member
Joined
Jan 26, 2017
Messages
602
Trophies
0
Age
45
XP
1,278
Country
France
Hey friends, just a short quick passage to thank @elhobbs , usually I try to take the time to give my feedback and to participate especially on this kind of ports (i'm a FPS like my friend @Nikokaro ^^) but for a year I have been super busy in terms of work, so here it is, this is a simple little message to say that I read you all and I also test these new versions, but that I don't have time to post often on the forum. Anyway, to sum up, I support and salute all this work, once again, a thousand thanks to @elhobbs and to all the people who are making this project move forward, it's cool guys! :)
 

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
Sometimes it freezes when I'm changing settings and when I'm playing, even more so with mods
For my part, I am playing Duke Caribbean, which is notoriously one of the richest expansions in terms of graphic detail and numerous simultaneous vocal tracks.
As might be expected, it sometimes runs jerky and rarely freezes for a few seconds and then continues. Playability improves considerably if you turn down the graphic detail in the options menu.
The only permanent freezes occur, often, when reloading a saved game, and it is necessary to reset the console and then to continue.

Side note: for some reason the backspace key does not work in the keyboard, so you cannot delete the default text to replace it with the custom one.
 
Last edited by Nikokaro,

JhulkerCraft

Active Member
Newcomer
Joined
Jul 19, 2022
Messages
33
Trophies
0
Age
17
Location
Lara
XP
73
Country
Venezuela
For some reason the backspace key does not work in the keyboard, so you cannot delete the default text to replace it with the custom one.
Also another thing about the keyboard is that the numbers work as if they were other keys and the letters are not used to rename the saves or map them in the button configuration menu
 
  • Like
Reactions: Nikokaro

elhobbs

Well-Known Member
Member
Joined
Jul 28, 2008
Messages
1,044
Trophies
1
XP
3,032
Country
United States
Also another thing about the keyboard is that the numbers work as if they were other keys and the letters are not used to rename the saves or map them in the button configuration menu
I just pushed a new version that should fix the keyboard. I was sending ascii codes instead of the expected keyboard scan codes. cheat codes seem to be working now.
 

Nikokaro

Lost philosopher... searching for a way out...
OP
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,749
Country
Italy
I just finished Duke Caribbean. Very nice episode, I recommend it to everyone.
Nice settings and colorful scenery, various interesting puzzles (easy enough) and numerous babes here and there, which doesn't hurt. 😉
Despite being one of the most demanding add-ons, apart from the usual jerks when the screen is crowded with enemies, or during some explosions, I have not encountered any major problems. Nevertheless, I must admit that: .......................…...................... 😎 "this vacation sucks!" 😎
Sorry for the quote, but I had the urge to say it. 😣 😂 🤣

Getting serious again, It would be nice if the frames and game fluidity could be further improved by tweaking here and there, but I'm afraid we've reached the maximum possible, or am I wrong?
Anyway, with this other FPS port the DSi, despite its advanced age, rheumatism and all its hardware limitations, continues to prove to be truly a unique and inimitable portable console, humble and modest but eclectic, resourceful and never dull. 😘
 

mrparrot2

Well-Known Member
Member
Joined
Nov 29, 2021
Messages
106
Trophies
0
Age
29
Location
SP, Brazil
XP
561
Country
Brazil
Getting serious again, It would be nice if the frames and game fluidity could be further improved by tweaking here and there, but I'm afraid we've reached the maximum possible, or am I wrong?
Hard to say. You said that the first boss made the game struggle with it. That probably means the software sprite upscaler is having some trouble when the destination image is really huge. John Carmack did say in some of his interviews that he had to code multiple upscalers optimized for very large upscaling outputs for performance in Wolfeinstein 3D, and I don't remember seeing any of those in JFDuke3D sourcecode.

Anyway, with this other FPS port the DSi, despite its advanced age, rheumatism and all its hardware limitations, continues to prove to be truly a unique and inimitable portable console, humble and modest but eclectic, resourceful and never dull. 😘
Its CPU has a Pentium class performance when it is not handling floating point code. Most games we are working here did run fine on a Pentium machine.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Maximumbeans @ Maximumbeans: butte