path: root/apps/plugins/rockboy/sys_rockbox.c
AgeCommit message (Collapse)AuthorFilesLines
2020-10-26LCD core move buf ptr and address look up function viewport structWilliam Wilgus1-2/+8
I'm currently running up against the limitations of the lcd_draw functions I want these functions to be able to be used on any size buffer not just buffers with a stride matching the underlying device [DONE] allow the framebuffer to be decoupled from the device framebuffer [DONE need examples] allow for some simple blit like transformations [DONE] remove the device framebuffer from the plugin api [DONE}ditto remote framebuffer [DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr while remote lcds may compile (and work in the sim) its not been tested on targets [FIXED] backdrops need work to be screen agnostic [FIXED] screen statusbar is not being combined into the main viewport correctly yet [FIXED] screen elements are displayed incorrectly after switch to void* [FIXED] core didn't restore proper viewport on splash etc. [NEEDS TESTING] remote lcd garbled data [FIXED] osd lib garbled screen on bmp_part [FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport [FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer [FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw) [UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear scrolling viewports no longer trigger wps refresh also fixed a bug where guisyncyesno was displaying and then disappearing [ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes (LCD_ and LCD_REMOTE_) LCD_STRIDE(w, h) same as STRIDE_MAIN LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH) test_viewports.c has an example of usage [FIXED!!] 2bit targets don't respect non-native strides [FIXED] Few define snags Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26make the plugin API frambuffer agnosticMoshe Piekarski1-2/+2
Change-Id: I5abdc231093054c517ff53b9a456997e440e3f6e
2020-07-24[1/4] Remove SH support and all archos targetsSolomon Peachy1-54/+0
This removes all code specific to SH targets Change-Id: I7980523785d2596e65c06430f4638eec74a06061
2018-06-12Agptek Rocker: fix rockboy palleteMarcin Bukat1-1/+1
Contributed by Aapo Tahkola. Change-Id: Ibee14d4f307b2198c5c47f9593734bd5d31d379b
2016-10-03Rockboy: revert FS#11745 patchSebastian Leonhardt1-1/+1
William Shipley sent this patch via mailing list. Original Message: "There was a patch to rockboy in 2010 that fixed a problem where the bottom tile row would be rendered at the top. Here's the relevant issue from that time: Note that Stummi openly admits it was a hack, not a true fix. Sometime in the 6 years since, the root cause was fixed. Currently, rockboy on the Clip+ and other 64px models shows the top of the gb screen along the bottom of the display. I confirmed that reversing this patch fixes the issue on my own Clip+" I don't have any of the mentioned targets, so someone else has to test. Change-Id: Id29b78c4ece0af53ba1280029c18b76808a21da2
2014-06-21lcd-24bit: Introduce a 24-bit mid-level LCD driverThomas Martitz1-0/+9
With LCD driver all calculation will be performed on RGB888 and the hardware/OS can display from our 24bit framebuffer. It is not yet as performance optimized as the existing drivers but should be good enough.The vast number of small changes is due to the fact that fb_data can be a struct type now, while most of the code expected a scalar type. lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit it enforces the generic C code. All plugins are ported over. Except for rockpaint. It uses so much memory that it wouldnt fit into the 512k plugin buffer anymore (patches welcome). Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
2014-01-18rockbox: Improve button repeat handling.Thomas Martitz1-6/+16
Change-Id: I1259c43019c51828b2af73f312aee9cf399d57cf
2014-01-18rockboy: Fix button read method.Thomas Martitz1-24/+14
The old method simply polled the lastbtn variable in button.c. This approach does not clear the button event queue which overflows as a result (panic in the simulator). Use proper APIs to fix that and adopt the method from the old read_scroll_wheel() function, which reads buttons until the button queue is empty, for all targets. Change-Id: Ibf198f6e597e7f51ab4ebcfcae4ebebbe8d7845c
2010-11-28applying FS#10489: Rockboy - rotate directional keys when screen is rotated Michael Stummvoll1-7/+55
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-11-26Fixing FS#11745 (Rockboy Screen on Sansa Clip+)Michael Stummvoll1-1/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-09-07plugins (doom, midi, rockboy): don't use non-static inlineRafaël Carré1-1/+1
some functions can be static -> static inline some functions are external and can't be inlined -> remove inline git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2010-05-18plugins: changes for targets with small plugin buffer (Clipv1)Rafaël Carré1-2/+2
- only enable overlays for targets with very small plugin buffer (<= 0x10000 bytes, i.e. archos) - change the condition for rockboy to reflect exactly why it can be built or not - Some plugins need a large plugin buffer, only enable them if the buffer is big enough (sizes measured on Clipv1) - disable MIDI if we have 2MB (or less), we won't be able to load the instruments in the audio buffer - remove unusable lua overlay loader - sokoban code is bigger on clipv1 than on SH, assume it code is 20kB on anything but SH so it builds with buffer smaller than 192kB - reduce the Clipv1 plugin buffer size from 288kB to 96kb, disabling zxbox, chessbox, and fft zxbox and chessbox have overlays which run on archos, we just need to enable them on other targets. We'll also be able to run rockboy. fft won't run as it needs a large plugin buffer for greylib git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-06-15Fix red.Michael Giacomelli1-1/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2009-06-15FS#10327: Patch by Frederick Full to fix the scrollwheel and default Thomas Martitz1-1/+1
controls in Rockbox on the Fuze. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-06-28Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg1-2/+4
later. We still need to hunt down snippets used that are not. 1324 modified files... git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2008-01-10Accept FS#8341 - rename BUTTON_SCROLL_UP/DOWN to FWD/BACK on the e200 to ↵Jonathan Gordon1-2/+2
make it consistant with the ipods. apart from removing a bit of confusion, it fixes the wheel in pictureflow and possibly elsewhere. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-10-16Code police and clean up for rockboy.Tom Ross1-4/+1
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-07-30RTC (real time clock) support for Rockboy. The time in games like Pokemon ↵Tom Ross1-20/+0
Gold/Silver should now stay synced on RTC-capable targets. Other targets will lose track of time when the player is turned off. User's can edit the .rtc file in an attempt to resync the RTC. The clock should stay synced when entering and leaving the menu. I've tested this over the past two weeks and it seems to work well. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-06-24Sound improvements for rockboy - players now sync the sound (The gigabeat ↵Karl Kurbjun1-34/+9
now plays at a steady 60 fps as long as the frameskip is set properly). If a new sample is not available a blank buffer is used. All devices use 44.1 kHz for gameboy sound now so no more high pitched sounds. Added a screen rotation option. Removed unscaled code for devices with a screensize smaller than the gameboy. All buttons are now configurable. Scroll wheel devices still have button configuration problems though. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-05-22Hopefully take care of the scrollwheel difficulties in plugins on e200.Michael Sevakis1-0/+35
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-04-09Enable rockboy for M5.Jens Arnold1-3/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-02-06Major Rockboy update. Tom Ross1-90/+39
1) Adapt Rockboy to smaller screens (H10, X5, and iPod Nano). 2) Add the ability to use a preset palette on color targets. Choose 'Set Palette' from the main menu. 3) Clean up the code to remove any unused code and variables. 4) Changed tabs to spaces. 5) Disable reading and writing sound when sound is disabled. 6) Disbable writing to the RTC since it is not implemented yet. 7) Minor optimizations from WAC gnuboy CE and iBoy. 8) Massive clean up of code to make it appear consistent. 9) Change all C++ style comments to C style. 10) Completely reorganize dynarec. Add fixmes to all unimplemented opcodes. Add debug writes for all opcodes. Attempt to implement a few opcodes myself. 11) Silence some warnings when built using dynarec. 12) Minor reshuffling of IRAM, may or not offer a speed increase. 13) Include fixes found in the short-lived gnuboy CVS. All in all, there's about a 10% improvement on my test roms when sound is disabled and slight improvement with sound. Especially noticable when there are few sprites on screen and less action is occurring. See FS #6567. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2007-01-15FS#6539 - Thanks to Tom RossBarry Wardell1-1/+2
Add Jewels, Spacerocks, Wormlet, Rockboy and Sudoku for the e200. Also Includes manual changes for plugins. Add X5 keymappings for wormlet to the manual. Add help text for Jewels on the H10 and give a warning if help text is not defined. Fix bug in spacerocks lives drawing on large screens (larger than Ondio). Change spacerocks comments to C style. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-12-05add gigabeat button definesMarcoen Hirschberg1-1/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-09-26Ooops. Fix red buildsDave Chapman1-2/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-09-26Use the absolute wheel position driver for Rockboy. Mappings are: top = UP, ↵Dave Chapman1-6/+71
top-right = A, right = RIGHT, bottom-right = START, bottom = DOWN, bottom-left = SELECT, left = LEFT and top-left = B. Based on patch #5424 by Anton Romanov git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-06-19Update for Rockboy: - fix scaling for other color screens than H300 - full ↵Karl Kurbjun1-1/+2
menu rewrite to display choices properly - some small tweaks to code - some formatting updates git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-01-20Initial support for iPod color and video. The Nano has a 176x132 LCD, which ↵Dave Chapman1-10/+28
is the first colour LCD smaller than the gameboy's 160x144 display - so it needs work to skip scanlines. Button handling still needs more work - only up/down/left/right/start are currently mapped. Code is removed from IRAM due to 'relocation truncated to fit: R_ARM_PC24' errors. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-01-20Karl Kurbjun's patch #1407719:Daniel Stenberg1-60/+41
Here's another patch for rockboy that adds automatic frameskip (it's pretty rough as I haven't figured out an accurate timer), fullscreen support on the H300, and a bit of assembly and some IRAM stuff. I'm not sure if I'm doing the IRAM stuff correct though as it doesn't seem to make much of a difference if any. I've also added a statistics option that will show how many frames per second the gameboy is seeing (not what the player is getting) and what the frameskip is at. When you enable stats sometimes you have to go back into the menu and then come out to clear erronous values. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-01-12Work-in-progress iriver iFP-7xx port by Tomasz MalesinskiDave Chapman1-0/+7
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2006-01-10Patch #1401999 by Karl Kurbjun - Rockboy color, sound support, and speedupsLinus Nielsen Feltzing1-16/+43
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-11-16Rockboy: adapted to colour LCD (but no colours for gameboy color games yet). ↵Jens Arnold1-44/+32
Some cleanup; killed a ton of TABs. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-07-064-shades greyscale graphics core for iriver H1x0. 4-grey rockbox logo and ↵Jens Arnold1-4/+4
light grey background in splash() boxes. Simplified the splash() box creation as the new graphics core does clipping. Adapted screendump feature and added flexible preprocessing to construct the bmp header. Rockboy now uses 4-grey mode as well. 4-grey support for win32 simulator. Fixed win32 player sim to not use double bitmap conversion via a recorder-like framebuffer, and correctly display double-height text. X11 simulator temporarily adapted. The display won't be distorted, but it still shows b&w only. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-07-03Centralised the ICODE_ATTR and IDATA_ATTR #defines. Renamed some musepack ↵Jens Arnold1-1/+1
and rockboy headers to avoid clashes with rockbox headers. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-06-29Hristo Kovachev's keypad fixes for the H300 buildDaniel Stenberg1-1/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-05LCD mode switching added for recorders (uses ON button).Jens Arnold1-1/+4
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-04New lcd mode: drop every 9th line; set as default.Michiel Van Der Kolk1-10/+4
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-04New lcd mode; drop top 8 and bottom 8 linesMichiel Van Der Kolk1-3/+15
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-04Lcd mode selecting between top 16 and bottom 16 lines being dropped byMichiel Van Der Kolk1-5/+4
using the hold button. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-04Grayscale support for rockboy - can't work without markuns patch,Michiel Van Der Kolk1-1/+15
needs rockbox' internal framebuffer in 2 bit (4 pixels / byte) format. git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-03no menu for archos players till menu.c is adapted to work for them too...Michiel Van Der Kolk1-0/+4
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-03forgot an #ifdefMichiel Van Der Kolk1-0/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-03First stages of rockboy menu - press A/B mode to enter, contributed by pabsMichiel Van Der Kolk1-3/+5
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-03Added dynarec(under construction) and outline for lcd modesMichiel Van Der Kolk1-5/+6
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-03Mode button quits now instead of the center button - prevents accidental quits.Michiel Van Der Kolk1-2/+2
git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657
2005-03-02Rockboy - gameboy emulation for rockbox, based on gnuboy. Still a bit early, ↵Jens Arnold1-0/+271
but already playable on iRiver H1xx and the simulators. The archos recorder version is currently rather slow... git-svn-id: svn:// a1c6a512-1295-4272-9138-f99709370657