rlyeh
 cheater admin
Level 4-1

Joined: 01 Oct 2004 Posts: 219
|
Posted: Thu Nov 23, 2006 4:01 pm Post subject: Minimal 0.C WIP |
|
|
Current WIP for the Minimal SDK 0.C (as November/29/2006)
Greetings from darkness...
PS: hope you like it :-)
| Code: |
What's delayed for 0.D:
=======================
- OSD layer
- fine scaling (post scaling)
- support for DaveC's pad configurations (model 0,I,II,III,IV)
- rotation
- usb mouse
- usb keyboard
- custom tv modes
- custom framebuffer size
- single buffering support (una-i's request)
- eeprom reading support
What I'm doing right now
========================
- write new documentation (argh!)
- fix RGB windows (joanvr's bug)
- test usb joystick
- test gp2x_file handling (& tcp/ip wrapper & file selector)
- test PSD image handling
- test hardware blitting
- test yuv/rgb scaling fix (@ lcd+tv & new scaling params mode)
- test tv video output (ntsc & pal)
- test I2C support
- test uninstallhack
What's new:
===========
(start code)
0.C: added full 64mb support finally! :)
added optimized RAM timings (done with UPLL prescaler; thanks god_at_hell & craigix)
added built-in MMU hack (thanks Squidge & NK)
added built-in high resolution profiler (thanks GnoStiC for suggestions :-)
added 16 high resolution software timers
added overclocking support (thanks RobBrown, sasq & whizzbang)
added preliminary gp2x hardware blitter support (thanks Paeryn, Reesy & Squidge)
added /dev/minimal module driver (thanks oyzzo, GnoStiC and Gary Miller for compiling my sources)
added hardcore homebrew (HH) programs launching support (thanks RobBrown!)
added TV out support by using CX24785 encoder directly (thanks THB & vimacs for testing)
added USB joysticks support
added I2C (CX24785) support
added BMP file image handling
added TGA file image handling
added gunzip library by Pasi Ojala
added hFILE library (HPL subset library for file, network & device handling)
added flushing cache support
added rebooting support
added battery check support (thanks Squidge)
added LCD backlight support (thanks RobBrown)
added leds support (thanks K-teto & RobBrown)
added stereo/mono sound support
added 3D DAC boost support
added 6db pre-DAC attenuation support
added bass/treble intensity support
added headphones detection support
added memory card detection support
added levels based debug macro (produces compilable code only when levels match)
fixed white LCD bug when using TV out (thanks THB for the report)
fixed hsync/vsync polarity for firmware 2.0.0 (thanks K-teto)
fixed YUV aspect ratio (thanks Puck2099)
fixed dualcore support again (broken in 0.B)
fixed two stupid typos in sound.c tutorial (thanks Nawa for the report)
fixed intensive cpu usage bug when not playing sound
fixed gp2x_video_setdithering function
changed video buffering for 16bits mode (triple now)
changed video buffering for 8bits mode (sextuple now!)
changed YUV/RGB/dualcore/cursor memory mappings
changed whole memory mapping to a better layout featuring a free, big and contiguous memory block sized up to 31 Mb.
changed dualcore initialization method
changed dualcore memory mapping method
changed dualcore shared area usage through gp2x_dualcore_data() macro (easier to use now)
changed dualcore stack area to a bigger and safer one (using 64kb now)
changed dualcore 940t icache/dcache settings (should be faster now)
changed dualcore 940t binary limit from 10Mb to 31Mb
changed RGB region initialization method
changed joystick read handling. You can check also for absolute values now
restored clock setting when initializing your program (200 MHz default)
restored leds when initializing your program
restored low battery led when initializing your program
added functions:
- gp2x_blitter_enable()
- gp2x_blitter_send()
- gp2x_blitter_wait()
- gp2x_dualcore_launch_HH()
- gp2x_dualcore_clock()
- gp2x_i2c_read()
- gp2x_i2c_write()
- gp2x_image_bmp()
- gp2x_image_tga()
- gp2x_image_free()
- gp2x_joystick_name()
- gp2x_joystick_scan()
- gp2x_joystick_wait()
- gp2x_misc_flushcache()
- gp2x_misc_led()
- gp2x_misc_lcd()
- gp2x_misc_battery()
- gp2x_misc_headphones()
- gp2x_misc_memcard()
- gp2x_profile_analyze()
- gp2x_reboot()
- gp2x_sound_stereo()
- gp2x_sound_3Dboost()
- gp2x_sound_attenuation()
- gp2x_sound_setintensity()
- gp2x_timer_raw()
- gp2x_timer_raw_to_ticks()
- gp2x_timer_raw_one_second()
- gp2x_timer_init()
- gp2x_timer_start()
- gp2x_timer_stop()
- gp2x_timer_cpu_usage_per_timer()
- gp2x_timer_cpu_usage_relative()
- gp2x_tv_setmode()
- gp2x_tv_adjust()
added macros:
- gp2x_debug
- gp2x_profile
modified variables:
- *gp2x_dualcore_ram
modified functions:
- gp2x_joystick_read()
- gp2x_video_setdithering()
modified structs:
- deleted { *screen8, *screen16, *screen32 } pointers in gp2x_video_YUV[0,1,2,3].
- deleted { *screen8, *screen16, *screen32 } pointers in gp2x_video_RGB[0].
- added { void *screen } pointer into gp2x_video_YUV[0,1,2,3]
- added { void *screen } pointer into gp2x_video_RGB[0]
- added gp2x_rect.type enum { RECT_RGB8=1, RECT_RGB16=2, RECT_YUV=4 };
deprecated headers:
- removed minimal_940t.h. Use '#define MINIMAL_940T' before '#include minimal.h' and you're ready now.
documentation:
- added dualcore introduction, and better example documentation
examples:
- added yuv example
- added reboot example
0.B: preliminary documentation. Created with NaturalDocs (thanks synkro for the tip!).
preliminary Cursor layer support.
preliminary RGB windows support.
preliminary RGB alpha blending support.
preliminary RGB key colouring support.
preliminary RGB coarse scaling support.
preliminary YUV layer support.
preliminary YUV regions support.
preliminary YUV splitting screen support.
preliminary YUV mirroring support.
preliminary YUV coarse scaling support.
preliminary Gamma correction support.
preliminary dithering support (untested).
preliminary font support. Using public domain 6x10 console font.
using octuple buffering for sound now.
new 16 bits RGB video mode.
improved functions:
- gp2x_dualcore_exec() ; it queues up to 1000 commands (dualcore should work better now)
fixed functions:
- gp2x_blitter_rect() ; fixed stupid typo (thanks slygamer for the bug report)
added structs:
- gp2x_video_YUV[0,1,2,3] which contain {*screen8,*screen16,*screen32} pointers
- gp2x_video_RGB[0] which contains {*screen8,*screen16,*screen32} pointers
added functions:
- gp2x_video_YUV_color()
- gp2x_video_YUV_flip()
- gp2x_video_YUV_setregions()
- gp2x_video_YUV_setscaling()
- gp2x_video_RGB_color16()
- gp2x_video_RGB_setwindows()
- gp2x_video_RGB_setscaling()
- gp2x_video_RGB_setcolorkey()
- gp2x_video_setluminance()
- gp2x_video_setgammacorrection()
- gp2x_video_waitvsync()
- gp2x_video_waithsync()
- gp2x_printf_init()
- gp2x_printf()
deprecated variables:
- *gp2x_screen15
- *gp2x_screen8
changed functions:
- gp2x_video_flip() to gp2x_video_RGB_flip()
- gp2x_video_setpalette() to gp2x_video_RGB_setpalette()
- gp2x_video_color15(R,G,B,A) to gp2x_video_RGB_color15(R,G,B,A)
- gp2x_video_color8(C,R,G,B) to gp2x_video_RGB_color8(R,G,B,C) ; note that order of parameters has changed in this function.
- gp2x_init() to gp2x_init() ; it has an extra parameter now
0.A: 940t disabled all time unless required
sound is paused by default now, use gp2x_sound_pause() to unlock it
fixed functions:
- gp2x_sound_play() ; increased the number of sampling buffers
- gp2x_timer_read() ; it should work again. broken at some point before
- gp2x_dualcore_launch_program_from_disk() ; it missed the code uploading call
added functions:
- gp2x_sound_pause()
- gp2x_timer_delay()
- gp2x_dualcore_pause()
0.9: initial FIFO message system for dual cpu cores.
initial 48 Mb support.
initial quadruple buffering in 8bbp mode.
added functions:
- gp2x_dualcore_exec() ; initial FIFO message system for dual cpu cores.
- gp2x_dualcore_sync() ; initial FIFO message system for dual cpu cores.
improved functions:
- gp2x_video_flip() ; initial quadruple buffering in 8bbp mode.
0.8: initial dual cores cpu support.
very basic blit functions by popular demand ;-)
vsync & hsync waiting code (thanks Reesy)
added functions:
- gp2x_launch_program() ; initial dual cores cpu support.
- gp2x_launch_program_from_disk() ; initial dual cores cpu support.
- gp2x_launch_subprogram() ; initial dual cores cpu support.
- gp2x_blitter_rect15() ; very basic blit function by popular demand ;-)
- gp2x_blitter_rect8() ; very basic blit function by popular demand ;-)
- gp2x_video_hsync() ; hsync waiting code (thanks Reesy)
- gp2x_video_vsync() ; vsync waiting code (thanks Reesy)
fixed functions:
- gp2x_video_color8() ; bugfixed a stupid typo (thanks Franxis for the bug report)
0.7: added functions:
- gp2x_sound_volume()
fixed functions:
- gp2x_deinit() ; fixed menu launch code when exiting.
improved functions:
- gp2x_timer_read() ; rewritten timer. it should be more accurate now.
- gp2x_init() ; faster init code.
0.6: added functions:
- gp2x_timer_read()
- gp2x_sound_pause()
fixed functions:
- gp2x_video_setpalette() ; palette handling was incorrect. fixed.
0.5: improved functions:
- gp2x_init() ; better and cleaner initalizing code.
- gp2x_init() ; sound patched for real stereo output (by using NK's solution)
0.4: lots of cleanups.
sound is threaded and double buffered now.
8 bpp video support.
fixed functions:
- gp2x_deinit() ; better and cleaner exiting code.
0.3: shorter library.
fixed functions:
- gp2x_joystick_read() ; improved joystick diagonal detection.
0.2: better code layout.
public release.
0.1: beta release.
|
|
|