Since I seem to be unable to convert the tex demo into a single buffer deal (hes using one for textures,colors,and indices) I decided to go my own way and go as SLOW AS POSSIBLE. I also decided even though it's a waste of space I would just try and exactly duplicate (to the number) the first working example I ever made with a quad/texture.
So far I'm doing ok, I can see the quad, except it's coming out completely green, and it's one of the colors in the tile texture. So something funky is going on here:
// setup
gl.enable( GL.TEXTURE_2D );
gl.matrixMode( GL.PROJECTION );
gl.loadIdentity();
gl.glu.ortho2D( 0, width, 0, height );
gl.scalef( 1, -1, 1 );
gl.translatef( 0, -height, 0 );
gl.matrixMode( GL.MODELVIEW );
gl.loadIdentity();
gl.viewport( 0, 0, width, height );
// edit: I'm loading textures here btw

gl.enableClientState( GL.VERTEX_ARRAY );
gl.enable( GL.TEXTURE_2D );
gl.bindTexture( GL.TEXTURE_2D, 7 );
// my rendering code
MultiBuffer buf = new MultiBuffer( 80 );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
gl.loadIdentity();
gl.translatef( 50.0f, 50.0f, 0.0f );
gl.vertexPointer( 3, GL.FLOAT, 0, buf.getAddress() );
gl.texCoordPointer( 2, GL.FLOAT, 0, buf.getAddress() + 48 );
gl.drawArrays( GL.QUADS, 0, 20 );
All the MultiBuffer is doing is maintaining a ByteBuffer/IntBuffer/FloatBuffer view and getAddress() is just the Sys.getDirectBufferAddresThingy(buf). The rest of the program is completely stipped down and is just enough to get everything working.
Shoot me, please.
EDIT: ok I think I'm putting the info in the buffer wrong, i.e. you supposed to be putting the info in for each vertice(s) not the whole quad but when I change it to this I get the same result:
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
buf.floats.put( 1.0f );
buf.floats.put( 0.0f );
buf.floats.put( 16.0f );
buf.floats.put( 0.0f );
buf.floats.put( 0.0f );
buf.floats.put( 1.0f );
gl.vertexPointer( 3, GL.FLOAT, 20, buf.getAddress() );
gl.texCoordPointer( 2, GL.FLOAT, 20, buf.getAddress() + 12 );