Original Post

Hey everyone, how’s it going? I would love to start developing for the virtual boy, but is developing on Mac/Linux viable? It seems the only compiler that I can find on this site is available for Windows. Is the source code to GCCVB available so I can compile for Mac/Linux?

10 Replies

Sure. http://www.planetvb.com/modules/newbb/viewtopic.php?post_id=25933#forumpost25933

However do note that there are bugs. I recommend you check out what ElmerPCFX has been doing to improve GCC in this thread and apply some of his fixes before building the toolchain.

Thanks! Unfortunately, binutils is failing to build on Mac OSX when I run the script “make_v810.sh”:

“error: use of undeclared identifier
‘PACKAGE’ ”

error: conflicting types for
‘__builtin___stpcpy_chk’

Hi and welcome syncophono! The easiest way would be to run VBDE inside a Windows Virtual Machine. I am using this setup on a Ubuntu laptop and it’s working nicely.

You’ll need:
* A copy of VirtualBox (https://www.virtualbox.org/)
* A Windows VirtualBoy image (http://modern.ie)
* The latest VBDE (http://vbde.planetvb.com)

A new version of VBDE featuring ElmerPCFX’s latest gcc 4.7 patches is in preparation and should be out in the not too distant future. 🙂

Thanks, I got VBDE up and running on windows for now, but eventually I’ll try to get the native mac compilation to work. I like libgccvb, it has a lot of features, and good examples that come with it.

Before too long, if dasi doesn’t rematerialize, I’m going to push the incomplete devkitv810 public so we’ll have something a little more accommodating for VB homebrew. devkitv810 is compiled for Win32, but works just fine through Wine on Linux/Mac.

syncophono wrote:
Hey everyone, how’s it going? I would love to start developing for the virtual boy, but is developing on Mac/Linux viable? It seems the only compiler that I can find on this site is available for Windows. Is the source code to GCCVB available so I can compile for Mac/Linux?

My GCC 4.7.4 patches should compile quite happily on linux, after all that’s what they’re supposed to be built on.

I still need to clean them up for an “official” release, but they seem to be quite stable now.

If you want a Mac toolchain, then you’d follow something like these instructions …

https://solarianprogrammer.com/2016/05/10/compiling-gcc-6-mac-os-x/

The older GCC 2.95 compiler that’s in GCCVB is something that I’ve not personally been able to compile with any reasonably-modern set of linux tools. Too much has changed over the years, and the GCC build process was failing for me.

As it was, it still took some hunting down of “compatibility” patches in order to get both binutils 2.24 and GCC 4.7 compiling with the latest GCC toolset.

Guy Perfect wrote:
Before too long, if dasi doesn’t rematerialize, I’m going to push the incomplete devkitv810 public so we’ll have something a little more accommodating for VB homebrew. devkitv810 is compiled for Win32, but works just fine through Wine on Linux/Mac.

Dasi has been missing for a long time now.

What’s his “devkitv810”, I haven’t seen mention of that before?

ElmerPCFX wrote:
What’s his “devkitv810”, I haven’t seen mention of that before?

Sorry, didn’t mean to hijack the thread…

dasi put together a devkit for V810 that outputs Virtual Boy and PC-FX programs. I’ve been working with him to get certain things implemented, but as I don’t really have much of a clue as to how GCC distributions work, it’s becoming rather out of date and could stand to see a newer build.

In conjunction with my minimalist Virtual Boy API, we were able to streamline several processes that accommodate more capable VB homebrew. Among other things, you can easily use any function as an interrupt handler if desired, incorporate binary files directly into your programs without byte array headers, and access individual data units on the memory bus without any pointer casting or index manipulation (including audio samples). Some simple functions and macros are present to perform common tasks such as polling the game pad, initializing the column table, configuring the instruction cache and interrupts, and halting the CPU.

A proper release will include a PC-FX API in the same vein and fix all of the outstanding issues (such as the current incompatibility with the C runtime). I’d love to get a committee together to weigh the pros and cons of combining the two devkit projects (GCCVB and devkitv810), but that would be stepping on dasi’s toes.

Since I do all of my Virtual Boy development with devkitv810, no one else will be able to compile my programs without modification unless devkitv810 is also public. I don’t want to release it over dasi’s head, but if he doesn’t come back around by the time I have some code to publish, I’m going to have to think hard about pushing the current, incomplete devkit out there before it’s officially ready to be released.

If anyone knows how to get ahold of dasi, please get in touch with me. I caught him online briefly in January, but he likes to be scarce of late.

Guy Perfect wrote:

dasi put together a devkit for V810 that outputs Virtual Boy and PC-FX programs. I’ve been working with him to get certain things implemented, but as I don’t really have much of a clue as to how GCC distributions work, it’s becoming rather out of date and could stand to see a newer build.

Interesting! I look forward to seeing it.

A proper release will include a PC-FX API in the same vein and fix all of the outstanding issues (such as the current incompatibility with the C runtime).

This obvious interests me the most … although I’m not sure exactly what you’re talking about.

If you’re trying to retain compatability with Hudson’s old 1990s PC-FXGA SDK, then I’m not sure of the value, since that means no homebrew without causing a copyright violation.

That’s the point of my work to continue Alex Marshall’s “liberis”, which provides the foundations of a fully open-source PC-FX library.

I’d love to get a committee together to weigh the pros and cons of combining the two devkit projects (GCCVB and devkitv810), but that would be stepping on dasi’s toes.

You may want to take a look at the next release of VBDE when it is made.

VBDE builds upon GCCVB, and jorgeche/KR155E are taking advantage of some of the features in GCC 4.7.4, and fixing/improving some of the things in GCCVB to take advantage of them.

ElmerPCFX wrote:

My GCC 4.7.4 patches should compile quite happily on linux, after all that’s what they’re supposed to be built on.

I still need to clean them up for an “official” release, but they seem to be quite stable now.

If you want a Mac toolchain, then you’d follow something like these instructions …

https://solarianprogrammer.com/2016/05/10/compiling-gcc-6-mac-os-x/

The older GCC 2.95 compiler that’s in GCCVB is something that I’ve not personally been able to compile with any reasonably-modern set of linux tools. Too much has changed over the years, and the GCC build process was failing for me.

As it was, it still took some hunting down of “compatibility” patches in order to get both binutils 2.24 and GCC 4.7 compiling with the latest GCC toolset.

Thanks, I’ll try it out! Where can I download your 4.7.4 patches so I can apply them to gcc?

syncophono wrote:

Thanks, I’ll try it out! Where can I download your 4.7.4 patches so I can apply them to gcc?

I’m sorry, because I know that it’s not the answer that you want … but I’d rather not just give out the basic GCC patches right now, but would prefer to wait for jorgeche and KR155E to release the next version of the VBDE (which includes an updated GCCVB).

That’s because jorgeche and I had to debug a few issues with GCCVB in order to get it to work with the new compiler.

I’m afraid that I don’t have the time or patience to go through that whole process again in order to support a separate GCCVB build.

You might try going to the VBDE thread here and asking them how they’re getting on with the new version.

 

Write a reply

You must be logged in to reply to this topic.