I am currently working on packaging up a complete, portable Virtual Boy development environment (“VBDE”) for Windows. Only download, unzip and start working, no installation, no hassle. It comes in the form of an editor (Notepad++) with shortcuts for compiling, running with Reality Boy or Mednafen and flashing to a FlashBoy. Also included will be example code which can be used as a starting base for new projects.
VBDE currently consists of:
– Cygwin with gccVB 2.95
– a portable Notepad++, with a few plugins and custom shortcuts
– a collection of development tools
– example code
Thank yous go to thunderstruck for helping me with tying this thing together. π
I got this working on my machine, but still need to do some tests to see if it really is portable. π If so, I will make a preview version available soon.
Hopefully, this project will finally end all the confusion newcomers to VB programming have to face and make setting up a development environment as easy as downloading and unzipping. Also, I hope the included example/base code can be used to hold a standardized library. A point to collect all the useful bits and bytes which are currently scattered in countless private versions of libgccvb, to give developers the best possible tools at hand to create amazing new homebrews for out beloved Virtual Boy.
This is a great idea, KR155E; thanks for doing it!
I may be able to remove the cygwin dependency from your package. April of last year, I got native Win32 binaries of gccVB (based on gcc 4.4.2) to compile (I think I used M.K.’s patches from this thread). I can send you a .7z of the binaries (~12MB), and maybe even the patched source.
I know I tested them at the time and they produced working VB ROMs, but something might need updating (e.g. the crt0 or libgccvb). Speaking of libgccvb, does your copy still consist only of .h file(s)? I made a version that consists of one header and one .c file that you could look at. It may be possible to turn them into a library that can be included with the compiler, rather than in each project’s source directory.
One suggestion/request: make a version of the environment that can be installed to and used from a USB flash drive, to allow development on any computer available. I’m sure there’s already a version of Notepad++ that works like this.
- This reply was modified 12 years, 8 months ago by RunnerPack.
— Useless babbling —
I was planning on doing the same thing, except with Eclipse, but I guess I won’t have to do that anymore! (I have mixed feelings about Eclipse but it seems like all the embedded silicon companies are switching to it for their IDEs)
I am using Notepad++ at work right now, and it seems okay. I know there were a few things I did not like but can’t remember what specifically right now. Anyway, I just use it to view/edit code on Windows, never used it to manage a project or to launch tools.
I think my favorite IDE is the Qt IDE, but I do not know if you can easily set it up for non-Qt code. I know you can set a cross compiler, but it might not work ideally.
— End of Useless babbling —
— Somewhat relevant babbling —
I swear I was able to compile the compiler with mingw, but I can’t remember (it was a year or so ago when I tried). Anyway, if it is possible to compile it under mingw then you would not need to include any of the cygwin stuff.
Hopefully your collection of development tools includes a simulator (I am sure it will).
— End of somewhat relevant babbling —
— Thanks and bye section —
Glad to see you are working on this! Good luck, and let us know if you need any help!
– Matt
Thanks for the feedback! I am at work right now so I will have to make it short, but I’ll get back to you as soon as I can. Just posting to let you know that my test was a total success! I copied everything to my one of my computers at work and I was able to compile and run thunderstruck’s MIDI player without any problems. π
It would be cool to have some demos, the SU Sound Engine, and maybe some open source HB games being part of the VBDE. Also some basic tutorials would be helpful.
Okay, here’s the first preview version: vbde_preview1.zip (100MB)
Extract its contents to C:/ and launch “VBDE.lnk”.
@RunnerPack: it would be fantastic if you could add those native gcc4 binaries to the package, so we could get rid of that huge Cygwin overhead, which makes like 98% of the package size! π
Also, with a few changes to some batch files, I guess it should be possible to make this fully portable (and moveable to any folder?).
@mbuchman: Eclipse is a great IDE! Using it at work and find it very comfortable to work with. Maybe, we could make different version of VBDE with different editors. Or, if they’re not too big in filesize, we could also ship VBDE with different editors.
@thunderstruck: For now, I have included the source to your MIDI player in the package to just show that it works. Eventually I want to include some demos (maybe Fwirt’s demo collection?) plus a barebone code that comes with a standard library, included MIDI player, standard precaution and adjustment screens and so on. Basically something with everything in place to easily start new a project from.
A hundred megs? That’s way too much! Native executables would indeed be welcome.
Yes, this would be great, but the latest gccVB would be a MUCH better.
Applying patches and compiling the whole thing in Cygwin, and having stuff not work because packages changed or whatever is frustrating. The IDE is less important IMO, but something lightweight like Notepad++ is a good compromise. Unzip and start working is nice, but an installer/uninstaller would be good as well. There may be some things like environment variables that would be nice when someone outgrows the simple batch file build.
You may want to add Grit to the package… I’m ashamed to say I still use VIDE, even though I know Grit is a better tool.
Of course a nice common library would be really nice as well, but that seems like an impossibility. π
And while 100MB seems absurd… I wouldn’t worry so much about that unless you’re worried about your bandwidth. (Pretty much) everyone has broadband these days, and it’s not uncommon for development environments to be ridiculously huge… 100MB isn’t gonna fill up anyone’s HD.
DogP
The gccVB I have (4.2.2) is about 95+MB, but compresses to ~12MB with 7zip. This is still too big for a PVB attachment, so I put it in my Dropbox:
http://dl.dropbox.com/u/5754740/gccvb.7z
Like I said, it still needs some testing. I seem to recall it not liking some syntax gubbins in one of the libgccvb headers. I’m also attaching the “more librarier” version of the library. I think it worked with this compiler at some point, but I added some stuff, so it hasn’t been fully tested yet. It might even be missing stuff.
If you want to do an installer, I suggest NSIS:
http://nsis.sourceforge.net/Main_Page
Also, here’s another editor you might consider including:
I plan to make a gccVB-specific syntax file (or “scheme”) for it. If you don’t have one for N++, I could probably do one while I’m making the other.
Attachments:
Thanks, RunnerPack!
I looked at the gccvb package and was not sure what to do to compile, since there’s no make.exe. Should I modify the make.bat that came with the very first gccvb release?
About libgccvb, are there any advantages of having only a single h and a single c file?
I will look into including Programmer’s Notepad as well. Custom schemes would be great for both this and Notepad++. π
KR155E wrote:
Thanks, RunnerPack!
My pleasure π
I looked at the gccvb package and was not sure what to do to compile, since there’s no make.exe. Should I modify the make.bat that came with the very first gccvb release?
It should be compatible with the old batch file, but it would be better to include some form of build tool (like make) and set up the editor(s) to run it. I’m going to study the editors’ support for “projects” and external tools and see if I can get “one-click” automatic project compiling to work. It might mean including a Win32 version of “make”. Here’s one that should be easy to add to the VBDE installer/zipfile:
http://gnuwin32.sourceforge.net/packages/make.htm
Make sure to read the General Installation Instructions, and let me know if you need any help.
About libgccvb, are there any advantages of having only a single h and a single c file?
For one thing, as I alluded to earlier, it could be made into a “libgccvb.a” and included in the /lib and /include directories. Using it would then be as simple as adding “-lgccvb” to the gcc command-line. Admittedly, this would only save a small fraction of a second from an already generally very short compile time, but it would also be cleaner and easier to maintain (and add to). At the very least, it might deter programmers from having a dozen modified versions spread among their various project directories π Actually, maybe there should be a central repository (on github? Google code?) for the library so we could finally have One Library to Rule Them All(tm) π
I will look into including Programmer’s Notepad as well. Custom schemes would be great for both this and Notepad++. π
I’ll work on that after I look at the actual build process. I also noticed that Programer’s Notepad has a system for “snippets” that can generate pieces of code automatically. Between this, the Python scripting, and the C++ “plugin” system, we could have a very powerful replacement for VIDE with a bit of work…
WOW, this is incredibly easy to use. This is a fantastic idea and I’ll definitely use it, since I had trouble getting an IDE and compiler set up before.
Note:
While testing, I found that the library I attached above is broken. Somehow I left out some commonly used functions and introduced errors that make it unlinkable. I’m working on the problems right now and will release a new version soon.
Thank you for your patience.
What is the demo project supposed to do, exactly? It compiled fine and it runs fine but I don’t hear any sound, and all I see is the background graphic and a number that counts up.
It sound like you compiled the GH-Midi Player. If you press A, B, Left Trigger or Right Trigger it plays different Video-Game themes. The displayed number is the note count. As the number changes the music should be played. Obviously you have to turn up your sound to hear the music.
Did you try to start the demo in RealityBoy or on Hardware?
thunderstruck wrote:
It sound like you compiled the GH-Midi Player. If you press A, B, Left Trigger or Right Trigger it plays different Video-Game themes. The displayed number is the note count. As the number changes the music should be played. Obviously you have to turn up your sound to hear the music.Did you try to start the demo in RealityBoy or on Hardware?
All I did was compile the default file/project that was loaded from the pack. So yeah, I guess it was the midi player. I verified my computer had sound working but I couldn’t get any sound through either realityboy or mednafen…
That’s indeed strange. I never used the VBDE, though. However, I don’t think Kri55e modified the sources. Do other games have sound if you start them in RealityBoy?
Yes, the default project of VBDE Preview 1 was thunderstruck’s MIDI player, unmodified IIRC. It was just there to show that compiling worked.
I now got RunnerPack’s gccVB 4 binaries working and included in VBDE Preview 2! This brought the size down massively to only 19MB compressed.
This new version also comes with the latest version of GRIT for VB and the first version of my barebone project as the new sample project. I also introduced a new version of the vbh file for ROM header information.
This is really a sweet package. If I find some time I will try to compile GameHero with it. In the end it is basically the same development environment I used, so it should work fine.
The vbh file is also something I always wanted to include in my project.
I think including some more examples and some basic tutorials would be a good idea.
KR155E wrote:
…I also introduced a new version of the vbh file for ROM header information.
thunderstruck wrote:
…The vbh file is also something I always wanted to include in my project.
Actually, when I packaged the native gcc binaries, I also included my “vbid.exe” VB header editor. It can be used in a makefile/batchfile to patch the VB ROM header, without using a separate file. Run it in a “DOS box” with no parameters to see how to use it (or get the full download and look in the readme). Of course, its usage is purely optional, I just thought I’d mention it…
Actually, I am using VBid right now to add the ROM information. However, I do it in a pretty static way out of a batch file.
If I understand Krisses changes to my batch files correctly, he also uses VBid inside of the VBDE. He added the .vbh header file to the project, which then is read after the build. The information of the header file are then used to configure VBid. VBid then writes the information to the ROM.