NESICIDE on Linux

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

lidnariq wrote:When we finish getting multiarch deployed in Debian/Ubuntu, you should be able to continue to just release i386 builds and have it Just Work on x86-64 machines.

Releasing debs marked with the _any architecture with ELFs inside is kinda not cricket.

I have a laptop with a Core2Duo running amd64 debian sid, and could set it up to do builds if that's all that's needed.
Any help re 64 bit would be madly appreciated. I realize I'm not being kosher -- lintian even told me so. But that's even more so why I said "shot in the dark".

I hadn't tried to put together source packages...is that what I need to do? Or do you mean you could build from source on that machine and then put together proper x64 binary packages? PM me if you truly can help! [I mean, have the time and interest to, and all that.]
3gengames
Formerly 65024U
Posts: 2284
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames »

I'm on Ubuntu x64 right now, am at school, am all the time now basically, until I boot Win7 for a few weeks just to. If I can help tell me, but I'm not very good at putting linux stuff together honestly, although I know how to press CTRL+F9 in code::blocks, if that helps.

ETA: Tried the any.deb, it says Wrong architecture 'any'. But if you make any "amd64" it should work, or at least let me attempt to install it. Although, I still think it does need a special compile too, but eh, worth a shot too maybe? But shouldn't your compiler have a 64-bit option even if 32-bit? Hmm...
torrasque
Posts: 8
Joined: Sun May 06, 2012 11:15 am

Post by torrasque »

x64 Linux user here. I just checked out the sources but the build system looks broken. Example: after cloning nes-emulator-lib I ran configure and got this:

Code: Select all

configure: error: cannot find sources (emulator_core.cpp) in . or ..
Once the build system is okay (and files are in place), I'd be more than glad to help out with the Linux port.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

torrasque wrote:x64 Linux user here. I just checked out the sources but the build system looks broken. Example: after cloning nes-emulator-lib I ran configure and got this:

Code: Select all

configure: error: cannot find sources (emulator_core.cpp) in . or ..
Once the build system is okay (and files are in place), I'd be more than glad to help out with the Linux port.
The configure is not up to date. The project is buildable with qmake/make. I am not a configure expert. I'll look into it.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Post by lidnariq »

Really we should get rid of it and just use qmake so it's homogenous with the other three parts.
torrasque
Posts: 8
Joined: Sun May 06, 2012 11:15 am

Post by torrasque »

cpow wrote:
torrasque wrote:x64 Linux user here. I just checked out the sources but the build system looks broken. Example: after cloning nes-emulator-lib I ran configure and got this:

Code: Select all

configure: error: cannot find sources (emulator_core.cpp) in . or ..
Once the build system is okay (and files are in place), I'd be more than glad to help out with the Linux port.
The configure is not up to date. The project is buildable with qmake/make. I am not a configure expert. I'll look into it.
Oh, I didn't realize that we could use qmake. Now I get this

Code: Select all

nes/debuggers/cchrromitemtabledisplaymodel.cpp:26:41: error: call of overloaded ‘createIndex(int&, int&, NULL)’ is ambiguous
nes/debuggers/cchrromitemtabledisplaymodel.cpp:26:41: note: candidates are:
In file included from /usr/include/QtCore/QAbstractTableModel:1:0,
                 from nes/debuggers/cchrromitemtabledisplaymodel.h:4,
                 from nes/debuggers/cchrromitemtabledisplaymodel.cpp:1:
An explicit (void*) cast to NULL fixed it. It compiles OK now. I tried to compile the example project AlterEgo, but I got this:

Code: Select all

Project build started.
Building: obj/nes/alterego.prg
make all
cl65 --create-dep obj/nes/game.d -S -t nes -g --debug-info -Oi -o obj/nes/game.s game.c
cl65: Don't know what to do with `obj/nes/game.d'
make: *** [obj/nes/game.o] Error 1
Build failed while processing Source.
(using cc65 2.13.3)
I also tried russian_roulette and Tepples demos, but it looks like --create-deps is passed to ca65, which is an unknown option.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

torrasque wrote: cl65: Don't know what to do with `obj/nes/game.d'
...
it looks like --create-deps is passed to ca65, which is an unknown option.
The earliest version of the compiler that will work is 2.13.9 snapshot, available here.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

cpow wrote:
torrasque wrote: cl65: Don't know what to do with `obj/nes/game.d'
...
it looks like --create-deps is passed to ca65, which is an unknown option.
The earliest version of the compiler that will work is 2.13.9 snapshot, available here.
EDIT: Thanks for the help!!
torrasque
Posts: 8
Joined: Sun May 06, 2012 11:15 am

Post by torrasque »

cpow wrote:
torrasque wrote: cl65: Don't know what to do with `obj/nes/game.d'
...
it looks like --create-deps is passed to ca65, which is an unknown option.
The earliest version of the compiler that will work is 2.13.9 snapshot, available here.
Nice! I compiled from SVN and all compiles nicely now.
Some problems I noticed: (only one critical)
  • I compiled Alter Ego, set size of the font in Project Properties, closed and relaunched Nesicide. Now, whenever I try to open Project Properties, it crashes with a segfault. Now the same thing happens even with a fresh copy of Alter Ego (or anything else). I would post my config file; I just don't know where it is :?:
  • C headers didn't have syntax highlighting.
  • There's a noticeable hang up when closing a project; I believe it's trying to fetch nesicide's welcome page.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

torrasque wrote: Nice! I compiled from SVN and all compiles nicely now.
Great! Any chance of a package to upload?
torrasque wrote: Some problems I noticed: (only one critical)
  • I compiled Alter Ego, set size of the font in Project Properties, closed and relaunched Nesicide. Now, whenever I try to open Project Properties, it crashes with a segfault. Now the same thing happens even with a fresh copy of Alter Ego (or anything else). I would post my config file; I just don't know where it is :?:
NESICIDE.conf file is in ~/.config/CSPSoftware. I'll try here to reproduce the above while waiting.
torrasque wrote: [*] C headers didn't have syntax highlighting.
Oversight on my part. I'll fix shortly. All files with appropriate suffixes (as declared in Environment Settings->Compiler->Source File Extensions) should have appropriate syntax highlighting applied.
torrasque wrote: [*] There's a noticeable hang up when closing a project; I believe it's trying to fetch nesicide's welcome page.[/list]
Yes I get that here also. It isn't related to the welcome page -- at least here on my system it happens even when that page isn't set to show at start-up. A related bug that I'm looking into has crept in because of recent changes to support multiple targets [NES and C=64 at present]. When a project is opened or closed there's a flurry of activity creating or destroying appropriate UI elements for the target being emulated in the project being opened or closed. However, the delay you mention has been there on project closing even before this new change.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

cpow wrote: NESICIDE.conf file is in ~/.config/CSPSoftware. I'll try here to reproduce the above while waiting.
I was able to reproduce the Project Properties problem easily here so have fixed it. I'm still weeding through problems introduced in the IDE framework from the recent addition of support for C=64 target debugging [via remote monitor port connection to VICE emulator]. This was one of those. I've committed to my local Git but won't be able to push to the repositories on gitorious until later this evening. Meanwhile I'll go and look at the rest.

Thanks very much for the reports and the help!
torrasque
Posts: 8
Joined: Sun May 06, 2012 11:15 am

Post by torrasque »

Thanks a lot for the fixes!
About the slow-down, maybe you can use gcov to narrow down the problematic line.

I'm using Arch Linux, so I can rather prepare PKGBUILDs (for cc65-svn c64-emulator-lib-git nes-emulator-lib-git nesicide-git nesicide-emulator-git) and post them here (I can't promise they'll get into AUR though). Would it be okay?
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

torrasque wrote: I'm using Arch Linux, so I can rather prepare PKGBUILDs (for cc65-svn c64-emulator-lib-git nes-emulator-lib-git nesicide-git nesicide-emulator-git) and post them here (I can't promise they'll get into AUR though). Would it be okay?
Any help is appreciated. What you've said is foreign to me, though, so I will need to consult the almighty google to educate myself. Blast Linux and all its incarnations!
torrasque
Posts: 8
Joined: Sun May 06, 2012 11:15 am

Post by torrasque »

cpow wrote:
torrasque wrote: I'm using Arch Linux, so I can rather prepare PKGBUILDs (for cc65-svn c64-emulator-lib-git nes-emulator-lib-git nesicide-git nesicide-emulator-git) and post them here (I can't promise they'll get into AUR though). Would it be okay?
Any help is appreciated. What you've said is foreign to me, though, so I will need to consult the almighty google to educate myself. Blast Linux and all its incarnations!
lol :)
Let me try to save the trouble for you.
In case you are familiar with Gentoo ebuilds (I saw a it mentioned in the About Nesicide window), Arch Linux's PKGBUILD is something similar (but more primitive) to them. It's like a script that will fetch the sources from the upstream, compile and install, but just specific to Arch Linux.
They are not the part of the official repos though, it's just another mechanism for people to install packages that doesn't exists in the official repos, and also serving as a tool for building from sources.

In fact, there are already several (orphan) PKGBUILDs
nesicide-git: https://aur.archlinux.org/packages.php?ID=48433
nesicide-emulator-lib-git: https://aur.archlinux.org/packages.php?ID=48434
which I belive used to work with Nesicide 1. They require minimal changes, but there's a catch; the repos don't seem to be independent. I could have the packages
nesicide-c64-emulator-lib-git nesicide-emulator-lib-git nesicide-git nesicide-emulator-git
but it seems nes-emulator-lib requires nesicide sources. Which makes me consider: should I instead have single, monolithic package that will pull in everything. What do you think?

(edit: nesicide-emulator-git or nes-emulator-git?)
Last edited by torrasque on Mon May 07, 2012 1:32 pm, edited 3 times in total.
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Post by cpow »

torrasque wrote:Which makes me consider: should I instead have single, monolithic package that will pull in everything. What do you think?
Yes. I am intending to merge all four repositories into one repository as soon as I can figure out how to do so in git without losing history. If I can't figure it out I might just create a new "fresh start" master repo and put everything in it as if I'm starting from scratch, at which point the four existing repos will be obsoleted. Then I'll push the big red "history eraser" button.

So, having a single monolithic package is probably a good idea. Maybe we should take this into PM.
torrasque wrote:but there's a catch; the repos don't seem to be independent
This is true because of my hatred of repeating code fragments. Unfortunately there's some code that's required on both sides of the fence [the IDE framework or the emulator libraries].
Post Reply