I will answer the long due unanswered questions.

Nanoloop: I'm sorry that I have neglected this question. NL cartridge support is not yet ready, simply because I haven't gotten to it yet. I want to do a minor reorganization of the over-all code before getting to it, but when that's done I will add the NL support. NL cartridge support should not be problematic and is an expected feature, but I do not want to announce it as done until it's done and confirmed to be stable.

I have two older NL cartridges, that were generously donated by Bud Melvin and someone else whose name escapes me, as well as an NL One. At a later point, I may want to borrow other cartridges if they are significantly different in function from the ones that I have. It may also be possible to add support for this remotely, that is, to send a beta version of the software to someone owning a flasher and a Nanoloop cartridge and let them try it.

Mac OS X support: I have currently installed a Hackintosh setup to allow me to test the software on OS X, and so far it works well. The software is written in Python, and the hardware is using an FTDI virtual serial port chip, which should make the software very platform independent. Currently Windows, OS X and Linux are confirmed working platforms, but even something like BSD or even Solaris should be a problem if there is just an FTDI serial driver for those systems.

The only cloud on the horizon with regard to OS X support is a problem reported to affect Arduino users. This problem stems from the fact that Apple included their own driver for interfacing FTDI chips. I have a hunch that this problem may affect ALTANE as well, if the problem is what I think is. Unfortunately I don't have access to a Mavericks installation to confirm this. (I've only been able to install Snow Leopard, OS X 10.6 so far.) There are three possible outcomes:

1) There actually is no problem using ALTANE on Mavericks. (Hooray.)
2) The problem is what I think it is, and I will be able to work around it easily.
3) ALTANE is affected, and I can't figure out a way to solve the problem. In this case there is still a work-around that involves installing FTDI's original driver.

For now, I'm confident ALTANE will be able work on all (modern) versions of OS X, including Mavericks.

Reference: http://forum.arduino.cc/index.php?topic=198539.0

434

(16 replies, posted in Nintendo Handhelds)

Just the sav.

435

(16 replies, posted in Nintendo Handhelds)

If you are able to get sav file off the cartridge and send it to me, I may be able to recover it. nitro2k01 att gmail dott com.

436

(13 replies, posted in Nintendo Handhelds)

I would have done some aspects of this in slightly more complex ways. I would have done pre-loading of images, maybe intelligently based on which box you make a selection of first. You may want to give a choice between selecting the same type of D-pad and B/A buttons or different. One thing to consider is to put (for example) all the buttons in a single file, and then in the CSS, you adjust the position to reveal the selected button set. For something like the buttons that is a small amount of data per item, this makes fewer requests to the server and means that the all the options will be load in one go. If you want me to experiment with all of these suggestions for you, tell me.

Another thing, some of the D pad images are misaligned against the background. And another thing, most of the D pad images are lacking the background of the plastic piece, that is visible normally visible on the sides. Standard buttons has this but most of the other button types don't, The real ideal solution would be to let you view the D pad (on transparent cases) through the case, but that would be waaay overkill.

Sorry for making it sound like I'm slamming the page, but this is the kind of thing I notice.

437

(18 replies, posted in Nintendo Handhelds)

There is no fundamental reason why this couldn't work. The SRAM chip is 128 kiB, which is what is needed for LSDj. Maybe, maybe, the cartridge is using some or all of the extra space (over 32 kiB) for temporary storage when transferring data to/from the SD card, which would make it unavailable to LSDj for save files. If I had an Everdrive GB myself I could investigate this myself. But the first avenue would be to discuss this with Krikzz himself. I think I will do so, actually. Another possible option, which kind of sucks but should work, is to use one copy of the ROM per song.

438

(12 replies, posted in Nintendo Handhelds)

In theory, LoZ should just compete with LSDj for the space used by the currently opened song, ie both LoZ and LSDj will overwrite that space (technically, the lower 32 kiB of the save memory.) Forget using both at the same time on a single cartridge. This should not affect the other saved songs. But if you send me the sav file, I can probably recover the songs. E-mail it to nitro2k01 at gmail dot com.

439

(9 replies, posted in Nintendo Handhelds)

Try this ROM:

http://blog.gg8.se/gameboyprojects/week04/bgblogo.zip

It shows you which buttons are being pressed. Maybe the problem is not that the D-pad doesn't work, but that something else happens, like pressing the D-pad at all, makes all buttons register as pressed, or there is a stuck button.

Did you attach all screws for the LCD board? When closing the case, are you noticing any tension anywhere?

Can you explain what "when i push it at the very bottom" means exactly? Does the D-pad stop registering when you're pushing the case at the bottom? Does the D-pad stop registering when you press it as hard as you can? Is the D-pad dead and doesn't even  register when pressed as hard as you can?

And a general warning, never attach or detach the ribbon cable while the Gameboy is powered on. Doing so may short two of the pins in a way that permanently destroys the left and B buttons.

NIGHTMARES wrote:

I don't know what the big deal is. I had nitro change my name 2 times....

Yeah, because you used strange unicode characters and couldn't log in. tongue

calmdownkidder wrote:

BLEO can you change everyone's names to variations on CalmDownKidder please? Thanks.

Sorry, it's only funny if it's nordloef.

rvan wrote:

Does this mean that is is not possible to capture a continued data stream with a typical logic analyser

This is in itself another possibility. You could use say a Saleae USB logic analyzer and their API for getting data. As long as you are able to record and convert the logic stream uninterrupted on the PC, you have recording right there.

rvan wrote:
friendofmegaman wrote:

Next - Nitro's suggestion to use uC as clock master. I don't understand how (in case of Teensy at least) it solves the issue of only 24 clocks available to do something with the data? 24 is an optimistic estimate.

This would probably require underclocking the Game Boy (unless using a faster microcontroller).  Obviously, this isn't ideal.  However, if the Game Boy is driven by a clock signal synthesised by the microcontroller, then pixels will arrive at a predictable cycle relative to the work loop, and can be read directly, with no need for polling or interrupts.  Has anyone (nitro, most likely) tried single-stepping the Game Boy's processor?  Being able to do so would aid in designing a solution using this approach.

Nailed it. The advantage is the predictability. Once you know display data is about to come, you can send CPU clock pulses and blindly scoop in the data at the correct intervals until the end of the line. I'm claiming this to be doable with, not a 96, but with a 24 or maaaybe even 12 MHz AVR, and I'd be up for the challenge, if I can be bothered.

Details: Back of the envelope calculation of the data rate: 160*144*60*2=2764800 bits per second. An FT232 can handle up to 3 Mbaud communcation. Accounting for 1 start bit and 1 stop bit, that becomes 3000000*8/10=2400000 bits per second actual transfer rate. Too slow, darn. So the choices are to underclock the CPU to 87% of it's regular speed, or come up with some form of compression. RLE compression should work well enough to most situations, as a typical game screen will contain at least 13% repeated data. (That is, the same tile repeated multiple times vertically.) This leaves one problem, though, which is that the screen data isn't sent at the same rate from the GB CPU. It's done in bursts, one line at that time, and then takes a break in the HBlank and VBlank periods, so you would need a serial data ring buffer. But meh, should be easy enough. (Famous last words.)

As for the teensy code. I'm not familiar wiuth how it works, but mostly likely the CPU will be busy for a short while, while the USB processing code is running. In that period, you're missing display data. And also, please don't use interrupts for this. Interrupts are great when you need the CPU to do something else, and still have the ability to be interrupted, but each interrupt does have an overhead which means that they're not suitable for this project. Use a polling loop instead. (For example.)

One of these days I'll give this a shot using a microcontroller as the clock master for the DMG. Should solve any and all timing problems.

Princess wrote:

Since this should work with a wide variety of carts , could this be used to backup / reflash an old USB bleep bloop cart which isn't able to be be backed up via USB (for whatever reason) but otherwise works fine ? If so, i seriously cannot wait to buy this.

In theory, yes. A USB bleepbloop is no different from a non-USB bleepbloop, looking form the cartridge side. However, that of course assumes that the cart isn't otherwise broken, which might prevent the cart from being flashed.

Set it to 80 BPM and change the default 6/6 groove to C/C for the same effect. Or in general, double every digit in the grooves you are using. Tables will still run twice as fast (80 BPM) which you can solve by creating a new groove that you set to 2/2, and then activate by using the G command on the first row of the table. For example, if you use groove 1 as your "2/2" groove, put a G01 command in the table.

This will make the song work the same on both DMG and GBC.

MaxDolensky wrote:

herr_prof and nitro2k01 for being dry enough to make others bite the pillow and learn a thing or two

Since I pretty much lack personality, I was wondering what someone would come up with to sneak me in.

446

(14 replies, posted in Collaborations)

A tribute/cover record Shpongle is what I had in mind, yeah. As chip as possible. Considering the style, I wouldn't mind some post processing, but preferably no plain fakechip. This might be a good opportunity for chips with some form of timbre control like OPL chips (FM) and C64 (analog filter) etc.

447

(14 replies, posted in Collaborations)

Just got this idea. Who would be interested in this?

Yes, you can load programs into the A+B banks, or even replace Nanoloop. However, these can only be 32 kiB ROMs, (except for Nanoloop which is 64 kiB) since the cartridge uses a non-standard mapper which games/programs bigger than 32 kiB can't use.